日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Eureka 全解 (5) - 自我保护机制

發布時間:2023/12/20 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Eureka 全解 (5) - 自我保护机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文基于SpringCloud-Dalston.SR5

自我保護機制

關閉自我保護機制(默認是打開的):eureka.server.enable-self-preservation=false

自我保護機制:默認情況下,如果Eureka Server在一定時間內沒有接收到某個微服務實例的心跳,Eureka Server將會注銷該實例(默認90秒)。但是當網絡分區故障發生時,微服務與Eureka Server之間無法正常通信,以上行為可能變得非常危險了——因為微服務本身其實是健康的,此時本不應該注銷這個微服務。

Eureka通過“自我保護模式”來解決這個問題——當Eureka Server節點在短時間內丟失過多客戶端時(可能發生了網絡分區故障),那么這個節點就會進入自我保護模式。一旦進入該模式,Eureka Server就會保護服務注冊表中的信息,不再刪除服務注冊表中的數據(也就是不會注銷任何微服務)。當網絡故障恢復后,該Eureka Server節點會自動退出自我保護模式。

綜上,自我保護模式是一種應對網絡異常的安全保護措施。它的架構哲學是寧可同時保留所有微服務(健康的微服務和不健康的微服務都會保留),也不盲目注銷任何健康的微服務。使用自我保護模式,可以讓Eureka集群更加的健壯、穩定。

但是,在我們實際生產中,我們云環境同一個Region下不會發生大規模網絡分區狀況,所以沒有啟用自我保護。

相關參數:eureka.server.renewalPercentThreshold = 0.85

整體邏輯

在每一個服務實例注冊時:

expectedNumberOfRenewsPerMin += 2 numberOfRenewsPerMinThreshold = RenewalPercentThreshold*numberOfRenewsPerMinThreshold

無論你設置心跳時間是多少,expectedNumberOfRenewsPerMin都是+2(默認心跳時間是30s,每分鐘有60s,所以+2,但是沒有根據真正的心跳時間修改,應該算是個缺陷

在收到心跳時:

renewsLastMin.increment()

當renewsLastMin<numberOfRenewsPerMinThreshold,就會觸發自我保護,不會失效過期服務

總結

以上是生活随笔為你收集整理的Spring Cloud Eureka 全解 (5) - 自我保护机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。