Dubbo框架學習筆記

Dubbo簡介

   Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

Dubbo架構

dubbo-architucture

節點角色說明

節點 角色說明
Provider 暴露服務的服務提供方
Consumer 調用遠程服務的服務消費方
Registry 服務註冊與發現的註冊中心
Monitor 統計服務的調用次數和調用時間的監控中心
Container 服務運行容器

調用關係說明

  1. 服務容器負責啓動,加載,運行服務提供者。
  2. 服務提供者在啓動時,向註冊中心註冊自己提供的服務。
  3. 服務消費者在啓動時,向註冊中心訂閱自己所需的服務。
  4. 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。
  5. 服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
  6. 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

Dubbo 架構具有以下幾個特點,分別是連通性、健壯性、伸縮性、以及向未來架構的升級性。

快速體驗

快速體驗需要的資源:zookeeper、dubbo。

獲取資源:

zookeeper:https://zookeeper.apache.org/

dubbo:https://github.com/apache/dubbo

配置啓動zookeeper

進入conf目錄   ..\zookeeper-3.4.11\conf   修該zoo.cfg客戶端口:

clientPort=2181

 啓動bin\zkcli.cmd 和bin\zkserver.cmd

導入啓動dubbo

使用maven或者IDE解決maven依賴。官方提供的dubbo中有demo:(基於Spring)

demo提供三種開發方式:基於註解的、基於dubboAPI的和基於xml的,我們以基於xml爲例進行修改並運行:

提供商和消費者都註冊到zookeeper

<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

和zookeeper保持一致哈

提供商暴露服務

dubbo-provider.xml加入配置

<bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
<dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService"/>

消費者訂閱服務需求

dubbo-consumer.xml加入配置

 <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>

模塊說明

由interface模塊提供接口,提供方模塊對接口進行實現,並將實現類進行bean註冊對外提供服務:

<!--我的服務提供者註冊-->
    <bean id="myService" class="org.apache.dubbo.demo.provider.MyServiceImpl"/>
 <!-- 我的服務提供者-->
    <dubbo:service interface="org.apache.dubbo.demo.MyService" ref="myService"/>

在消費模塊訂閱需求:

    <!--我的服務消費者-->
    <dubbo:reference interface="org.apache.dubbo.demo.MyService" id="myService" check="false"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章