一般我們常見(jiàn)的RPC框架都包含如下三個(gè)部分:
注冊(cè)中心,用于服務(wù)端注冊(cè)遠(yuǎn)程服務(wù)以及客戶端發(fā)現(xiàn)服務(wù)
服務(wù)端,對(duì)外提供后臺(tái)服務(wù),將自己的服務(wù)信息注冊(cè)到注冊(cè)中心
客戶端,從注冊(cè)中心獲取遠(yuǎn)程服務(wù)的注冊(cè)信息,然后進(jìn)行遠(yuǎn)程過(guò)程調(diào)用
上面提到的注冊(cè)中心其實(shí)屬于服務(wù)治理,即使沒(méi)有注冊(cè)中心,RPC的功能也是完整的。之前我大多接觸的是基于zookeeper的注冊(cè)中心,這里基于consul來(lái)實(shí)現(xiàn)注冊(cè)中心的基本功能。
Consul的一些特點(diǎn):
Raft相比Paxos直接
此外不多描述,還沒(méi)研究raft
支持?jǐn)?shù)據(jù)中心,可以用來(lái)解決單點(diǎn)故障之類的問(wèn)題
集成相比zookeeper更加簡(jiǎn)單(代碼量少,邏輯清晰簡(jiǎn)單)
支持健康檢查,支持http以及tcp
自帶UI管理功能,不需要額外第三方支持。(zookeeper需要單獨(dú)部署zkui之類的第三方工具)
支持key/value存儲(chǔ)
網(wǎng)友評(píng)論