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