dubbo知識點之管理工具dubbo-admin分享
前言
在dubbo
的應用體系中,一直都有一款圖形化的rpc
管理工具,通過這款管理工具,我們可以對我們的rpc
服務進行各種管理操作,包括負載均衡、權重調整、服務監測等,今天我們就先來簡單看下這一款管理工具。
管理工具
dubbo
的管理服務,現在也是一個獨立的應用,我們可以將它獨立部署。專案地址如下:
https://github.com/apache/dubbo-admin
根據官方介紹,目前的管理控制檯已經發布0.1
版本,結構上採取了前後端分離的方式,前端使用 Vue
和 Vuetify
分別作為 Javascript
框架和UI
框架,後端採用 Spring Boot
框架。既可以按照標準的 Maven 方式進行打包,部署,也可以採用前後端分離的部署方式,方便開發,功能上,目前具備了服務查詢,服務治理(包括 Dubbo 2.7
下面,我們看下如何在本地安裝部署dubbo
的管理控制檯。
下載
首先,我們要下載dubbo-admin
的原始碼包或者部署包,如果下載原始碼包的話,需要你自己打包,由於又是前後端分離的專案,所以這裡我就偷個懶,直接下載部署包:
修改配置
下載完成後,直接解壓,然後進入bin\config
資料夾,這裡有dubbo-admin
的配置檔案。因為後端是spring boot
專案,所以這裡的application.properties
檔案就是我們spring boot
的配置檔案,預設情況下,整個配置檔案只有一些簡單配置項:
admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 # nacos config, add parameters to url like username=nacos&password=nacos #admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public #admin.config-center=nacos://127.0.0.1:8848?group=dubbo #admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo #group (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.registry.group=dubbo #admin.config-center.group=dubbo #admin.metadata-report.group=dubbo #namespace used by nacos. (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.registry.namespace=public #admin.config-center.namespace=public #admin.metadata-report.namespace=public admin.root.user.name=root admin.root.user.password=root #session timeout, default is one hour admin.check.sessionTimeoutMilli=3600000 # apollo config # admin.config-center = apollo://localhost:8070?token=e16e5cd903fd0c97a116c873b448544b9d086de9&app.id=test&env=dev&cluster=default&namespace=dubbo # (Deprecated it is recommended to use URL to add parameters,will be removed in the future) #admin.apollo.token=e16e5cd903fd0c97a116c873b448544b9d086de9 #admin.apollo.appId=test #admin.apollo.env=dev #admin.apollo.cluster=default #admin.apollo.namespace=dubbo #compress server.compression.enabled=true server.compression.mime-types=text/css,text/javascript,application/javascript server.compression.min-response-size=10240
因為沒有專案的埠配置,所以預設情況下,dubbo-admin
的訪問埠是8080
,當然你也可以自行修改;
配置檔案中,首先是註冊中心、配置中心、元資料中心的配置,今天我們演示的註冊中心是zk
,所以這裡就不修改了;
緊接著是管理平臺的登入使用者名稱和密碼,預設都是root
,你也可以根據自己的需要修改;
最後面是壓縮的相關配置,這裡應該是請求響應內容的壓縮配置,主要是針對css/js
以及頁面等內容。
啟動
完成以上內容配置,我們就可以啟動測序下了。首先,我們要先啟動zk
,然後啟動我們的管理平臺,直接訪問我們dubbo-admin
的服務地址即可,我配置的埠是8001
,所以我訪問的地址是http://localhost:8001
輸入我們配置的使用者名稱和密碼,即可登入成功:
這個頁面和我們之前分享的k8s
的官方管理控制檯很像。左側是選單欄,右側是操作區域。
測試演示
控制檯啟動成功後,我們啟動本地的dubbo
專案,進行一些簡單操作。
在服務查詢選單下,我們可以看到我們剛剛啟動好的服務,我們可以對這些服務進行測試、檢視 詳情以及其他操作。
這裡我們就只演示下測試,因為路由、黑白名單、負載均衡、權重這些,我們目前還沒深入瞭解過。
服務測試
輸入請求引數,點選執行,即可顯示呼叫結果,這對我們平時覺得rpc
不好測試的小夥伴簡直就是福音,我們再也不用為rpc
的測試而發愁了:
介面文件
介面文件這塊需要引入dubbo-api-docs-annotations
和dubbo-api-docs-core
的相關引用,同時要在我們的介面上新增相應的註解,今天由於時間的關係,我們暫時就不演示了,後面我們會專門分享。
服務mock
寫過單元測試的小夥伴應該對mock
不陌生,這裡應該也是一樣的,主要是對服務的一些模擬呼叫,但是現在好像還不支援。
服務統計
服務統計這裡包括兩塊功能,一個是服務統計,可以展示服務的提供者、消費者、執行緒等資訊
擴充套件
當然,除了dubbo-admin
這樣的官方管理平臺之外,dubbo
還可以整合skywalking
這樣的第三方運維監控平臺。skywalking
的用法我們直接已經分享過了,和dubbo
整合應該也很容易,後面有機會的話,我們可以捎帶分享下,關於skywalking
的內容,可以點選下面的連結回顧:
總結
dubbo-admin
作為dubbo
應用的控制管理平臺,有著其強大的功能,特別是對rpc
服務的監測、監控、以及相關配置的管理,更是一枝獨秀。當然,我們今天分享的內容很簡單,但是通過今天的內容,我也意識到對於dubbo
應用的探索和學習,我覺得自己才剛剛起步,對於負載均衡、路由等相關知識,確實存在很多認知缺陷,但找到前進的方向有何嘗不是一件值得慶幸的事呢?