引自:
節點角色說明:
provider: 暴露服務的服務提供方。
consumer: 呼叫遠端服務的服務消費方。
registry: 服務註冊與發現的註冊中心。
monitor: 統計服務的呼叫次調和呼叫時間的監控中心。
container: 服務執行容器。
呼叫關係說明:
0. 服務容器負責啟動,載入,執行服務提供者。
1. 服務提供者在啟動時,向註冊中心註冊自己提供的服務。
2. 服務消費者在啟動時,向註冊中心訂閱自己所需的服務。
3. 註冊中心返回服務提供者位址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。
4. 服務消費者,從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫,如果呼叫失敗,再選另一台呼叫。
5. 服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心。
流程說明:
服務提供者啟動時
向/dubbo/com.foo.barservice/providers目錄下寫入自己的url位址。
服務消費者啟動時
訂閱/dubbo/com.foo.barservice/providers目錄下的提供者url位址。
並向/dubbo/com.foo.barservice/consumers目錄下寫入自己的url位址。
監控中心啟動時
訂閱/dubbo/com.foo.barservice目錄下的所有提供者和消費者url位址。
支援以下功能:
當提供者出現斷電等異常停機時,註冊中心能自動刪除提供者資訊。
當註冊中心重啟時,能自動恢復註冊資料,以及訂閱請求。
當會話過期時,能自動恢復註冊資料,以及訂閱請求。
當設定時,記錄失敗註冊和訂閱請求,後台定時重試。
可通過設定zookeeper登入資訊。
可通過設定zookeeper的根節點,不設定將使用無根樹。
支援*號萬用字元,可訂閱服務的所有分組和所有版本的提供者。
在provider和consumer中增加zookeeper客戶端jar包依賴:1
2
3
4
5
<
dependency
>
<
groupid
>org.apache.zookeeper
<
artifactid
>zookeeper
<
version
>3.3.3
zkclient客戶端實現:
zkclient zookeeper registry
從2.2.0版本開始預設為zkclient實現,以提公升zookeeper客戶端的健狀性。
zkclient是datameer開源的乙個zookeeper客戶端實現,開源比較早,參見:
預設配置:
或:dubbo.registry.client=zkclient
或:zookeeper:
需依賴: 1
2
3
4
5
<
dependency
>
<
groupid
>com.github.sgroschupf
<
artifactid
>zkclient
<
version
>0.1
zookeeper單機配置:
1
2
3
<
dubbo:registry
address="zookeeper:" />
or:
<
dubbo:registry
protocol="zookeeper" address="10.20.153.10:2181" />
zookeeper集群配置:
1
2
3
<
dubbo:registry
address="zookeeper:?backup=10.20.153.11:2181,10.20.153.12:2181" />
or:
<
dubbo:registry
protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />
同一zookeeper,分成多組註冊中心:
1
2
<
dubbo:registry
id="chinaregistry" protocol="zookeeper" address="10.20.153.10:2181" group="china" />
<
dubbo:registry
id="intlregistry" protocol="zookeeper" address="10.20.153.10:2181" group="intl" />
zookeeper在dubbo中作用
最近在給一些人講架構的時候,常被問到乙個問題,dubbo與zk是什麼關係,所以今天我就來簡單整理一下 dubbo建議使用zk作為服務的註冊中心,當然也可以使用redis等等 我覺得這個很好理解哦,哪乙個服務得由哪個機器來提供必需得讓呼叫者知道.也就是ip與服務名稱的對應關係 dubbo服務提供者在z...
zooKeeper在dubbo中的應用
iscoder 2017 05 03 23 38 前面幾篇文章說了很多zookeeper的功能特性,zookeeper是乙個分布式應用下的分布式 開源的協調服務。說了那麼多,那麼到底在實際開發中,zookeeper是怎麼提供服務的呢?這篇文章小段就簡單講述一下zookeeper在dubbo中的應用,...
Zookeeper在Dubbo中的應用
摘要 zookeeper在dubbo中的應用 dubbo的架構 節點角色說明 provider 暴露服務的服務提供方。consumer 呼叫遠端服務的服務消費方。registry 服務註冊與發現的註冊中心。節點角色說明 provider 暴露服務的服務提供方。consumer 呼叫遠端服務的服務消費...