1. 程式人生 > >Dubbo註冊中心選用及DubboAdmin

Dubbo註冊中心選用及DubboAdmin

一 註冊中心

上一篇部落格《Dubbo呼叫示例》演示中的註冊中心是redis,其實用Zookeeper更為廣泛。

Redis:
採用K/V 形式進行儲存,基結構如下:

  • key:/dubbo/com.snowman.service.DemoService/providers
    value:dubbo://192.168.192.1:20880/com.snowman.service.DemoService
  • key:/dubbbo/com.snowman.service.DemoService/consumers
    value:dubbo://192.168.192.1:20880/com.snowman.service.DemoService
  • key:/dubbbo/com.snowman.service.DemoService/routers
  • key:/dubbbo/com.snowman.service.DemoService/configurators
    並基於 Redis 的 Publish/Subscribe 事件通知資料變更,其模型如下:
    訂閱:
    在這裡插入圖片描述
    推送變更:
    在這裡插入圖片描述
    呼叫過程:
  1. 服務提供方啟動時,向 Key:/dubbo/XXXServer/providers 下,添加當前提供者的地址
  2. 並向 Channel:/dubbo/com.foo.BarService/providers 傳送 register 事件
  3. 服務消費方啟動時,從 Channel:/dubbo/com.foo.BarService/providers 訂閱 register 和 unregister 事件
  4. 並向 Key:/dubbo/com.foo.BarService/providers 下,添加當前消費者的地址
  5. 服務消費方收到 register 和 unregister 事件後,從 Key:/dubbo/com.foo.BarService/providers 下獲取提供者地址列表

Zookeper:
是一個樹型的目錄服務,支援變更推送,適合作為 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 地址

二 DubboAdmin

已經註冊的服務資訊如何檢視,dubbo官方給出一個後臺管理系統Dubbo-admin方便我們進行操作,不僅可以檢視,也可以進行更改配置,如負載均衡演算法等。

1.下載安裝

github下載dubbo-admin地址:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0 (注:2.6.1開始的版本沒有dubbo-admin)

在dubbo-admin目錄下,構建admin war 包

mvn pakcage -Dmaven.skip.test=true

構建完成後進入生成的target資料夾,找到dubbo-admin-2.6.0.war,把它放到tomcat的webapps目錄下,啟動tomcat,自動生成dubbo-admin-2.6.0資料夾

2.配置

修改在dubbo-admin-2.6.0/WEB-INF的dubbo.properties

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

第一行註冊中心地址要與服務程式配置檔案中的配置一致。
第二行配置root賬號下的密碼。
第二行配置guest賬號下的密碼。
注:第二、三行的意思不是登入賬號為root、密碼為guest,它倆都是密碼,只是在不同的賬號情況下。原始碼寫了一個if語句,判斷是root賬號還是guest賬號,沒有沒得賬號的。(當初也算是粗心沒看清,折騰半天沒登入上)

3.啟動

啟動zookeeper,重啟tomcat
訪問dubbo-admin-2.6.0(它就是個web專案),輸入賬號密碼即可登入
在這裡插入圖片描述
演示demo課參考(《Dubbo呼叫示例》)[],把註冊中心從redis換成zookeeper,再改下IP埠就行了
啟動服務提供者Provider和服務消費者Consumer。
在頁面admin的SEARCH搜尋對應的介面名就能看到註冊資訊了
在這裡插入圖片描述

demo:https://github.com/soarsnowman/dubbo.git