首頁  >  文章  >  dubbo和zookeeper的關係是什麼?

dubbo和zookeeper的關係是什麼?

青灯夜游
青灯夜游原創
2020-04-16 17:03:235491瀏覽

dubbo和zookeeper的關係是什麼?以下這篇文章跟大家介紹dubbo和zookeeper的關係。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

dubbo和zookeeper的關係是什麼?

Dubbo建議使用Zookeeper作為服務的註冊中心。

1、Zookeeper的作用:

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

2、dubbo的作用:

Dubbo是管理中間層的工具,在業務層到資料倉儲間有非常多服務的存取和服務提供者需要調度,dubbo提供一個框架來解決這個問題。 

注意這裡的dub​​bo只是一個框架,至於你架子上放什麼是完全取決於你的,就像一個汽車骨架,你需要配你的輪子引擎。這個框架中要完成調度必須要有一個分散式的註冊中心,儲存所有服務的元數據,你可以用zk,也可以用別的,只是大家都用zk。

3、zookeeper和dubbo的關係:

Dubbo將註冊中心進行抽象,使得它可以外接不同的儲存媒介為註冊中心提供服務。引入zookeeper作為儲存媒介,也就把zookeeper的特性引了進來。

  • 首先是負載平衡:單註冊中心的承載能力是有限的,在流量達到一定程度的時候需要分流,負載平衡就是為了分流而存在的,一個zookeeper叢集配合對應的web應用就很容易達到負載平衡;

  • 資源同步:單單有負載平衡還不夠,節點之間的資料和資源是需要同步,zookeeper叢集就自然具備這樣的功能;

  • 命名服務:將樹狀結構用於維護全域的服務位址列表,服務提供者在啟動的時候,向zookeeper上的指定節點目錄下寫入自己的URL位址,這個操作就完成了服務的發布

  • Mast:ZooKeeper能保證客戶端無法建立一個已經存在的ZNode。也就是說,如果同時有多個客戶端請求建立同一個臨時節點,那麼最終一定只有一個客戶端請求能夠建立成功。利用這個特性,就能很容易地在分散式環境中進行Master選舉了。

  • 分散式鎖定:分散式鎖定是控制分散式系統之間同步存取共用資源的一種方式。                                               臨時節點就會被刪除,釋放鎖。正常執行完業務邏輯後,客戶端就會主動將自己建立的臨時節點刪除,釋放鎖定。

更多相關知識,請追蹤PHP中文網! !

以上是dubbo和zookeeper的關係是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn