zookeeper在dubbo起了什麼作用

2021-08-21 03:39:51 字數 1873 閱讀 4513

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

您可以把dubbo服務想象成學校裡的乙個學生,並且對應有乙個學號,zookeeper則是想象成乙個教務網管理系統。我們可以通過教務網管理系統,查詢到對應的學生。我們首先通過註冊入學,將學生和學號對應繫結。

比方說專案是乙個分布式的專案,web層與 service層被拆分了開來, 部署在不同的tomcat中, 我在web層 需要呼叫 service層的介面,但是兩個執行在不同tomcat下的服務無法直接互調介面,那麼就可以通過zookeeper和dubbo實現。

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

我們先填寫zookeeper服務所在 的ip及埠號,再填寫我們需要呼叫的介面名字。

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

zookeeper實現的是資源的訂閱發布基本原理就是,分布式的環境下服務方實際上是資源,每個服務方把自己的服務的節點資訊,註冊在zk上,消費者通過zk獲取到所需要的服務的相關資訊,比如url之類。

但是zk有個很重要的功能,會主動通知消費者所訂閱資源的變化資訊,比如,同乙個服務 某台機器相關程序關閉後,zk會通知消費者,資源的變化情況,這樣,就實現了服務的動態新增減少。

這一點在分布式環境下非常重要,設想如下場景

某**在做搶購活動,突然發現,後台某個服務資源吃緊,需要增加伺服器,而又不能影響當前業務,

簡單來說他的功能類似於註冊中心。

dubbo的服務提供者會在zookeeper上面建立乙個臨時節點,表明自己的ip和埠,當消費者需要使用服務時,會先在zookeeper上面查詢,找到服務提供者,做一些負載的選擇(比如隨機、輪流),然後按照這些資訊,訪問服務提供者。

zookeeper負責儲存了服務提供方和服務消費方的的uri(dubbo自定義的一種uri),服務消費方找到zookeeper,向zookeeper要到服務提供方的uri,然後就找到提供方,並呼叫提供方的服務。解耦,分布式,failover。

dubbo是管理中間層的工具,在業務層到資料倉儲間有非常多服務的接入和服務提供者需要排程,dubbo提供乙個框架解決這個問題。

注意這裡的dubbo只是乙個框架,至於你架子上放什麼是完全取決於你的,就像乙個汽車骨架,你需要配你的輪子引擎。這個框架中要完成排程必須要有乙個分布式的註冊中心,儲存所有服務的元資料,你可以用zk,也可以用別的,只是大家都用zk。

zookeeper用來註冊服務和進行負載均衡,哪乙個服務由哪乙個機器來提供必需讓呼叫者知道,簡單來說就是ip位址和服務名稱的對應關係。當然也可以通過硬編碼的方式把這種對應關係在呼叫方業務**中實現,但是如果提供服務的機器掛掉呼叫者無法知曉,如果不更改**會繼續請求掛掉的機器提供服務。zookeeper通過心跳機制可以檢測掛掉的機器並將掛掉機器的ip和服務對應關係從列表中刪除。至於支援高併發,簡單來說就是橫向擴充套件,在不更改**的情況通過新增機器來提高運算能力。通過新增新的機器向zookeeper註冊服務,服務的提供者多了能服務的客戶就多了。

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 呼叫遠端服務的服務消費...