前言
在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
應用的探索和學習,我覺得自己才剛剛起步,對於負載均衡、路由等相關知識,確實存在很多認知缺陷,但找到前進的方向有何嘗不是一件值得慶幸的事呢?