前言
大家好,今天開始給大家分享 — Dubbo 專題之 Dubbo Admin 部署。在前一個章節(jié)中我們介紹了 Dubbo 服務(wù)治理,以及我們也從架構(gòu)的演進進行探討分布式發(fā)展的背景,同時我們知道 Dubbo 中的服務(wù)治理主要作用是改變運行時服務(wù)的行為和選址邏輯、達到限流、權(quán)重配置等目的,其中 Dubbo 服務(wù)治理提供了:服務(wù)發(fā)現(xiàn)注冊、服務(wù)監(jiān)控、集群容錯、負載均衡、黑白名單、標(biāo)簽路由、條件路由、權(quán)重調(diào)節(jié)等能力。那有的小伙伴想知道這些服務(wù)治理我們在那里可以管理和維護呢 ?那么本章節(jié)就圍繞著我們要使用的服務(wù)治理管理控制臺展開。下面就讓我們快速開始吧!
1. Dubbo Admin 簡介
下面來自于官網(wǎng)的簡介:Dubbo Admin 在架構(gòu)上采取了前后端分離的方式,前端使用 Vue 和 Vuetify 分別作為 Javascript 框架和 UI 框架,后端采用 Spring Boot 框架。既可以按照標(biāo)準(zhǔn)的 Maven 方式進行打包、部署,也可以采用前后端分離的部署方式方便開發(fā),功能上:目前具備了服務(wù)查詢、服務(wù)治理以及服務(wù)測試三部分內(nèi)容。我們可以簡單總結(jié)為:Dubbo Admin 采用標(biāo)準(zhǔn)的 SpringBoot 和前后端分離的架構(gòu)設(shè)計,同時為我們提供了:服務(wù)治理、服務(wù)查詢、服務(wù)測試等功能。
2. 服務(wù)治理能力
在前面《Dubbo 服務(wù)治理簡介》我們已經(jīng)討論了 Dubbo 服務(wù)治理相關(guān)話題,那么在我們的 Dubbo Admin 都提供哪些服務(wù)治理能力呢?下面我們總結(jié)了日常工作中常使用的服務(wù)治理能力:
- 服務(wù)管理
Tips:包括消費者/服務(wù)者的服務(wù)查詢、服務(wù)上下線、元數(shù)據(jù)展示。
- 服務(wù)測試
Tips:基于Dubbo2.7的元數(shù)據(jù),Dubbo Admin 實現(xiàn)了服務(wù)測試功能,可以通過泛化調(diào)用,在控制臺上調(diào)用真實的服務(wù)提供者。
-
服務(wù)治理
3.1 條件路由
Tips:通過動態(tài)的配置相關(guān)條件進行過濾符合條件的服務(wù)提供者。 可以配置服務(wù)和應(yīng)用兩個維度,條件路由為
yaml格式。
3.2 標(biāo)簽路由
Tips:通過給不同提供者打上標(biāo)簽,相同標(biāo)簽為同一組服務(wù),調(diào)用端通過指定標(biāo)簽進行服務(wù)分組的選擇。配置以應(yīng)用作為維度,給不同的服務(wù)器打上不同名字的標(biāo)簽。注意:Dubbo 2.7 引入的新功能。
3.3 黑白名單
Tips:條件路由的一部分,規(guī)則存儲和條件路由放在一起,為了方便配置所以單獨拿出來,同樣可以通過服務(wù)和應(yīng)用兩個維度,指定黑名單和白名單。
3.4 動態(tài)配置
Tips:動態(tài)配置是和路由規(guī)則平行的另一類服務(wù)治理治理功能,主要作用是在不重啟服務(wù)的情況下,動態(tài)改變調(diào)用行為,從Dubbo2.7 版本開始,支持服務(wù)和應(yīng)用兩個維度的配置,采用
yaml格式
3.5 權(quán)重調(diào)整
Tips:通過動態(tài)調(diào)整服務(wù)端的權(quán)重改變服務(wù)被客戶端選中的概率,從而達到流量分配的目的。
3.6 負載均衡
Tips:通過動態(tài)調(diào)整客戶端的選址邏輯,目前可選的負載均衡策略有隨機,輪訓(xùn)和最小活躍
3.7 服務(wù)統(tǒng)計
3.8 服務(wù)統(tǒng)計
Tips:統(tǒng)計服務(wù)提供方、服務(wù)消費方調(diào)用方法
qps和成功率等信息和線程池線程使用情況等信息。
3.9 服務(wù)調(diào)用關(guān)系
Tips:顯示我們的服務(wù)調(diào)用關(guān)系拓撲圖。
3.10 配置管理
Tips:通過注解中心或者配置中心來存儲全局和應(yīng)用維度的配置,分別在全局和應(yīng)用范圍內(nèi)生效,其中應(yīng)用配置也可以指定該應(yīng)用中的服務(wù)級別的配置,可以在控制臺中查看,修改配置規(guī)則,默認展示全局維度的配置。注意:Dubbo2.7 新增的功能
3. 示例演示
下面我們開始演示 Dubbo Admin 的快速部署。以下介紹三種部署方式:
Docker 部署
- 拉取鏡像
docker pull apache/dubbo-admin
- 啟動鏡像
docker run -p 8080:8080 apache/dubbo-admin
Tips:這里小伙伴提前安裝 Docker 相關(guān)環(huán)境,同時這里默認使用本地 zookeeper 且默認端口為2181。同時我們也可以指定外部參數(shù)改變默認行為:
admin.registry.address、admin.config-center、admin.metadata-report.address。這里鏡像最新版本為:0.1.0官網(wǎng)沒有發(fā)布最新鏡像包,這種方式不推薦使用。
訪問
http://localhost:8080-
生成環(huán)境部署
4.1
clone代碼:git clone https://github.com/apache/dubbo-admin.git4.2 在
dubbo-admin-server/src/main/resources/application.properties中指定注冊中心地址admin.registry.address=zookeeper://127.0.0.1:21814.3 使用
maven構(gòu)建`mvn clean package`4.4 啟動應(yīng)用
`mvn --projects dubbo-admin-server spring-boot:run` 或者 `cd dubbo-admin-distribution/target; java -jar dubbo-admin-0.1.jar`4.5 訪問
http://localhost:8080 -
開發(fā)環(huán)境部署
5.1
clone代碼:git clone https://github.com/apache/dubbo-admin.git5.2
Idea加載源碼運行
dubbo-admin-server項目的Main方法。由于dubbo-admin-server是一個標(biāo)準(zhǔn)的spring boot項目, 可以在任何java IDE中運行它運行
dubbo-admin-ui。因為dubbo-admin-ui由npm管理和構(gòu)建,在開發(fā)環(huán)境中,可以單獨運行:npm run dev5.3 訪問
http://localhost:8080Tips:這里需要我們安裝
npm相關(guān)環(huán)境。
當(dāng)我們成功部署 Dubbo Admin 后我們可以看到如下頁面:

Tips:登錄后臺默認賬戶:
root密碼:root。
4. 小結(jié)
在本小節(jié)中我們主要學(xué)習(xí)了 Dubbo 中 Admin 服務(wù)治理平臺的部署。同時知道了 Dubbo Admin 給我們服務(wù)治理提供了:服務(wù)管理、服務(wù)治理、服務(wù)治理、服務(wù)統(tǒng)計、配置管理等相關(guān)能力。通過 Dubbo Admin 的服務(wù)治理能力我們可以動態(tài)的管理我們的服務(wù)路由策略、負載均衡機制、容錯策略、動態(tài)配置等能力。
本節(jié)課程的重點如下:
理解 Dubbo 服務(wù)治理
學(xué)習(xí)了 Dubbo Admin 的部署方式
了解 Dubbo Admin 中服務(wù)治理能力
作者
個人從事金融行業(yè),就職過易極付、思建科技、某網(wǎng)約車平臺等重慶一流技術(shù)團隊,目前就職于某銀行負責(zé)統(tǒng)一支付系統(tǒng)建設(shè)。自身對金融行業(yè)有強烈的愛好。同時也實踐大數(shù)據(jù)、數(shù)據(jù)存儲、自動化集成和部署、分布式微服務(wù)、響應(yīng)式編程、人工智能等領(lǐng)域。同時也熱衷于技術(shù)分享創(chuàng)立公眾號和博客站點對知識體系進行分享。關(guān)注公眾號:青年IT男 獲取最新技術(shù)文章推送!
博客地址: http://youngitman.tech