springCloud五大组件--Eureka
Spring Cloud 支持了 Zookeeper、Consul 和 Eureka,官方推薦 Eureka。
C(一致性)A(高可用)P(分區(qū)容錯)理論,Eureka的選擇就是放棄C,選擇AP。
Eureka 采用純 Java 實現(xiàn),除實現(xiàn)了注冊中心基本的服務(wù)注冊和發(fā)現(xiàn)之外,極大的滿足注冊中心的可用性,即使只有一臺服務(wù)可用,也可以保證注冊中心的可用性。
- ZooKeeper的設(shè)計原則是 CP,即強(qiáng)一致性和分區(qū)容錯性。他保證數(shù)據(jù)的強(qiáng)一致性,但舍棄了可用性,如果出現(xiàn)網(wǎng)絡(luò)問題可能會影響 ZK 的選舉,導(dǎo)致 ZK 注冊中心的不可用。
- Eureka 的設(shè)計原則是 AP,即可用性和分區(qū)容錯性。他保證了注冊中心的可用性,但舍棄了數(shù)據(jù)一致性,各節(jié)點上的數(shù)據(jù)有可能是不一致的(會最終一致)。
服務(wù)提供者和服務(wù)的消費者,本質(zhì)上也是 Eureka Client 角色。整體上可以分為兩個主體:Eureka Server 和 Eureka Client。
Eureka Server:注冊中心服務(wù)端
注冊中心服務(wù)端主要對外提供了三個功能:
服務(wù)注冊
服務(wù)提供者啟動時,會通過 Eureka Client 向 Eureka Server 注冊信息,Eureka Server 會存儲該服務(wù)的信息,Eureka Server 內(nèi)部有二層緩存機(jī)制來維護(hù)整個注冊表
提供注冊表
服務(wù)消費者在調(diào)用服務(wù)時,如果 Eureka Client 沒有緩存注冊表的話,會從 Eureka Server 獲取最新的注冊表
同步狀態(tài)
Eureka Client 通過注冊、心跳機(jī)制和 Eureka Server 同步當(dāng)前客戶端的狀態(tài)。
Eureka Client:注冊中心客戶端
Eureka Client 是一個 Java 客戶端,用于簡化與 Eureka Server 的交互。Eureka Client 會拉取、更新和緩存 Eureka Server 中的信息。因此當(dāng)所有的 Eureka Server 節(jié)點都宕掉,服務(wù)消費者依然可以使用緩存中的信息找到服務(wù)提供者,但是當(dāng)服務(wù)有更改的時候會出現(xiàn)信息不一致。
Eurka 工作流程
1、Eureka Server 啟動成功,等待服務(wù)端注冊。在啟動過程中如果配置了集群,集群之間定時通過 Replicate 同步注冊表,每個 Eureka Server 都存在獨立完整的服務(wù)注冊表信息
2、Eureka Client 啟動時根據(jù)配置的 Eureka Server 地址去注冊中心注冊服務(wù)
3、Eureka Client 會每 30s 向 Eureka Server 發(fā)送一次心跳請求,證明客戶端服務(wù)正常
4、當(dāng) Eureka Server 90s 內(nèi)沒有收到 Eureka Client 的心跳,注冊中心則認(rèn)為該節(jié)點失效,會注銷該實例
5、單位時間內(nèi) Eureka Server 統(tǒng)計到有大量的 Eureka Client 沒有上送心跳,則認(rèn)為可能為網(wǎng)絡(luò)異常,進(jìn)入自我保護(hù)機(jī)制,不再剔除沒有上送心跳的客戶端
6、當(dāng) Eureka Client 心跳請求恢復(fù)正常之后,Eureka Server 自動退出自我保護(hù)模式
7、Eureka Client 定時全量或者增量從注冊中心獲取服務(wù)注冊表,并且將獲取到的信息緩存到本地
8、服務(wù)調(diào)用時,Eureka Client 會先從本地緩存找尋調(diào)取的服務(wù)。如果獲取不到,先從注冊中心刷新注冊表,再同步到本地緩存
9、Eureka Client 獲取到目標(biāo)服務(wù)器信息,發(fā)起服務(wù)調(diào)用
10、Eureka Client 程序關(guān)閉時向 Eureka Server 發(fā)送取消請求,Eureka Server 將實例從注冊表中刪除
總結(jié)
以上是生活随笔為你收集整理的springCloud五大组件--Eureka的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可转债值得投资吗?可转债的最大的风险是什
- 下一篇: REVERSE-COMPETITION-