Eureka自我保护机制原理及作用enable-self-preservation
生活随笔
收集整理的這篇文章主要介紹了
Eureka自我保护机制原理及作用enable-self-preservation
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題觸發(fā)場景
在K8s環(huán)境中,實(shí)例經(jīng)常進(jìn)行驅(qū)逐重排,導(dǎo)致客戶端實(shí)例經(jīng)常更換,當(dāng)開啟自我保護(hù)機(jī)制開啟后,實(shí)例不會(huì)刪除,導(dǎo)致部分請(qǐng)求會(huì)連接不存在的實(shí)例,客戶端沒有做重試或者熔斷的話會(huì)出大量問題。
因此建議在K8s環(huán)境中不要開始自我保護(hù)機(jī)制,在網(wǎng)絡(luò)穩(wěn)定的環(huán)境中也不要開啟。
PS:感覺自我保護(hù)就是一個(gè)坑。
Eureka Server自我保護(hù)機(jī)制配置,默認(rèn)為true開啟。
eureka:server:enable-self-preservation: true自我保護(hù)開啟時(shí)續(xù)約,續(xù)訂功能關(guān)閉。
更新最小續(xù)訂數(shù)
protected void updateRenewsPerMinThreshold() {this.numberOfRenewsPerMinThreshold = (int) (this.expectedNumberOfClientsSendingRenews* (60.0 / serverConfig.getExpectedClientRenewalIntervalSeconds())* serverConfig.getRenewalPercentThreshold()); }- numberOfRenewsPerMinThreshold:期望收到的續(xù)訂數(shù),向下取整。
- this.expectedNumberOfClientsSendingRenew:續(xù)訂客戶端數(shù)量+1
- serverConfig.getExpectedClientRenewalIntervalSeconds():多久續(xù)訂一次,每分鐘通過expected-client-renewal-interval-seconds配置。
- serverConfig.getRenewalPercentThreshold():自我保護(hù)閥值,續(xù)訂數(shù)低于期望比例時(shí),開啟自我保護(hù)機(jī)制。
如:2個(gè)客戶端實(shí)例,續(xù)訂默認(rèn)30秒一次,閥值默認(rèn)0.85。
numberOfRenewsPerMinThreshold = (2+1)*(60/30)*0.85 =3*2*0.85=5.1=5
當(dāng)expected-client-renewal-interval-seconds改為5s,numberOfRenewsPerMinThreshold=3*12*0.85=30.6=30
總結(jié)
以上是生活随笔為你收集整理的Eureka自我保护机制原理及作用enable-self-preservation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Denoising Diffusion
- 下一篇: STM-32-ADC模拟数字转换(AD单