Dubbo簡單介紹及其和zookeeper的關係

2021-09-08 07:14:12 字數 2303 閱讀 5138

​  dubbox 是乙個分布式服務框架,其前身是阿里巴巴開源專案dubbo ,被國內電商及網際網路專案中使用,後期阿里巴巴停止了該項目的維護,當當網便在dubbo基礎上進行優化,並繼續維護,為了與原有的dubbo區分,故將其命名為dubbox

​  dubbox 致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。簡單的說,dubbox就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbox這樣的分布式服務框架的需求,並且本質上是個服務呼叫的東西,說白了就是個遠端服務呼叫的分布式框架。

soa是service-oriented architecture的首字母簡稱,它是一種支援面向服務的架構樣式。從服務、基於服務開發和服務的結果來看,面向服務是一種思考方式。

最簡單直接的說法就是:dubbo本身是乙個程式,在開發中作為jar包供我們使用,dubbo為我們做的就是根據服務的url去呼叫服務(基於rpc協議的呼叫)。

透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何api侵入。      

軟負載均衡及容錯機制,可在內網替代f5等硬體負載均衡器,降低成本,減少單點。

服務自動註冊與發現,不再需要寫死服務提供方位址,註冊中心基於介面名查詢服務提供者的ip位址,並且能夠平滑新增或刪除服務提供者。

dubbo基於rpc(remote procedure call 遠端過程呼叫)協議,服務提供方和服務消費方之間的呼叫關係:

節點角色說明:

呼叫關係說明:

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

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

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

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

送變更資料給消費者。

服務消費者,從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫,

如果呼叫失敗,再選另一台呼叫。

服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計

資料到監控中心。

dubbo 屬於 rpc 框架,連線消費者和生產者,註冊中心監控被呼叫物件的執行狀態

dubbo提供的註冊中心有如下幾種型別可供選擇:

對於註冊中心的選擇,我們一般用zookeeper,那麼zookeeper和dubbo的關係是怎麼樣的

上面這個圖如果看不太懂的話,建議看一下 zookeeper的資料模型 ,這裡簡單解釋一下:

zookeeper的資料模型跟我們windows系統下的檔案模型相似,都是樹形結構的;

windows下的檔案系統有資料夾和檔案兩種,資料夾只是路徑,檔案才是儲存體;

而zookeeper的資料模型也是樹結構的,每個節點叫做znode,每個znode既可以儲存資料也可以當做路徑

樹形結構的節點都是唯一的,而上面這個圖上的綠色圓點都是zookeeper中的乙個znode,每個znode都有自己的路徑和自己的值,儲存著我們dubbo註冊的service資訊,而上面這張圖的znode分為4級(root、service、type、url):

dubbo就是通過這一層層的節點找到我們需要呼叫的url然後進行呼叫的。

zookeeper作為dubbo的註冊中心的角色使用

我們把提供者和消費者通過dubbo註冊到zookeeper這個註冊中心裡,zookeeper中儲存的是服務的url的列表

通過消費者呼叫提供者服務的時候,會根據介面的名稱型別通過dubbo到zookeeper中找到對應的服務的url列表,zookeeper返回服務提供者位址列表給消費者

消費者從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫(這個呼叫就是圖1 消費者和提供者的呼叫關係),如果呼叫失敗,再選另一台呼叫

posted @

2016-11-23 08:48

青衫仗劍 閱讀(

...)

編輯收藏

Dubbo簡單介紹

抄寫了一部分別人的部落格,望請見諒 什麼是dubbo?dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並...

簡單介紹 dubbo

dubbo是乙個開源的分布式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合 從服務模型的角度來看,dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方 provider 和服務消費方 consumer ...

dubbo的簡單介紹

dubbo是阿里巴巴公司開源的乙個高效能優秀的服務框架,使得應用可通過高效能的rpc實現服務的輸出和輸入功能,可以和spring框架無縫整合。dubbo框架,是基於容器執行的,容器是spring dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案...