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