服務(wù)注冊是讓所有微服務(wù)將自己的信息注冊到注冊中心,服務(wù)發(fā)現(xiàn)在真正發(fā)起服務(wù)調(diào)用前,調(diào)用方需要從注冊中心拿到相應(yīng)服務(wù)可用的IP和端口列表,即服務(wù)發(fā)現(xiàn)。
Eureka作為SpringCloud的服務(wù)注冊功能服務(wù)器,它是服務(wù)注冊中心,系統(tǒng)中的其他服務(wù)使用Eureka的客戶端將其連接到Eureka Service中,并且保持心跳,這樣工作人員可以通過EurekaService來監(jiān)控各個微服務(wù)是否運(yùn)行正常。
通過集群注冊多臺 Eureka ,然后把SpringCloud服務(wù)互相注冊,客戶端從Eureka獲取信息時,按照Eureka的順序來訪問。
默認(rèn)情況下,如果 Eureka Service 在一定時間內(nèi)沒有接收到某個微服務(wù)的心跳, Eureka Service 會進(jìn)入自我保護(hù)模式,在該模式下Eureka Service 會保護(hù)服務(wù)注冊表中的信息,不在刪除注冊表中的數(shù)據(jù),當(dāng)網(wǎng)絡(luò)故障恢復(fù)后,Eureka Servic 節(jié)點(diǎn)會自動退出自我保護(hù)模式。
可以從注冊中心中根據(jù)服務(wù)別名獲取注冊的服務(wù)器信息。
1.ZooKeeper中的節(jié)點(diǎn)服務(wù)掛了就要選舉 在選舉期間注冊服務(wù)癱瘓,雖然服務(wù)最終會恢復(fù),但是選舉期間不可用的, 選舉就是改微服務(wù)做了集群,必須有一臺主其他的都是從
2.Eureka各個節(jié)點(diǎn)是平等關(guān)系,服務(wù)器掛了沒關(guān)系,只要有一臺Eureka就可以保證服務(wù)可用,數(shù)據(jù)都是最新的。 如果查詢到的數(shù)據(jù)并不是最新的,就是因?yàn)镋ureka的自我保護(hù)模式導(dǎo)致的
3.Eureka本質(zhì)上是一個工程,而ZooKeeper只是一個進(jìn)程
4.Eureka可很好的應(yīng)對因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點(diǎn)失去聯(lián)系的情況,而不會像ZooKeeper一樣使得整個注冊系統(tǒng)癱瘓
5.ZooKeeper保證的是CP,Eureka保證的是AP;