zookeeper在Dubbo中的作用理解

 

 

zookeeper是dubbo推薦的註冊中心。


流程:
1.服務提供者啓動時向/dubbo/com.foo.BarService/providers目錄下寫入URL
2.服務消費者啓動時訂閱/dubbo/com.foo.BarService/providers目錄下的URL向/dubbo/com.foo.BarService/consumers目錄下寫入自己的URL
3.監控中心啓動時訂閱/dubbo/com.foo.BarService目錄下的所有提供者和消費者URL

支持以下功能:

1.當提供者出現斷電等異常停機時,註冊中心能自動刪除提供者信息。

2.當註冊中心重啓時,能自動恢復註冊數據,以及訂閱請求。

3.當會話過期時,能自動恢復註冊數據,以及訂閱請求。

4.當設置時,記錄失敗註冊和訂閱請求,後臺定時重試。

5.可通過設置zookeeper登錄信息。

6.可通過設置zookeeper的根節點,不設置將使用無根樹。

7.支持*號通配符,可訂閱服務的所有分組和所有版本的提供者。

注意的是阿里內部並沒有採用Zookeeper做爲註冊中心,而是使用自己實現的基於數據庫的註冊中心,即:Zookeeper註冊中心並沒有在阿里內部長時間運行的可靠性保障,此Zookeeper橋接實現只爲開源版本提供,其可靠性依賴於Zookeeper本身的可靠性。

 

************************************************************************************************************

dubbo是動物..zookeeper是動物園的管理員!

按我的理解,您可以把dubbo服務想象成學校裏的一個學生,並且對應有一個學號,zookeeper則是想象成一個教務網管理系統。我們可以通過教務網管理系統,查找到對應的學生。我們首先通過註冊入學,將學生和學號對應綁定。

比方說項目是一個分佈式的項目,web層與 service層被拆分了開來, 部署在不同的tomcat中, 我在web層 需要調用 service層的接口,但是兩個運行在不同tomcat下的服務無法直接互調接口,那麼就可以通過zookeeper和dubbo實現。

我們通過dubbo 建立ItemService這個服務,並且到zookeeper上面註冊,填寫對應的zookeeper服務所在 的IP及端口號。【按照我上面的比喻就是,學生註冊入學(接口是學號,學生本人是impl實現),填寫學校教務網網址(就是zookeeper)】

下面我們的 web層需要來調用 service接口了,由於在不同的工程中,它是無法直接找到service接口的,我們使用dubbo再來引用註冊進入的dubbo服務。

我們先填寫zookeeper服務所在 的IP及端口號,再填寫我們需要調用的接口名字。

【按照我上面的比喻,就是填寫學校的教務網網址,我們在教務網中,通過學號(接口名),查詢到對應的學生】

http://mushiming.top/mushblog/archives/499

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章