常用注冊中心的比較
注冊中心的組成部分有哪些?
服務(wù)提供者(RPC Server):在啟動時,向 Registry 注冊自身服務(wù),并向 Registry 定期發(fā)送心跳匯報存活狀態(tài)。
服務(wù)消費(fèi)者(RPC Client):在啟動時,向 Registry 訂閱服務(wù),把 Registry 返回的服務(wù)節(jié)點(diǎn)列表緩存在本地內(nèi)存中,并與 RPC Sever 建立連接。
服務(wù)注冊中心(Registry):用于保存 RPC Server 的注冊信息,當(dāng) RPC Server 節(jié)點(diǎn)發(fā)生變更時,Registry 會同步變更,RPC Client 感知后會刷新本地 內(nèi)存中緩存的服務(wù)節(jié)點(diǎn)列表。
最后,RPC Client 從本地緩存的服務(wù)節(jié)點(diǎn)列表中,基于負(fù)載均衡算法選擇一臺 RPC Sever 發(fā)起調(diào)用。
常用的注冊中心有哪些?這里主要介紹4種常用的注冊中心,分別為Zookeeper、Eureka、Nacos、Consul。1、Zookeeper
經(jīng)典的服務(wù)注冊中心中間件
java體系中,大部分的集群環(huán)境都是依賴zookeeper管理服務(wù)的各個節(jié)點(diǎn)
其組件特點(diǎn):
數(shù)據(jù)結(jié)構(gòu)上高度抽象為K-V格式
支持節(jié)點(diǎn)短暫存在
2、Eureka
Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架
基于REST的服務(wù)
用于服務(wù)注冊、管理、負(fù)載均衡、服務(wù)故障轉(zhuǎn)
其組件特點(diǎn):
包含兩個組件:EurekaServer 和 EurekaClient
EurekaServer提供注冊服務(wù),服務(wù)節(jié)點(diǎn)的信息可以在界面中直觀的看到
允許在注冊服務(wù)時,自定義實(shí)現(xiàn)檢查自身狀態(tài)的是夠健康的方法
EurekaClient簡化與EurekaServer的交互,同時也是一個內(nèi)置的、使用輪詢負(fù)載算法的負(fù)載均衡器
3、Consule
用于服務(wù)發(fā)現(xiàn)和配置的工具
分布式的,高度可用的,并且具有極高的可伸縮性
提供了功能齊全的控制面板
主要特點(diǎn):服務(wù)發(fā)現(xiàn)、健康檢查、鍵值存儲、安全服務(wù)通信、多數(shù)據(jù)中心、ServiceMesh
其組件特點(diǎn):
提供多個數(shù)據(jù)中心支持,基于Fabio做負(fù)載均衡
八卦池,其中包含給定數(shù)據(jù)中心的所有節(jié)點(diǎn)
4、Nacos
用于微服務(wù)的發(fā)現(xiàn)、配置、管理
更敏捷、容易地構(gòu)建、交付、管理微服務(wù)平臺
其組件特點(diǎn):
數(shù)據(jù)模型:服務(wù) -?集群 -?實(shí)例
提供數(shù)據(jù)邏輯隔離模型,用戶賬號可以新建多個命名空間,每個命名空間對應(yīng)一個客戶端實(shí)例,這個命名空間對應(yīng)的注冊中心物理集群是可以根據(jù)規(guī)則進(jìn)行路由的,這樣可以讓注冊中心內(nèi)部的升級和遷移對用戶是無感知的。

總結(jié):Zookeeper基于ZAP協(xié)議實(shí)現(xiàn)保證每個節(jié)點(diǎn)數(shù)據(jù)同步的問題,中心化思想集群模式,分為領(lǐng)導(dǎo)和跟隨者角色。當(dāng)我們的zk領(lǐng)導(dǎo)因?yàn)槟撤N原因宕機(jī)的情況下,會自動觸發(fā)重新選一個新的領(lǐng)導(dǎo)角色,整個選舉的過程為了保證數(shù)據(jù)的一致性問題,在選舉的過程中整個zk環(huán)境是不可使用的可短暫可能無法使用到zk。意味著微服務(wù)采用該模式情況下,可能無法實(shí)現(xiàn)通訊(本地有緩存除外)
注意:可運(yùn)行的節(jié)點(diǎn)必須滿足過半機(jī)制,整個zk采用使用。
Eureka采用ap的設(shè)計理念架構(gòu)注冊中心,完全去中心化思想,也就是沒有主從之分每個節(jié)點(diǎn)都是均等,采用相互注冊的原理,你中有我我中有你,只要最后有一個eureka節(jié)點(diǎn)存在就可以保證整個微服務(wù)可以實(shí)現(xiàn)通訊。
Nacos中集群保證一致性算法采ratf協(xié)議模式,采用心跳機(jī)制實(shí)現(xiàn)選舉的()。