我們先來看看Eureka的集群架構(gòu)圖
1,服務(wù)注冊沫勿。
Eureka Server作為服務(wù)注冊中心挨约,為微服務(wù)架構(gòu)提供服務(wù)注冊功能。微服務(wù)節(jié)點啟動后产雹,會在Eureka中進行注冊诫惭,Eureka Server中會存儲所有的可用微服務(wù)節(jié)點信息。
2蔓挖,Eureka客戶端夕土。
Eureka Client是一個java客戶端,用于簡化與Eureka Server的交互瘟判≡剐澹客戶端同時也具備一個內(nèi)置的、使用輪詢算法的負載均衡器荒适。
3梨熙,心跳檢測。
在應(yīng)用啟動后刀诬,客戶端將會向Eureka Server發(fā)送心跳(默認為30秒咽扇,我們項目配置的是30秒)。Eureka Serber如果在多個心跳周期內(nèi)沒有收到某個微服務(wù)節(jié)點的心跳陕壹,將會剔除該節(jié)點(默認90秒质欲,我們項目配置的是90秒)。
4糠馆,集群數(shù)據(jù)同步嘶伟。
Eureka Server之間通過復(fù)制的方式來進行數(shù)據(jù)同步。
5又碌,客戶端緩存功能九昧。
Eureka Client具有緩存功能,即使所有的Eureka Server都掛掉毕匀,客戶端依然可以利用緩存中的信息消費其他服務(wù)的API铸鹰。
6,清理失效節(jié)點皂岔。
7蹋笼,自我保護模式。
自我保護模式是指在網(wǎng)絡(luò)出現(xiàn)異常的情況下,由于Eureka Server無法收到客戶端的心跳續(xù)約剖毯,Eureka Server會判斷該節(jié)點不可用圾笨,但其實該節(jié)點可能是正常的,可用的逊谋。為了避免誤刪擂达,Eureka Server引入了自我保護模式。一旦Eureka Server發(fā)現(xiàn)當前收到的心跳總次數(shù)小于心跳閾值的85%(默認值)涣狗,就會進入自我保護模式谍婉,此時Eureka Server不會清理任何節(jié)點。直到Eureka Server收到的心跳總次數(shù)大于等于心跳閾值的85%镀钓。
自我保護模式的設(shè)計哲學(xué)是:在不確定節(jié)點是否可用的情況下穗熬,盡可能保留節(jié)點。
問題:Eureka Server的服務(wù)發(fā)現(xiàn)丁溅,是如何工作的唤蔗?
答:服務(wù)發(fā)現(xiàn)和服務(wù)注冊是同一個概念。