当前位置 : 主页 > 编程语言 > java >

基于 Dubbo-Admin 实现根据请求条件路由

来源:互联网 收集:自由互联 发布时间:2022-12-23
Dubbo提供动态创建条件路由的服务治理能力,可以在无需重启应用的情况下,根据请求发起方、请求的方法条件路由。 Dubbo可以通过XML配置,注解配置,动态配置实现动态根据请求条件

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

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

开始之前

请确保成功运行Dubbo-Admin

背景信息

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

操作步骤

条件路由

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

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

    对于条件路由场景,只需要理清楚以下问题基本就知道配置该怎么写了:

  • 要修改消费者应用的配置还是某个服务的配置。
    • 应用:scope: application, key: app-name(还可使用services指定某几个服务)。
    • 服务:scope: service, key:group+service+version。
  • 当路由结果为空,是否强制返回。
    • force=false: 当路由结果为空,降级请求tag为空的提供者。
    • force=true: 当路由结果为空,直接返回异常。
  • 路由规则的优先级
    • priority=1: 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。
  • 配置是否只对某几个特定实例生效。
    • 所有实例:addresses: ["0.0.0.0"]或addresses: ["0.0.0.0:*"]具体由side值决定。
    • 指定实例:addersses[实例地址列表]。
  • 要修改的条件规则。
    • => 之前的为消费者匹配条件,所有参数和消费者的 URL 进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。
    • => 之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 进行对比,消费者最终只拿到过滤后的地址列表。
    • 如果匹配条件为空,表示对所有消费方应用,如:=> host != 10.20.153.11
    • 如果过滤条件为空,表示禁止访问,如:host = 10.20.153.10 =>
  • 结果验证

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

    欢迎在 https://github.com/apache/dubbo 给 Dubbo Star。

    【本文转自:日本cn2服务器 http://www.558idc.com/jap.html提供,感恩】
    上一篇:教你用Java实现动态调色板
    下一篇:没有了
    网友评论