首页 > 其他分享 >基于 Dubbo-Admin 实现根据请求条件路由

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

时间:2022-12-22 10:13:37浏览次数:54  
标签: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: 当路由结果为空,降级请求tag为空的提供者。
    • force=true: 当路由结果为空,直接返回异常。
  3. 路由规则的优先级
    • priority=1: 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。
  4. 配置是否只对某几个特定实例生效。
    • 所有实例:addresses: ["0.0.0.0"] addresses: ["0.0.0.0:*"] 具体由side值决定。
    • 指定实例:addersses[实例地址列表]
  5. 要修改的条件规则。
    • => 之前的为消费者匹配条件,所有参数和消费者的 URL 进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。
    • => 之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 进行对比,消费者最终只拿到过滤后的地址列表。
    • 如果匹配条件为空,表示对所有消费方应用,如:=> host != 10.20.153.11
    • 如果过滤条件为空,表示禁止访问,如:host = 10.20.153.10 =>

结果验证

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

原文首于 Dubbo 官网:https://cn.dubbo.apache.org/zh/overview/tasks/traffic-management/traffic-routing/
欢迎在 https://github.com/apache/dubbo 给 Dubbo Star。
搜索关注官方微信公众号:Apache Dubbo,了解更多业界最新动态,掌握大厂面试必备 Dubbo 技能

标签:Dubbo,Admin,配置,为空,条件,路由
From: https://www.cnblogs.com/apache-dubbo/p/16997735.html

相关文章

  • .net 6 全局路由扩展
    1、先定义一个类,用来实现IApplicationModelConvention 接口///<summary>///全局路由前缀配置///</summary>publicclassRouteConvention:IApplic......
  • .net core web api 路由约束
    路由约束在传入URL发生匹配时执行,URL路径标记为路由值。路径约束通常检查通过路径模板关联的路径值,并对该值是否为可接受做出对/错决定。某些路由约束使用路由值以外......
  • 将路由器从弱电箱里解放出来
    由于家里各个房间的网线的汇聚口是弱电箱,我们一般就把路由器放到弱电箱中,但是随着路由器性能越来越强大,发热也是越来越强,弱电箱已经不适合放路由器了,并且把路由器放弱电箱......
  • [react] 路由
    文章目录​​1.相关理解​​​​1.1.SPA的理解​​​​1.2.路由的理解​​​​1.2.1什么是路由?​​​​1.2.2路由分类​​​​2.react-router-dom相关API​​​​2.1......
  • TP6在路由文件中同时使用跨域和中间件引起的跨域失败问题的解决过程
    在TP6文档中,写路由文件可以连贯操作middleware和allowcrossdomain,并且里面可以配置参数,我一偷懒,就两个都用了,如下图,之前没有增加Middleware的时候好使,能跨域,但后来要用中间......
  • vue-router3,点击相同的路由,会报错NavigationDuplicated
    vue-router点击相同的路由链接会报错NavigationDuplicated{"_name":"NavigationDuplicated","name":"NavigationDuplicated","message":"Navigatingto......
  • 基于Springboot+Element-Vue-Admin实现简单权限管理系统
    @目录一、系统介绍二、功能展示1.用户登陆2.用户管理3.权限管理、权限设置4.菜单管理三、数据库展示四、其它1.数据库表2.获取源码一、系统介绍系统主要功能:系统实现了用......
  • vue3 + ts 路由换标题
    npminstallvue-wechat-title--save//引入换标题的插件importVueWechatTitlefrom'vue-wechat-title'//使用插件VueWechatTitleapp.use(store).use(router)......
  • 基于 Dubbo Admin 实现流量灰度
    Dubbo提供流量灰度的服务治理能力,可以在无需重启应用的情况下,配置标签路由规则和条件路由实现灰度发布。Dubbo可以通过XML配置,注解配置,动态配置实现流量灰度,这里主要介绍......
  • Vue路由配置项meta使用
    meta简单来说就是路由元信息也就是每个路由身上携带的信息。这里简单的举两个例子其次还有一个功能就是能够控制公共组件的显示或隐藏请忽视keep-alive标签......