From 909d1cc4cfc74b61ef8446b26c92fe2b0d91b8d0 Mon Sep 17 00:00:00 2001 From: carlvine500 Date: Fri, 14 Jul 2023 17:24:44 +0800 Subject: [PATCH] Update tag-rule.md add multi level tag document --- content/zh-cn/overview/core-features/traffic/tag-rule.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/zh-cn/overview/core-features/traffic/tag-rule.md b/content/zh-cn/overview/core-features/traffic/tag-rule.md index 8d36a5fbaf59..fd5a69d17563 100644 --- a/content/zh-cn/overview/core-features/traffic/tag-rule.md +++ b/content/zh-cn/overview/core-features/traffic/tag-rule.md @@ -14,10 +14,13 @@ weight: 2 本文要讲的就是标签路由规则就是 `动态规则打标`。 -标签路由是一套严格隔离的流量体系,对于同一个应用而言,一旦打了标签则这部分地址子集就被隔离出来,只有带有对应标签的请求流量可以访问这个地址子集,这部分地址不再接收没有标签或者具有不同标签的流量。 +标签路由是一套严格隔离的流量体系,对于同一个应用而言,一旦打了标签则这部分地址子集就被隔离出来,只有带有对应标签的请求流量可以访问这个地址子集,这部分地址不再接收没有标签或者具有不同标签的流量;此外,标签路由支持多层级(level1|level2),调用时会逐渐缩短层级匹配服务提供方。 举个例子,如果我们将一个应用进行打标,打标后划分为 tag-a、tag-b、无 tag 三个地址子集,则访问这个应用的流量,要么路由到 tag-a (当请求上下文 dubbo.tag=tag-a),要么路由到 tag-b (dubbo.tag=tag-b),或者路由到无 tag 的地址子集 (dubbo.tag 未设置),不会出现混调的情况。 +再举一个多层级的例子,有个beta环境,多个团队在使用,其中team1在开发大项目,小团队partner1在开发子功能,当请求上下文 (dubbo.tag=beta|team1|partner1)发起,会先优先路由到beta|team1|partner1,否则路由到beta|team1,否则否由到beta,最后如果没能匹配到任何层级的标签,只能路由到无 tag 的地址子集。 + + 标签路由的作用域是提供者应用,消费者应用无需配置标签路由规则。一个提供者应用内的所有服务只能有一条分组规则,不会有服务 A 使用一条路由规则、服务 B 使用另一条路由规则的情况出现。以下条件路由示例,在 `shop-detail` 应用中圈出了一个隔离环境 `gray`,`gray` 环境包含所有带有 `env=gray` 标识的机器实例。 ```yaml