Dubbo-Admin 功能展示與實操解析


服務信息

服務列表以接口為維度展示出所提供的服務信息,並按照注冊來源接口級/應用級進行區分。

服務詳情頁面展示接口的提供者與消費者信息和接口的方法等信息。

動態路由

條件路由

條件路由可以編寫一些自定義路由規則實現一些服務治理的需求比如黑白名單、讀寫分離等。條件路由可以在接口級別和消費者應用級別創建規則。

創建條件路由規則需要填寫 interface、version、group 信息(version、group無則不填),下圖展示一個簡單的黑名單配置,=> 左邊代表消費者匹配條件,右邊代表provider匹配條件(無代表沒有匹配)具體規則詳情參考官網(具體請見文末相關鏈接)。所以配置的含義為consumer ip 為 192.168.1.3 的消費者沒有 provider 提供服務。

標簽路由

標簽路由通過將某一個或多個服務的提供者划分到同一個分組,約束流量只在指定分組中流轉,從而實現流量隔離的目的,可以作為藍綠發布、灰度發布等場景的能力基礎。在 provider 應用級別上創建規則,對於的靜態打標為:

dubbo.provider.tag=tag1
@DubboService(tag = "tag2")

Mesh 路由

Mesh 路由是 3.0 版本推出的新的流量管理策略,支持更多的條件匹配和組合可以輕松實現各種路由功能。將整個流量管理分成 VirtualService 和 DestinationRule 兩部分,VirtualService 匹配入口流量,DestinationRule 匹配出口流量。詳細規則參考文檔(具體請見文末相關鏈接)。

案例

一個接口 org.test.apache.dubbo.interfaces.HelloService#hi(Integer number) 參數 number 為 Integer 類型,下述規則表示當 number 為偶數匹配 label 為 v1 的 provider (即 url 參數帶有 test-version = v1 的服務),當為奇數匹配 label 為 v2 的 provider (即 url 參數帶有 test-version = v2 的服務),可以通過 dubbo.application.parameters.test-version = v1 給服務打標,實現一個簡單的灰度功能。

apiVersion: service.dubbo.apache.org/v1alpha1
kind: VirtualService
metadata:
  name: demo/oddEvenRouter
spec:
  dubbo:
  - routedetail:
    - match:
      - method:
          argc: 1
          args:
          - index: 0
            num_value:
              oneof:
              - exact: 0.0
                mod: 2.0
            type: int
          name_match:
            exact: hi
      name: even-route
      route:
      - destination:
          host: demo
          subset: v1
    - match:
      - method:
          argc: 1
          args:
          - index: 0
            num_value:
              oneof:
              - exact: 1.0
                mod: 2.0
            type: int
          name_match:
            exact: hi
      name: odd-route
      route:
      - destination:
          host: demo2
          subset: v2          
    services:
    - exact: org.test.apache.dubbo.interfaces.HelloService                                
---
apiVersion: service.dubbo.apache.org/v1alpha1
kind: DestinationRule
metadata:
  name: test-route
spec:
  host: demo
  subsets:
    - name: v1
      labels:
        test-version: v1
    - name: v2
      labels:
        test-version: v2

動態配置

動態配置提供了無須重啟可以動態調整 RPC 調用行為的一種能力。比如修改超時時間、權重、負載均衡策略調整等。作用在接口級別和應用級別。下圖含義為將超時時間調整為 6000ms,作用在 conusmer 側的所有節點。

服務測試

可以通過 admin 后台測試 dubbo 服務,參數根據元數據內容自動生成 JSON 模板。

服務 Mock

通過在Admin后台進行規則配置,根據服務名和方法名,進行規則的配置。

用戶在 Dubbo 引用中引入 Mock 的依賴,通過添加 JVM 啟動參數 -Denable.dubbo.admin.mock=true,即可體驗在無 Provider 的情況下,實現 Consumer 對 Provider 的模擬調用,返回來自 admin 中配置的模擬數據。

<denpendency>
    <groupId>org.apache.dubbo.extensions</groupId>
    <artifactId>dubbo-mock-admin</artifactId>
    <version>last</version>
</denpendency>

新增功能

  • 應用級服務發現
  • Mesh 路由
  • 服務 Mock
  • 權限 SPI 拓展

相關鏈接

1)官網:

https://dubbo.apache.org/zh/docs/advanced/routing-rule/

2)文檔:

https://dubbo.apache.org/zh/docs/concepts/traffic-management/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM