流量隔离
在 Dubbo-Admin 动态进行流量隔离
Dubbo提供动态流量隔离的服务治理能力,可以在无需重启应用的情况下,动态进行流量隔离。
Dubbo可以通过XML配置,注解配置,动态配置实现流量隔离,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置
开始之前
请确保成功运行Dubbo-Admin
背景信息
如果一个应用有多个版本在线上同时运行,部署在不同环境中,如日常环境和特殊环境,则可以使用标签路由对不同环境中的不同版本进行流量隔离,将秒杀订单流量或不同渠道订单流量路由到特殊环境,将正常的流量路由到日常环境。即使特殊环境异常,本应进入特殊环境的流量也不会进入日常环境,不影响日常环境的使用。
操作步骤
标签路由
- 登录Dubbo-Admin控制台
- 在左侧导航栏选择服务治理 > 标签路由。
- 点击创建按钮,在创建新标签规则面板中,填写规则内容,然后单击保存。
规则详解
配置模板
---
force: false
runtime: true
enabled: true
key: governance-tagrouter-provider
tags:
- name: tag1
addresses: ["127.0.0.1:20880"]
- name: tag2
addresses: ["127.0.0.1:20881"]
...
对于流量隔离场景,只需要理清楚以下问题基本就知道配置该怎么写了:
- 要修改服务所属提供者应用的配置。
- 应用:
scope: application, key: app-name
(还可使用services
指定某几个服务)。
- 应用:
- 当路由结果为空,是否强制返回。
- force=false: 当路由结果为空,降级请求tag为空的提供者。
- force=true: 当路由结果为空,直接返回异常。
- 路由规则的优先级
- priority=1: 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。
- 配置是否只对某几个特定实例生效。
- 所有实例:
addresses: ["0.0.0.0"]
或addresses: ["0.0.0.0:*"]
具体由side值决定。 - 指定实例:
addersses[实例地址列表]
。
- 所有实例:
- 要修改的标签名。
结果验证
选择和流量隔离配置相关的应用,触发该调用验证。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 August 14, 2022: 完善示例实践服务治理文档 (#1384) (5b8cd0a93f)