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

基于DubboAdmin实现流量灰度

时间:2023-04-01 23:32:28 Java

Dubbo提供流量灰度服务治理能力,可以配置标签路由规则和条件路由实现灰度发布,无需重启应用。Dubbo可以通过XML配置、注解配置、动态配置实现流量灰度化。这里主要介绍动态配置的方式。其他配置方法请参考旧文档。在开始配置之前,请确保Dubbo-Admin已成功运行。在需求变更和版本迭代的场景下,为了兼顾需求变更和系统稳定性,发布应该尽可能的平滑,受影响的人数应该由小到大,有则立即回滚是个问题。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-管理控制台在左侧导航栏中选择服务治理>标签路由。单击创建按钮,在创建新标签规则窗格中,填写规则内容,然后单击保存。详细规则配置模板---force:falseruntime:trueenabled:truekey:governance-tagrouter-providertags:-name:tag1addresses:["127.0.0.1:20880"]-name:tag2addresses:["127.0.0.0.1:20881"]...对于流量灰度场景,只需要弄清楚下面几个问题就基本知道配置怎么写了:修改服务所属的provider应用的配置。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[实例地址列表]。要修改的标签名称。结果校验选择流量灰度配置相关的应用,触发调用校验。原文首发于Dubbo官网:https://cn.dubbo.apache.org/z...欢迎在https://github.com/apache/dubbo给DubboStar。搜索并关注官方微信公众号:ApacheDubbo,了解更多行业最新动态,掌握各大厂面试必备的Dubbo技能