Dubbo Admin 部署

前言

大家好,今天開始給大家分享 — 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)上采取了前后端分離的方式,前端使用 VueVuetify 分別作為 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ù)治理能力:

  1. 服務(wù)管理

Tips:包括消費者/服務(wù)者的服務(wù)查詢、服務(wù)上下線、元數(shù)據(jù)展示。

  1. 服務(wù)測試

Tips:基于Dubbo2.7的元數(shù)據(jù),Dubbo Admin 實現(xiàn)了服務(wù)測試功能,可以通過泛化調(diào)用,在控制臺上調(diào)用真實的服務(wù)提供者。

  1. 服務(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 部署

  1. 拉取鏡像
docker pull apache/dubbo-admin
  1. 啟動鏡像
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ā)布最新鏡像包,這種方式不推薦使用。

  1. 訪問http://localhost:8080

  2. 生成環(huán)境部署

    4.1 clone 代碼: git clone https://github.com/apache/dubbo-admin.git

    4.2 在 dubbo-admin-server/src/main/resources/application.properties中指定注冊中心地址

    admin.registry.address=zookeeper://127.0.0.1:2181
    

    4.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

  3. 開發(fā)環(huán)境部署

    5.1 clone 代碼: git clone https://github.com/apache/dubbo-admin.git

    5.2 Idea 加載源碼

    運行dubbo-admin-server項目的Main方法。由于 dubbo-admin-server是一個標(biāo)準(zhǔn)的spring boot項目, 可以在任何java IDE中運行它

    運行dubbo-admin-ui 。因為dubbo-admin-uinpm 管理和構(gòu)建,在開發(fā)環(huán)境中,可以單獨運行: npm run dev

    5.3 訪問 http://localhost:8080

    Tips:這里需要我們安裝 npm 相關(guān)環(huán)境。

當(dāng)我們成功部署 Dubbo Admin 后我們可以看到如下頁面:

idea

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é)課程的重點如下:

  1. 理解 Dubbo 服務(wù)治理

  2. 學(xué)習(xí)了 Dubbo Admin 的部署方式

  3. 了解 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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容