?著作權(quán)歸作者所有:來(lái)自51CTO博客作者澄風(fēng)破浪的原創(chuàng)作品,請(qǐng)聯(lián)系作者獲取轉(zhuǎn)載授權(quán),否則將追究法律責(zé)任
Eureka心跳健康檢查機(jī)制
運(yùn)行心跳健康檢查機(jī)制的目的是為了刪除Eureka服務(wù)器注冊(cè)表中不可訪問(wèn)的微服務(wù)。心跳是由Eureka客戶端發(fā)送給Eureka服務(wù)器的,讓服務(wù)器了解其狀態(tài)心跳機(jī)制需要在微服務(wù)嵌入一個(gè)客戶端,用來(lái)發(fā)送心跳,但是客戶端本身必須確定其自身為健康狀態(tài)Eureka服務(wù)器必須為客戶端公開(kāi)一些REST操作以讓其發(fā)布心跳。自我保護(hù)機(jī)制
EurekaServer不會(huì)將EurekaClient服務(wù)及時(shí)剔除
保護(hù)模式主要用與一組EurekaClient客戶端和EurekaServer之間存在網(wǎng)絡(luò)分區(qū)場(chǎng)景下的保護(hù)。一旦進(jìn)入保護(hù)模式,EurekaServer將會(huì)保護(hù)其注冊(cè)表中的服務(wù),不再刪除服務(wù)注冊(cè)表中的數(shù)據(jù),也就是不會(huì)注銷任何微服務(wù)什么是自我保護(hù)模式
默認(rèn)情況下如果EurekaServer在一段時(shí)間內(nèi)(默認(rèn)90s)沒(méi)有接受到某個(gè)微服務(wù)的心跳,那么就會(huì)判斷這個(gè)微服務(wù)已經(jīng)死亡,然后在服務(wù)注冊(cè)表中注銷該微服務(wù)。但是當(dāng)網(wǎng)絡(luò)分區(qū)發(fā)生故障(延時(shí)、卡頓、擁擠)時(shí),微服務(wù)與EurekaServer無(wú)法正常通信,但微服務(wù)本身是健康的,那么就不應(yīng)該注銷這個(gè)微服務(wù)。此時(shí)Eureka將會(huì)開(kāi)啟自我保護(hù)模式來(lái)解決這個(gè)問(wèn)題----當(dāng)EurekaServer節(jié)點(diǎn)在短時(shí)間內(nèi)丟失過(guò)多客戶端時(shí),就會(huì)開(kāi)啟自我保護(hù)模式,不再注銷任何微服務(wù)EurekaServer服務(wù)端配置自我保護(hù)和剔除無(wú)心跳微服務(wù)等待時(shí)間:
EurekaClient客戶端配置心跳發(fā)送間隔和剔除微服務(wù)心跳等待時(shí)間:
贊 收藏 評(píng)論 舉報(bào)相關(guān)文章