1. 程式人生 > >dubbo + zookeeper瞭解初步

dubbo + zookeeper瞭解初步

dubbo是一個分散式服務框架,而zookeeper則是其中的註冊中心。dubbo的註冊中心可以使用多種框架來充當,zookeeper只是其中之一。

一、dubbo
dubbo的作用一言以蔽之,就是服務治理。即服務太多了,該使用哪些,啟動順序如何,有些宕掉了怎麼辦。。。,十分複雜,不好處理。dubbo框架就是用來管理這些服務的。
在這裡插入圖片描述

dubbo提供了幾個核心部件:

Provider: 暴露服務的服務提供方。

Consumer: 呼叫遠端服務的服務消費方。

Registry: 服務註冊與發現的註冊中心。

Monitor: 統計服務的呼叫次調和呼叫時間的監控中心。

Container: 服務執行容器。

在這裡插入圖片描述
在這裡插入圖片描述

呼叫關係

0:服務容器負責啟動,載入,執行服務提供者   

1:服務提供者在啟動時,向註冊中心自己提供的服務  

2:服務消費者在啟動時,向註冊中心訂閱自己所需的服務  

3:註冊中心返回服務提供者地址給消費者,如果有變更,註冊中心將基於長連線推送給服務消費者  

4:服務消費者從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選一臺  

5:服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次資料到監控中心

大致是,服務要先註冊;呼叫方(消費者)呼叫服務前先從註冊中心拿到一份名單,看有哪些服務可以用(訊息訂閱的方式);如果中途服務加入或不可用,註冊中心還會通知消費者。消費者呼叫服務的時候,會考慮負載均衡,用演算法算一下應該用哪一個。最後還有一個監控中心,消費者和提供者都要定期通知它。

二、zookeeper
dubbo的註冊中心可以使用多種框架來充當,zookeeper只是其中之一。

Multicast註冊中心
Zookeeper註冊中心
Redis註冊中心
Simple註冊中心

既然如此,為啥dubbo + zookeeper稱為標配?除了zookeeper確實不錯之外,還因為dubbo是阿里巴巴開源的框架,純國貨,為了剝離內部系統,所以dubbo將註冊中心抽離,打造成支援相關的開源框架。而zookeeper當時已經是工業級的成熟穩定的產品。後來在國內,在業界的努力實踐下,Dubbo + ZooKeeper 的典型的服務化方案成就了 ZooKeeper 作為註冊中心的聲名。

zookeeper流程如下:
(1)服務提供者啟動時候向註冊中心寫下自己的URL地址。
(2)服務消費者啟動時,向註冊中心訂閱服務清單
(3)Monitor啟動時候,向註冊中心訂閱所有的服務提供者和消費者URL地址

同時具有以下的特性:
(1)當提供者出現斷電等異常停機時,註冊中心能自動刪除提供者資訊。
(2)當註冊中心重啟時,能自動恢復註冊資料,以及訂閱請求。
(3)當會話過期時,能自動恢復註冊資料,以及訂閱請求。

註冊中心的發展歷程:
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

三、總結
dubbo負責的工作處於業務層與資料庫持久層之間,算是一箇中間件。