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 事件通知資料變更,其模型如下:
訂閱:
推送變更:
呼叫過程:
- 服務提供方啟動時,向 Key:/dubbo/XXXServer/providers 下,添加當前提供者的地址
- 並向 Channel:/dubbo/com.foo.BarService/providers 傳送 register 事件
- 服務消費方啟動時,從 Channel:/dubbo/com.foo.BarService/providers 訂閱 register 和 unregister 事件
- 並向 Key:/dubbo/com.foo.BarService/providers 下,添加當前消費者的地址
- 服務消費方收到 register 和 unregister 事件後,從 Key:/dubbo/com.foo.BarService/providers 下獲取提供者地址列表
Zookeper:
是一個樹型的目錄服務,支援變更推送,適合作為 Dubbo 服務的註冊中心,工業強度較高,可用於生產環境,並推薦使用
流程說明:
- 服務提供者啟動時: 向 /dubbo/com.foo.BarService/providers 目錄下寫入自己的 URL 地址
- 服務消費者啟動時: 訂閱 /dubbo/com.foo.BarService/providers 目錄下的提供者 URL 地址。並向 /dubbo/com.foo.BarService/consumers 目錄下寫入自己的 URL 地址
- 監控中心啟動時: 訂閱 /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搜尋對應的介面名就能看到註冊資訊了