Eureka的自我保护机制
Tips:生產(chǎn)環(huán)境中不建議關(guān)閉 Eureka 的自我保護(hù)模式
什么是保護(hù)模式
??保護(hù)模式,主要用于一組客戶端 和 Eureka Server 之間存在網(wǎng)絡(luò)分區(qū)場(chǎng)景下的保護(hù)。一旦進(jìn)入保護(hù)模式,Eureka Server 將會(huì)嘗試保護(hù)其服務(wù)注冊(cè)表中的信息,不再刪除服務(wù)注冊(cè)表中的數(shù)據(jù),也就是不會(huì)注銷任何微服務(wù)實(shí)例。
??當(dāng)我們?cè)?Eureka Server 服務(wù)首頁(yè)中,看到有如下這段提示,則說(shuō)明此時(shí) Eureka Server 已經(jīng)進(jìn)入了保護(hù)模式。
Eureka Server 為什么會(huì)進(jìn)入保護(hù)模式
??默認(rèn)情況下,如果 Eureka Server 在一定時(shí)間內(nèi)沒有收到某個(gè)微服務(wù)實(shí)例的心跳,Eureka Server 便會(huì)將該實(shí)例注銷。 (默認(rèn)是90s)
??但是 當(dāng)網(wǎng)絡(luò)分區(qū)發(fā)生故障(延遲、卡頓、擁擠)時(shí),微服務(wù)與 Eureka Server 之間是無(wú)法正常通信的,在這種情況下微服務(wù)本身其實(shí)是健康的,本來(lái)是不應(yīng)該注銷這個(gè)服務(wù)的,此時(shí) Eureka 便會(huì)通過 “自我保護(hù)模式” 來(lái)解決這個(gè)問題。
??Eureka 的自我保護(hù)機(jī)制,就是 CAP 原則中的 AP 分支。即滿足:可用性、分區(qū)容錯(cuò)性。
CAP 原則又稱 CAP 定理,指的是在一個(gè)分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition tolerance)。CAP 原則指的是,這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。
如何禁用自我保護(hù)
??在 Eureka 中,自我保護(hù)模式默認(rèn)是 開啟 的。此處也只是來(lái)演示一下如何關(guān)閉。生產(chǎn)環(huán)境中是不建議關(guān)閉 Eureka 的自我保護(hù)模式。
1.Eureka Server 端操作
添加如下配置信息:
eureka:server:#關(guān)閉自我保護(hù)機(jī)制,保證不可用服務(wù)被及時(shí)剔除enable-self-preservation: false#清理無(wú)效節(jié)點(diǎn)的時(shí)間間隔,默認(rèn)60000毫秒,即60秒 (此處時(shí)間間隔設(shè)置為2s)eviction-interval-timer-in-ms: 2000- 1
- 2
- 3
- 4
- 5
- 6
此時(shí),在啟動(dòng) Eureka Server 時(shí),便會(huì)看到一條鮮明的提示信息。
2. Eureka Client 端操作
添加如下配置信息:
eureka:instance:# Eureka客戶端向服務(wù)端發(fā)送心跳的時(shí)間間隔,單位為妙(默認(rèn)是30s)lease-renewal-interval-in-seconds: 1# Eureka服務(wù)端在收到最后一次心跳后的等待時(shí)間上限,單位為秒(默認(rèn)90s),超時(shí)將移除服務(wù)lease-expiration-duration-in-seconds: 2- 1
- 2
- 3
- 4
- 5
- 6
到此處,配置就已經(jīng)全部完成。
3.測(cè)試結(jié)果
??這種情況下,我們手動(dòng)將該微服務(wù)停止,Eureka Server 便會(huì)在 2s 超時(shí)過后,將其移除服務(wù)。不會(huì)給它任何的機(jī)會(huì),當(dāng)遇到網(wǎng)絡(luò) 延遲、卡頓、擁擠 時(shí),這種操作顯然是不友好的。
所以大多數(shù)情況下,還是建議不要關(guān)閉 Eureka 的自我保護(hù)模式。
博主寫作不易,加個(gè)關(guān)注唄
求關(guān)注、求點(diǎn)贊,加個(gè)關(guān)注不迷路 ヾ(?°?°?)ノ゙
我不能保證所寫的內(nèi)容都正確,但是可以保證不復(fù)制、不粘貼。保證每一句話、每一行代碼都是親手敲過的,錯(cuò)誤也請(qǐng)指出,望輕噴 Thanks?(・ω・)ノ
總結(jié)
以上是生活随笔為你收集整理的Eureka的自我保护机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PHP入门篇】 WAMPServer集
- 下一篇: 华为315s-936刷机中文版教程(附下