更新时间:2023-06-30 GMT+08:00
分享

配置路由规则

前提条件

Dubbo应用已注册到ServiceComb引擎。

下发路由规则配置

下发路由规则配置,详情参考配置管理

路由规则说明示例:

---
- precedence: 2                 # 优先级,数字越大,优先级越高。
  match:                        # 请求匹配规则。0..N个,不配置表示匹配。
    attachments:                # dubbo attachment匹配
      id:                       # 如果配置了多个attachment,那么所有的attachment规则都必须和请求匹配
        exact: '1'              # 配置策略,等于1,详细配置策略参考配置策略表。
        caseInsensitive: false  # false:不区分大小写(默认),true:区分大小写。配置为false时,将统一转为大写进行比较
  route:                        # 路由规则
    - weight: 20                # 权重值
      tags:
        version: 1.0.0          # 实例标记。满足标记条件的实例放到这一组。
    - weight: 80                # 权重值
      tags:
        version: 1.0.1          # 实例标记。满足标记条件的实例放到这一组。
- precedence: 1
  route:
    - weight: 20
      tags:
        group: red
    - weight: 80
      tags:
        group: green
表1 配置策略表

策略名

参数类型

策略值

匹配规则

精确匹配

int,String

exact

参数值等于配置值

正则

String

regex

参数值匹配正则表达式,由于部分正则表达式(如\w与\W等)区分大小写,所以使用正则策略时,请谨慎选择caseInsensitive(是否区分大小写)

不等于

int,String

noEqu

参数值不等于配置值

大于等于

int

noLess

参数值大于等于配置值

小于等于

int

noGreater

参数值小于等于配置值

大于

int

greater

参数值大于配置值

小于

int

less

参数值小于配置值

  • 配置路由规则时,需选择以下配置:
    • 配置项:servicecomb.routeRule.{目标应用名}。
    • 配置范围:应用级配置。
    • 应用:按应用和环境实际情况填写,默认为:default <空>。
    • 配置格式: yaml。
  • 下发配置时,请去掉注释,否则会导致下发配置失败。
  • 上述路由规则的解释如下:

    当attachment中包含id的时候,将80%流量转发到1.0.1版本,将20%流量转发到1.0.0版本。当请求中不包含上述attachment的时候,将80%的流量转发到实例标签为group:green的实例,20%的流量转发到实例标签为group:red的实例。

相关文档