当前位置: 首页 > 后端技术 > Java

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

时间:2023-04-02 01:13:46 Java

Dubbo提供了动态创建条件路由的服务治理能力,可以在不重启应用的情况下,根据请求发起者和方法进行路由。Dubbo可以通过XML配置、注解配置、动态配置实现基于请求条件的动态路由。这里主要介绍动态配置的方法。其他配置方法请参考旧文档。在开始配置之前,请确保Dubbo-Admin运行成功。列出、排除预发布机器、仅暴露部分机器、按环境隔离等。在发起RPC调用前需要路由规则过滤目标服务器地址,过滤后的地址作为最终RPC调用的候选地址.Dubbo-Admin提供了条件路由能力,可以帮助您配置路由规则以满足业务场景。操作步骤条件路由登录Dubbo-Admin控制台,在左侧导航栏选择服务治理>条件路由。点击Create按钮,在CreateNewRoutingRule面板中,填写规则内容,然后点击Save。详细规则配置模板---scope:application/serviceforce:trueruntime:trueenabled:truekey:app-name/group+service+versionconditions:-application=app1=>address=*:20880-method=sayHello=>address=*:20880对于条件路由场景,只需要了解下面几个问题就基本知道配置怎么写了:是修改消费者应用的配置,还是修改某个服务的配置。Application:scope:application,key:app-name(services也可以用来指定某些服务)。服务:范围:服务,键:组+服务+版本。路由结果为空时是否强制返回。force=false:当路由结果为空时,降级request标签为空的provider。force=true:当路由结果为空时,直接返回异常。路由规则的优先级priority=1:路由规则的优先级,用于排序,优先级越高越早执行,可以不填,默认为0。配置是否只对某些特定的实例生效。所有实例:地址:["0.0.0.0"]或地址:["0.0.0.0:*"]由边值确定。指定实例:addersses[实例地址列表]。要修改的条件规则。=>前面一个是消费者匹配条件,所有参数都和消费者的url进行比较,当消费者满足匹配条件时,对消费者执行下面的过滤规则。=>之后是提供者地址列表的过滤条件。所有参数都与提供者的URL进行比较,消费者最终得到的只是过滤后的地址列表。如果匹配条件为空,表示应用于所有消费者,如:=>host!=10.20.153.11如果过滤条件为空,表示禁止访问,如:host=10.20.153.10=>结果验证选择与条件路由配置相关应用程序触发调用验证。原文首发于Dubbo官网:https://cn.dubbo.apache.org/z...欢迎在https://github.com/apache/dubbo给DubboStar。搜索并关注官方微信公众号:ApacheDubbo,了解更多行业最新动态,掌握各大厂面试必备的Dubbo技能