使用模式与 条件路由文档 中的模式类似,但配置格式略有不同,以下是条件路由规则示例。
基于以下示例规则,所有 org.apache.dubbo.sample.tri.Greeter
服务 greet
方法的调用都将被转发到有 port=8888
标记的地址子集
configVersion: v1.0
scope: "service"
force: false
enabled: true
key: "org.apache.dubbo.sample.tri.Greeter"
conditions:
- method=greet => port=8888
注:
dubbo rust目前还没有实现对于应用粒度的区分,无法区分服务来自哪个应用
因此对于标签路由和条件路由,都仅能配置一条应用级别的配置
对于应用级别的配置,默认key指定为application,此配置将对全部服务生效
例如:
configVersion: v1.0
scope: "application"
force: false
enabled: true
key: application
conditions:
- ip=127.0.0.1 => port=8000~8888
参数支持
条件支持
值支持
使用模式与 标签路由文档中的模式类似,但配置格式略有不同,以下是标签路由规则示例
configVersion: v1.0
force: false
enabled: true
key: application
tags:
- name: local
match:
- key: ip
value: 127.0.0.1
在此配置中,所有ip=127.0.0.1的服务提供者/消费者均会被打上local的标签
动态下发配置使用 Nacos 作为配置中心实现,需要在项目的 application.yaml 配置文件中对 Nacos 进行配置,若不进行配置则使用本地路由配置。
nacos:
addr: "127.0.0.1:8848"
namespace: "namespace-name"
app: "app-name"
enable_auth:
auth_username: username
auth_password: password
app:路由配置项在Nacos中所处的app namespace:配置信息在Nacos所处的namespace addr:Nacos服务地址 enable_auth:可选配置项,若启用了Nacos的认证功能,则需要配置此项,auth_username对应帐号,auth_password对应密钥
在nacos中创建条件路由配置项时, app和namespace为配置nacos时所填写的信息; group:固定为condition; name:需要和 服务名称 保持一致;
在nacos中创建标签路由配置项时,
app:配置nacos时所填写的app; namespace:配置nacos时所填写的namespace; group:固定为tag; name:固定为application;
dubbo rust目前还没有实现对于应用的区分,无法区分服务来自哪个应用; 故对于应用级别的配置项,默认对所有服务生效 因此对于标签路由和条件路由,都仅能配置一条应用级别的配置,配置名称(name)指定为application
服务级别的条件路由配置:
configVersion: v1.0
scope: "service"
force: false
enabled: true
key: "org.apache.dubbo.sample.tri.Greeter"
conditions:
- method=greet => ip=127.*
标签路由配置:
configVersion: v1.0
force: true
enabled: true
key: shop-detail
tags:
- name: local
match:
- key: ip
value: 127.0.0.1
应用级别的条件路由配置:
configVersion: v1.0
scope: "application"
force: false
enabled: true
key: application
conditions:
- ip=127.0.0.1 => port=8000~8888