Dubbo-Admin 功能展示與實(shí)操解析
發(fā)布時(shí)間:2021-12-13 點(diǎn)擊數(shù):675
服務(wù)列表以接口為維度展示出所提供的服務(wù)信息,并按照注冊(cè)來(lái)源接口級(jí)/應(yīng)用級(jí)進(jìn)行區(qū)分。
服務(wù)詳情頁(yè)面展示接口的提供者與消費(fèi)者信息和接口的方法等信息。
創(chuàng)建條件路由規(guī)則需要填寫(xiě) interface、version、group 信息(version、group無(wú)則不填),下圖展示一個(gè)簡(jiǎn)單的黑名單配置,=> 左邊代表消費(fèi)者匹配條件,右邊代表provider匹配條件(無(wú)代表沒(méi)有匹配)具體規(guī)則詳情參考官網(wǎng)(具體請(qǐng)見(jiàn)文末相關(guān)鏈接)。所以配置的含義為consumer ip 為 192.168.1.3 的消費(fèi)者沒(méi)有 provider 提供服務(wù)。
Mesh 路由是 3.0 版本推出的新的流量管理策略,支持更多的條件匹配和組合可以輕松實(shí)現(xiàn)各種路由功能。將整個(gè)流量管理分成 VirtualService 和 DestinationRule 兩部分,VirtualService 匹配入口流量,DestinationRule 匹配出口流量。詳細(xì)規(guī)則參考文檔(具體請(qǐng)見(jiàn)文末相關(guān)鏈接)。
4
案例
一個(gè)接口 org.test.apache.dubbo.interfaces.HelloService#hi(Integer number) 參數(shù) number 為 Integer 類型,下述規(guī)則表示當(dāng) number 為偶數(shù)匹配 label 為 v1 的 provider (即 url 參數(shù)帶有 test-version = v1 的服務(wù)),當(dāng)為奇數(shù)匹配 label 為 v2 的 provider (即 url 參數(shù)帶有 test-version = v2 的服務(wù)),可以通過(guò) dubbo.application.parameters.test-version = v1 給服務(wù)打標(biāo),實(shí)現(xiàn)一個(gè)簡(jiǎn)單的灰度功能。

條件路由可以編寫(xiě)一些自定義路由規(guī)則實(shí)現(xiàn)一些服務(wù)治理的需求比如黑白名單、讀寫(xiě)分離等。條件路由可以在接口級(jí)別和消費(fèi)者應(yīng)用級(jí)別創(chuàng)建規(guī)則。
創(chuàng)建條件路由規(guī)則需要填寫(xiě) interface、version、group 信息(version、group無(wú)則不填),下圖展示一個(gè)簡(jiǎn)單的黑名單配置,=> 左邊代表消費(fèi)者匹配條件,右邊代表provider匹配條件(無(wú)代表沒(méi)有匹配)具體規(guī)則詳情參考官網(wǎng)(具體請(qǐng)見(jiàn)文末相關(guān)鏈接)。所以配置的含義為consumer ip 為 192.168.1.3 的消費(fèi)者沒(méi)有 provider 提供服務(wù)。
標(biāo)簽路由通過(guò)將某一個(gè)或多個(gè)服務(wù)的提供者劃分到同一個(gè)分組,約束流量只在指定分組中流轉(zhuǎn),從而實(shí)現(xiàn)流量隔離的目的,可以作為藍(lán)綠發(fā)布、灰度發(fā)布等場(chǎng)景的能力基礎(chǔ)。在 provider 應(yīng)用級(jí)別上創(chuàng)建規(guī)則,對(duì)于的靜態(tài)打標(biāo)為:
dubbo.provider.tag=tag1
@DubboService(tag = "tag2")
Mesh 路由是 3.0 版本推出的新的流量管理策略,支持更多的條件匹配和組合可以輕松實(shí)現(xiàn)各種路由功能。將整個(gè)流量管理分成 VirtualService 和 DestinationRule 兩部分,VirtualService 匹配入口流量,DestinationRule 匹配出口流量。詳細(xì)規(guī)則參考文檔(具體請(qǐng)見(jiàn)文末相關(guān)鏈接)。
4
案例
一個(gè)接口 org.test.apache.dubbo.interfaces.HelloService#hi(Integer number) 參數(shù) number 為 Integer 類型,下述規(guī)則表示當(dāng) number 為偶數(shù)匹配 label 為 v1 的 provider (即 url 參數(shù)帶有 test-version = v1 的服務(wù)),當(dāng)為奇數(shù)匹配 label 為 v2 的 provider (即 url 參數(shù)帶有 test-version = v2 的服務(wù)),可以通過(guò) dubbo.application.parameters.test-version = v1 給服務(wù)打標(biāo),實(shí)現(xiàn)一個(gè)簡(jiǎn)單的灰度功能。
apiVersion: service.dubbo.apache.org/v1alpha1kind: VirtualServicemetadata: name: demo/oddEvenRouterspec: 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/v1alpha1kind: DestinationRulemetadata: name: test-routespec: host: demo subsets: - name: v1 labels: test-version: v1 - name: v2 labels: test-version: v2
動(dòng)態(tài)配置
Cloud Native
動(dòng)態(tài)配置提供了無(wú)須重啟可以動(dòng)態(tài)調(diào)整 RPC 調(diào)用行為的一種能力。比如修改超時(shí)時(shí)間、權(quán)重、負(fù)載均衡策略調(diào)整等。作用在接口級(jí)別和應(yīng)用級(jí)別。下圖含義為將超時(shí)時(shí)間調(diào)整為 6000ms,作用在 conusmer 側(cè)的所有節(jié)點(diǎn)。
服務(wù)測(cè)試
Cloud Native
可以通過(guò) admin 后臺(tái)測(cè)試 dubbo 服務(wù),參數(shù)根據(jù)元數(shù)據(jù)內(nèi)容自動(dòng)生成 JSON 模板。
服務(wù) Mock
Cloud Native
通過(guò)在Admin后臺(tái)進(jìn)行規(guī)則配置,根據(jù)服務(wù)名和方法名,進(jìn)行規(guī)則的配置。
<denpendency> <groupId>org.apache.dubbo.extensions</groupId> <artifactId>dubbo-mock-admin</artifactId> <version>last</version></denpendency>
新增功能
Cloud Native
- 應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)
- Mesh 路由
- 服務(wù) Mock
- 權(quán)限 SPI 拓展