dubbo知識點(diǎn)之管理工具dubbo-admin分享

前言
在dubbo的應(yīng)用體系中,一直都有一款圖形化的rpc管理工具,通過這款管理工具,我們可以對我們的rpc服務(wù)進(jìn)行各種管理操作,包括負(fù)載均衡、權(quán)重調(diào)整、服務(wù)監(jiān)測等,今天我們就先來簡單看下這一款管理工具。
管理工具
dubbo的管理服務(wù),現(xiàn)在也是一個(gè)獨(dú)立的應(yīng)用,我們可以將它獨(dú)立部署。項(xiàng)目地址如下:
https://github.com/apache/dubbo-admin
根據(jù)官方介紹,目前的管理控制臺已經(jīng)發(fā)布0.1版本,結(jié)構(gòu)上采取了前后端分離的方式,前端使用 Vue和 Vuetify分別作為 Javascript框架和UI框架,后端采用 Spring Boot 框架。既可以按照標(biāo)準(zhǔn)的 Maven 方式進(jìn)行打包,部署,也可以采用前后端分離的部署方式,方便開發(fā),功能上,目前具備了服務(wù)查詢,服務(wù)治理(包括 Dubbo 2.7中新增的治理規(guī)則)以及服務(wù)測試三部分內(nèi)容。
下面,我們看下如何在本地安裝部署dubbo的管理控制臺。
下載
首先,我們要下載dubbo-admin的源碼包或者部署包,如果下載源碼包的話,需要你自己打包,由于又是前后端分離的項(xiàng)目,所以這里我就偷個(gè)懶,直接下載部署包:


修改配置
下載完成后,直接解壓,然后進(jìn)入bin\config文件夾,這里有dubbo-admin的配置文件。因?yàn)楹蠖耸?code style="overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(255, 100, 65);">spring boot項(xiàng)目,所以這里的application.properties文件就是我們spring boot的配置文件,默認(rèn)情況下,整個(gè)配置文件只有一些簡單配置項(xiàng):
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
因?yàn)闆]有項(xiàng)目的端口配置,所以默認(rèn)情況下,dubbo-admin的訪問端口是8080,當(dāng)然你也可以自行修改;
配置文件中,首先是注冊中心、配置中心、元數(shù)據(jù)中心的配置,今天我們演示的注冊中心是zk,所以這里就不修改了;
緊接著是管理平臺的登錄用戶名和密碼,默認(rèn)都是root,你也可以根據(jù)自己的需要修改;
最后面是壓縮的相關(guān)配置,這里應(yīng)該是請求響應(yīng)內(nèi)容的壓縮配置,主要是針對css/js以及頁面等內(nèi)容。
啟動
完成以上內(nèi)容配置,我們就可以啟動測序下了。首先,我們要先啟動zk,然后啟動我們的管理平臺,直接訪問我們dubbo-admin的服務(wù)地址即可,我配置的端口是8001,所以我訪問的地址是http://localhost:8001,然后會自動跳轉(zhuǎn)到登錄頁面:

輸入我們配置的用戶名和密碼,即可登錄成功:

這個(gè)頁面和我們之前分享的k8s的官方管理控制臺很像。左側(cè)是菜單欄,右側(cè)是操作區(qū)域。
測試演示
控制臺啟動成功后,我們啟動本地的dubbo項(xiàng)目,進(jìn)行一些簡單操作。
在服務(wù)查詢菜單下,我們可以看到我們剛剛啟動好的服務(wù),我們可以對這些服務(wù)進(jìn)行測試、查看 詳情以及其他操作。

這里我們就只演示下測試,因?yàn)槁酚?、黑白名單、?fù)載均衡、權(quán)重這些,我們目前還沒深入了解過。
服務(wù)測試

輸入請求參數(shù),點(diǎn)擊執(zhí)行,即可顯示調(diào)用結(jié)果,這對我們平時(shí)覺得rpc不好測試的小伙伴簡直就是福音,我們再也不用為rpc的測試而發(fā)愁了:

接口文檔
接口文檔這塊需要引入dubbo-api-docs-annotations和dubbo-api-docs-core的相關(guān)引用,同時(shí)要在我們的接口上添加相應(yīng)的注解,今天由于時(shí)間的關(guān)系,我們暫時(shí)就不演示了,后面我們會專門分享。
服務(wù)mock
寫過單元測試的小伙伴應(yīng)該對mock不陌生,這里應(yīng)該也是一樣的,主要是對服務(wù)的一些模擬調(diào)用,但是現(xiàn)在好像還不支持。

服務(wù)統(tǒng)計(jì)

服務(wù)統(tǒng)計(jì)這里包括兩塊功能,一個(gè)是服務(wù)統(tǒng)計(jì),可以展示服務(wù)的提供者、消費(fèi)者、線程等信息

擴(kuò)展
當(dāng)然,除了dubbo-admin這樣的官方管理平臺之外,dubbo還可以集成skywalking這樣的第三方運(yùn)維監(jiān)控平臺。skywalking的用法我們直接已經(jīng)分享過了,和dubbo集成應(yīng)該也很容易,后面有機(jī)會的話,我們可以捎帶分享下,關(guān)于skywalking的內(nèi)容,可以點(diǎn)擊下面的鏈接回顧:
總結(jié)
dubbo-admin作為dubbo應(yīng)用的控制管理平臺,有著其強(qiáng)大的功能,特別是對rpc服務(wù)的監(jiān)測、監(jiān)控、以及相關(guān)配置的管理,更是一枝獨(dú)秀。當(dāng)然,我們今天分享的內(nèi)容很簡單,但是通過今天的內(nèi)容,我也意識到對于dubbo應(yīng)用的探索和學(xué)習(xí),我覺得自己才剛剛起步,對于負(fù)載均衡、路由等相關(guān)知識,確實(shí)存在很多認(rèn)知缺陷,但找到前進(jìn)的方向有何嘗不是一件值得慶幸的事呢?
