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