请求路由

在 Dubbo-Admin 中根据请求条件进行路由

Dubbo 提供了动态创建条件路由的服务治理能力,可以根据请求发起方和方法进行路由,无需重启应用。

Dubbo 可以通过 XML 配置、注解配置和动态配置实现根据请求条件的动态路由。这里主要介绍动态配置方法,其他配置方法请参考旧文档 配置

开始之前

请确保成功运行 Dubbo-Admin

背景信息

在黑名单、白名单、排除预发布机器、只暴露部分机器、环境隔离等业务场景中,需要路由规则在发起 RPC 调用之前过滤目标服务器地址,并将过滤后的地址作为最终 RPC 调用的候选地址。Dubbo-Admin 提供了条件路由功能,可以帮助您配置路由规则以满足业务场景。

步骤

条件路由

  1. 登录 Dubbo-Admin 控制台
  2. 在左侧导航栏中,选择服务治理 > 条件路由。
  3. 点击创建按钮,在创建新路由规则面板中填写规则内容,然后点击保存。

详细规则

配置模板
---
scope: application/service
force: true
runtime: true
enabled: true
key: app-name/group+service+version
conditions:
   - application=app1 => address=*:20880
   - method=sayHello => address=*:20880

对于条件路由场景,您只需要弄清楚以下问题,就知道如何编写配置

  1. 修改消费者应用的配置或服务的配置。
    • 应用:scope: application, key: app-name(也可以使用 services 指定某些服务)。
    • 服务:scope: service, key:group+service+version
  2. 路由结果为空时,是否强制返回。
    • force=false: 当路由结果为空时,降级到标签为空的提供者。
    • force=true: 当路由结果为空时,会直接返回异常。
  3. 路由规则的优先级
    • priority=1: 路由规则的优先级,用于排序,优先级越高,执行顺序越靠前,可以留空,默认值为 0。
  4. 配置是否只对某些特定实例生效。
    • 所有实例:addresses: ["0.0.0.0"]addresses: ["0.0.0.0:*"] 取决于侧值。
    • 指定实例:addersses[实例地址列表]
  5. 要修改的条件规则。
    • => 前面是消费者匹配条件。所有参数都与消费者的 URL 进行比较。当消费者满足匹配条件时,会对消费者执行后续的过滤规则。
    • => 之后是提供者地址列表的过滤条件。所有参数都与提供者的 URL 进行比较,最终消费者只获取过滤后的地址列表。
    • 如果匹配条件为空,则表示应用于所有消费者,例如:=> host != 10.20.153.11
    • 如果过滤条件为空,则禁止访问,例如:host = 10.20.153.10 =>

结果验证

选择与条件路由配置相关的应用,触发调用验证。


上次修改时间:2023 年 2 月 9 日:Update docsy to 0.6.0 (#2141) (20081578326)