This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch cn-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/cn-site by this push:
     new e0054a5304 deploy: 496ddc34f35348224c44a090e4a74a587003e8f3
e0054a5304 is described below

commit e0054a53042293aaa2836b1b07f9e3e3f3c66218
Author: AlbumenJ <[email protected]>
AuthorDate: Thu Jan 19 12:42:43 2023 +0000

    deploy: 496ddc34f35348224c44a090e4a74a587003e8f3
---
 sitemap.xml                                        |   2 +-
 .../advanced-features-and-usage/traffic/index.xml  | 192 +++++++++------------
 .../traffic/mesh-style/index.html                  |  10 +-
 .../traffic/routing-rule/index.html                |  41 +++--
 zh/sitemap.xml                                     |   2 +-
 5 files changed, 107 insertions(+), 140 deletions(-)

diff --git a/sitemap.xml b/sitemap.xml
index 018088ef81..0cfdd34bce 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh/sitemap.xml</loc><lastmod>2023-01-19T09:58:15+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-01-17T14:11:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh/sitemap.xml</loc><lastmod>2023-01-19T20:38:57+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-01-17T14:11:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/index.xml 
b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/index.xml
index 902085c144..901ec575df 100644
--- a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/index.xml
+++ b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/index.xml
@@ -1,16 +1,12 @@
 <rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Dubbo – 
流量治理规则</title><link>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/</link><description>Recent
 content in 流量治理规则 on Apache Dubbo</description><generator>Hugo -- 
gohugo.io</generator><language>en-us</language><atom:link 
href="https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/index.xml";
 rel="self" type="application/rss+xml"/><ite [...]
+&lt;h2 id="路由规则概述">路由规则概述&lt;/h2>
 &lt;p>路由规则在发起一次RPC调用前起到过滤目标服务器地址的作用,过滤后的地址列表,将作为消费端最终发起RPC调用的备选地址。&lt;/p>
+&lt;p>您可以随时在服务治理控制台 &lt;a 
href="https://github.com/apache/dubbo-admin";>Dubbo-Admin&lt;/a> 写入路由规则。&lt;/p>
 &lt;ul>
 &lt;li>条件路由。支持以服务或 Consumer 应用为粒度配置路由规则。&lt;/li>
 &lt;li>标签路由。以 Provider 应用为粒度配置路由规则。&lt;/li>
 &lt;/ul>
-&lt;p>后续我们计划在 2.6.x 版本的基础上继续增强脚本路由功能。&lt;/p>
-&lt;h2 id="条件路由">条件路由&lt;/h2>
-&lt;p>您可以随时在服务治理控制台 &lt;a 
href="https://github.com/apache/dubbo-admin";>Dubbo-Admin&lt;/a> 写入路由规则&lt;/p>
-&lt;h3 id="简介">简介&lt;/h3>
-&lt;ul>
-&lt;li>
-&lt;p>应用粒度&lt;/p>
+&lt;h3 id="应用粒度">应用粒度&lt;/h3>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span style="color:#586e75"># 
app1的消费者只能消费所有端口为20880的服务实例&lt;/span>
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># app2的消费者只能消费所有端口为20881的服务实例&lt;/span>
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
@@ -23,9 +19,7 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - 
application=app1 =&amp;gt; address=*:20880
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - 
application=app2 =&amp;gt; address=*:20881
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
-&lt;li>
-&lt;p>服务粒度&lt;/p>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="服务粒度">服务粒度&lt;/h3>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span style="color:#586e75"># 
DemoService的sayHello方法只能消费所有端口为20880的服务实例&lt;/span>
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># DemoService的sayHi方法只能消费所有端口为20881的服务实例&lt;/span>
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
@@ -38,10 +32,10 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - method=sayHello 
=&amp;gt; address=*:20880
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - method=sayHi 
=&amp;gt; address=*:20881
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
-&lt;/ul>
-&lt;h3 id="规则详解">规则详解&lt;/h3>
-&lt;h4 id="各字段含义">各字段含义&lt;/h4>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
+&lt;p>后续我们计划在 2.6.x 版本的基础上继续增强脚本路由功能。&lt;/p>
+&lt;/blockquote>
+&lt;h2 id="规则详解">规则详解&lt;/h2>
 &lt;ul>
 
&lt;li>&lt;code>scope&lt;/code>表示路由规则的作用粒度,scope的取值会决定key的取值。&lt;strong>必填&lt;/strong>。
 &lt;ul>
@@ -61,124 +55,61 @@
 &lt;li>&lt;code>priority=1&lt;/code> 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 
&lt;code>0&lt;/code>。&lt;/li>
 &lt;li>&lt;code>conditions&lt;/code> 
定义具体的路由规则内容。&lt;strong>必填&lt;/strong>。&lt;/li>
 &lt;/ul>
-&lt;h4 id="conditions规则体">Conditions规则体&lt;/h4>
-&lt;pre>&lt;code>`conditions`部分是规则的主体,由1到任意多条规则组成,下面我们就每个规则的配置语法做详细说明:
-&lt;/code>&lt;/pre>
-&lt;ol>
-&lt;li>&lt;strong>格式&lt;/strong>&lt;/li>
-&lt;/ol>
+&lt;h3 id="conditions规则体">Conditions规则体&lt;/h3>
+&lt;p>&lt;code>conditions&lt;/code>部分是规则的主体,由1到任意多条规则组成,下面我们就每个规则的配置语法做详细说明:&lt;/p>
+&lt;p>&lt;strong>格式&lt;/strong>&lt;/p>
 &lt;ul>
 &lt;li>&lt;code>=&amp;gt;&lt;/code> 之前的为消费者匹配条件,所有参数和消费者的 URL 
进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。&lt;/li>
 &lt;li>&lt;code>=&amp;gt;&lt;/code> 之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 
进行对比,消费者最终只拿到过滤后的地址列表。&lt;/li>
 &lt;li>如果匹配条件为空,表示对所有消费方应用,如:&lt;code>=&amp;gt; host != 
10.20.153.11&lt;/code>&lt;/li>
 &lt;li>如果过滤条件为空,表示禁止访问,如:&lt;code>host = 10.20.153.10 
=&amp;gt;&lt;/code>&lt;/li>
 &lt;/ul>
-&lt;ol start="2">
-&lt;li>&lt;strong>表达式&lt;/strong>&lt;/li>
-&lt;/ol>
-&lt;p>参数支持:&lt;/p>
+&lt;p>&lt;strong>表达式&lt;/strong>&lt;/p>
+&lt;p>参数支持&lt;/p>
 &lt;ul>
 &lt;li>服务调用信息,如:method, argument 等,暂不支持参数路由&lt;/li>
 &lt;li>URL 本身的字段,如:protocol, host, port 等&lt;/li>
 &lt;li>以及 URL 上的所有参数,如:application, organization 等&lt;/li>
 &lt;/ul>
-&lt;p>条件支持:&lt;/p>
+&lt;p>条件支持&lt;/p>
 &lt;ul>
 &lt;li>等号 &lt;code>=&lt;/code> 表示&amp;quot;匹配&amp;quot;,如:&lt;code>host = 
10.20.153.10&lt;/code>&lt;/li>
 &lt;li>不等号 &lt;code>!=&lt;/code> 表示&amp;quot;不匹配&amp;quot;,如:&lt;code>host != 
10.20.153.10&lt;/code>&lt;/li>
 &lt;/ul>
-&lt;p>值支持:&lt;/p>
+&lt;p>值支持&lt;/p>
 &lt;ul>
 &lt;li>以逗号 &lt;code>,&lt;/code> 分隔多个值,如:&lt;code>host != 
10.20.153.10,10.20.153.11&lt;/code>&lt;/li>
 &lt;li>以星号 &lt;code>*&lt;/code> 结尾,表示通配,如:&lt;code>host != 
10.20.*&lt;/code>&lt;/li>
 &lt;li>以美元符 &lt;code>$&lt;/code> 开头,表示引用消费者参数,如:&lt;code>host = 
$host&lt;/code>&lt;/li>
 &lt;/ul>
-&lt;ol start="3">
-&lt;li>&lt;strong>Condition示例&lt;/strong>&lt;/li>
-&lt;/ol>
-&lt;ul>
-&lt;li>排除预发布机:&lt;/li>
-&lt;/ul>
+&lt;h3 id="condition示例">Condition示例&lt;/h3>
+&lt;p>排除预发布机&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>=&amp;gt; host != 172.22.3.91
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>白名单:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>白名单&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>register.ip != 10.20.153.10,10.20.153.11 
=&amp;gt;
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
-&lt;div class="alert alert-warning" role="alert">
-&lt;h4 class="alert-heading">注意&lt;/h4>
-一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了
-&lt;/div>
-&lt;ul>
-&lt;li>黑名单:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
+&lt;p>一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了&lt;/p>
+&lt;/blockquote>
+&lt;p>黑名单&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>register.ip = 10.20.153.10,10.20.153.11 =&amp;gt;
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>=&amp;gt; host = 172.22.3.1*,172.22.3.2*
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>为重要应用提供额外的机器:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>为重要应用提供额外的机器&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>application != kylin =&amp;gt; host != 
172.22.3.95,172.22.3.96
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>读写分离:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>读写分离&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>method = find*,list*,get*,is* =&amp;gt; host = 
172.22.3.94,172.22.3.95,172.22.3.96
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>method != 
find*,list*,get*,is* =&amp;gt; host = 172.22.3.97,172.22.3.98
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>前后台分离:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>前后台分离&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>application = bops =&amp;gt; host = 
172.22.3.91,172.22.3.92,172.22.3.93
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>application != 
bops =&amp;gt; host = 172.22.3.94,172.22.3.95,172.22.3.96
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>隔离不同机房网段:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>隔离不同机房网段&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>host != 172.22.3.* =&amp;gt; host != 172.22.3.*
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
-&lt;li>提供者与消费者部署在同集群内,本机只访问本机的服务:&lt;/li>
-&lt;/ul>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>提供者与消费者部署在同集群内,本机只访问本机的服务&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-fallback" data-lang="fallback">&lt;span 
style="display:flex;">&lt;span>=&amp;gt; host = $host
 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 
id="标签路由规则">标签路由规则&lt;/h2>
-&lt;h3 id="简介-1">简介&lt;/h3>
 
&lt;p>标签路由通过将某一个或多个服务的提供者划分到同一个分组,约束流量只在指定分组中流转,从而实现流量隔离的目的,可以作为蓝绿发布、灰度发布等场景的能力基础。&lt;/p>
-&lt;h4 id="provider">Provider&lt;/h4>
-&lt;p>标签主要是指对Provider端应用实例的分组,目前有两种方式可以完成实例分组,分别是&lt;code>动态规则打标&lt;/code>和&lt;code>静态规则打标&lt;/code>,其中动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。&lt;/p>
-&lt;ul>
-&lt;li>
-&lt;p>动态规则打标,可随时在&lt;strong>服务治理控制台&lt;/strong>下发标签归组规则&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span style="color:#586e75"># 
governance-tagrouter-provider应用增加了两个标签分组tag1和tag2&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># tag1包含一个实例 127.0.0.1:20880&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># tag2包含一个实例 127.0.0.1:20881&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">force&lt;/span>: &lt;span 
style="color:#cb4b16">false&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">runtime&lt;/span>: &lt;span 
style="color:#cb4b16">true&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">enabled&lt;/span>: &lt;span 
style="color:#cb4b16">true&lt;/span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">key&lt;/span>: governance-tagrouter-provider
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">tags&lt;/span>:
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: tag1
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">addresses&lt;/span>: [&lt;span 
style="color:#2aa198">&amp;#34;127.0.0.1:20880&amp;#34;&lt;/span>]
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: tag2
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">addresses&lt;/span>: [&lt;span 
style="color:#2aa198">&amp;#34;127.0.0.1:20881&amp;#34;&lt;/span>]
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
-&lt;li>
-&lt;p>静态打标&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-xml" data-lang="xml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">&amp;lt;dubbo:provider&lt;/span> tag=&lt;span 
style="color:#2aa198">&amp;#34;tag1&amp;#34;&lt;/span>&lt;span 
style="color:#268bd2">/&amp;gt;&lt;/span>
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>or&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-xml" data-lang="xml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">&amp;lt;dubbo:service&lt;/span> tag=&lt;span 
style="color:#2aa198">&amp;#34;tag1&amp;#34;&lt;/span>&lt;span 
style="color:#268bd2">/&amp;gt;&lt;/span>
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>or&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-properties" data-lang="properties">&lt;span 
style="display:flex;">&lt;span>java &lt;span style="color:#2aa198">-jar 
xxx-provider.jar -Ddubbo.provider.tag={the tag you want, may come from OS 
ENV}&lt;/span>
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
-&lt;/ul>
-&lt;h4 id="consumer">Consumer&lt;/h4>
-&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-java" data-lang="java">&lt;span 
style="display:flex;">&lt;span>RpcContext&lt;span 
style="color:#719e07">.&lt;/span>getContext&lt;span 
style="color:#719e07">().&lt;/span>setAttachment&lt;span 
style="color:#719e07">(&lt;/span>Constants&lt;span 
style="color:#719e07">.&lt;/span>TAG_KEY&lt;span 
style="color:#719e07">,&lt;/span>&lt;spa [...]
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>请求标签的作用域为每一次 
invocation,使用 attachment 来传递请求标签,注意保存在 attachment 
中的值将会在一次完整的远程调用中持续传递,得益于这样的特性,我们只需要在起始调用时,通过一行代码的设置,达到标签的持续传递。&lt;/p>
-&lt;blockquote>
-&lt;p>目前仅仅支持 hardcoding 的方式设置 dubboTag。注意到 RpcContext 是线程绑定的,优雅的使用 TagRouter 
特性,建议通过 servlet 过滤器(在 web 环境下),或者定制的 SPI 过滤器设置 dubboTag。&lt;/p>
-&lt;/blockquote>
 &lt;h3 id="规则详解-1">规则详解&lt;/h3>
-&lt;h4 id="格式">格式&lt;/h4>
+&lt;p>&lt;strong>格式&lt;/strong>&lt;/p>
 &lt;ul>
 &lt;li>&lt;code>Key&lt;/code>明确规则体作用到哪个应用。&lt;strong>必填&lt;/strong>。&lt;/li>
 &lt;li>&lt;code>enabled=true&lt;/code> 当前路由规则是否生效,可不填,缺省生效。&lt;/li>
@@ -192,7 +123,7 @@
 &lt;/li>
 &lt;li>addresses, 当前标签包含的实例列表&lt;/li>
 &lt;/ul>
-&lt;h4 id="降级约定">降级约定&lt;/h4>
+&lt;p>&lt;strong>降级约定&lt;/strong>&lt;/p>
 &lt;ol>
 &lt;li>
 &lt;p>&lt;code>dubbo.tag=tag1&lt;/code> 时优先选择 标记了&lt;code>tag=tag1&lt;/code> 的 
provider。若集群中不存在与请求标记对应的服务,默认将降级请求 
tag为空的provider;如果要改变这种默认行为,即找不到匹配tag1的provider返回异常,需设置&lt;code>dubbo.force.tag=true&lt;/code>。&lt;/p>
@@ -201,10 +132,43 @@
 &lt;p>&lt;code>dubbo.tag&lt;/code>未设置时,只会匹配tag为空的provider。即使集群中存在可用的服务,若 tag 
不匹配也就无法调用,这与约定1不同,携带标签的请求可以降级访问到无标签的服务,但不携带标签/携带其他种类标签的请求永远无法访问到其他标签的服务。&lt;/p>
 &lt;/li>
 &lt;/ol>
-&lt;div class="alert alert-primary" role="alert">
-&lt;h4 class="alert-heading">提示&lt;/h4>
-自定义路由参考&lt;a 
href="https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/";>路由扩展&lt;/a>
-&lt;/div></description></item><item><title>Docs3-V2: 
配置规则</title><link>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/config-rule/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/config-rule/</guid><description>
+&lt;h3 id="provider">Provider&lt;/h3>
+&lt;p>标签主要是指对Provider端应用实例的分组,目前有两种方式可以完成实例分组,分别是&lt;code>动态规则打标&lt;/code>和&lt;code>静态规则打标&lt;/code>,其中动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。&lt;/p>
+&lt;blockquote>
+&lt;p>可随时在&lt;strong>服务治理控制台&lt;/strong>下发标签归组规则&lt;/p>
+&lt;/blockquote>
+&lt;p>&lt;strong>动态规则打标&lt;/strong>&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span style="color:#586e75"># 
governance-tagrouter-provider应用增加了两个标签分组tag1和tag2&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># tag1包含一个实例 127.0.0.1:20880&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#586e75"># tag2包含一个实例 127.0.0.1:20881&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">force&lt;/span>: &lt;span 
style="color:#cb4b16">false&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">runtime&lt;/span>: &lt;span 
style="color:#cb4b16">true&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">enabled&lt;/span>: &lt;span 
style="color:#cb4b16">true&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">key&lt;/span>: governance-tagrouter-provider
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">tags&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: tag1
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">addresses&lt;/span>: [&lt;span 
style="color:#2aa198">&amp;#34;127.0.0.1:20880&amp;#34;&lt;/span>]
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: tag2
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">addresses&lt;/span>: [&lt;span 
style="color:#2aa198">&amp;#34;127.0.0.1:20881&amp;#34;&lt;/span>]
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>静态打标&lt;/strong>&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-xml" data-lang="xml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">&amp;lt;dubbo:provider&lt;/span> tag=&lt;span 
style="color:#2aa198">&amp;#34;tag1&amp;#34;&lt;/span>&lt;span 
style="color:#268bd2">/&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>or&lt;/strong>&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-xml" data-lang="xml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">&amp;lt;dubbo:service&lt;/span> tag=&lt;span 
style="color:#2aa198">&amp;#34;tag1&amp;#34;&lt;/span>&lt;span 
style="color:#268bd2">/&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>or&lt;/strong>&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-properties" data-lang="properties">&lt;span 
style="display:flex;">&lt;span>java &lt;span style="color:#2aa198">-jar 
xxx-provider.jar -Ddubbo.provider.tag={the tag you want, may come from OS 
ENV}&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 
id="consumer">Consumer&lt;/h3>
+&lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-java" data-lang="java">&lt;span 
style="display:flex;">&lt;span>RpcContext&lt;span 
style="color:#719e07">.&lt;/span>getContext&lt;span 
style="color:#719e07">().&lt;/span>setAttachment&lt;span 
style="color:#719e07">(&lt;/span>Constants&lt;span 
style="color:#719e07">.&lt;/span>TAG_KEY&lt;span 
style="color:#719e07">,&lt;/span>&lt;spa [...]
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
+&lt;p>请求标签的作用域为每一次 invocation,使用 attachment 来传递请求标签,注意保存在 attachment 
中的值将会在一次完整的远程调用中持续传递,得益于这样的特性,我们只需要在起始调用时,通过一行代码的设置,达到标签的持续传递。&lt;/p>
+&lt;/blockquote>
+&lt;blockquote>
+&lt;p>目前仅仅支持 hardcoding 的方式设置 dubboTag。注意到 RpcContext 是线程绑定的,优雅的使用 TagRouter 
特性,建议通过 servlet 过滤器(在 web 环境下),或者定制的 SPI 过滤器设置 dubboTag。&lt;/p>
+&lt;/blockquote>
+&lt;blockquote>
+&lt;p>自定义路由参考&lt;a 
href="https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/";>路由扩展&lt;/a>&lt;/p>
+&lt;/blockquote></description></item><item><title>Docs3-V2: 
配置规则</title><link>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/config-rule/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/config-rule/</guid><description>
 &lt;h2 id="配置规则概述">配置规则概述&lt;/h2>
 &lt;p>覆盖规则是 Dubbo 设计的在无需重启应用的情况下,动态调整 RPC 调用行为的一种能力。2.7.0 
版本开始,支持从&lt;strong>服务&lt;/strong>和&lt;strong>应用&lt;/strong>两个粒度来调整动态配置。&lt;/p>
 &lt;blockquote>
@@ -372,14 +336,14 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
 
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs3-V2:
 Mesh 
路由规则</title><link>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/</guid><description>
 &lt;h3 id="基本思想">基本思想&lt;/h3>
-&lt;p>基于路由链,采用Pipeline的处理方式,如下图所示:&lt;/p>
+&lt;p>基于路由链,采用 Pipeline 的处理方式&lt;/p>
 &lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/user/route-rule1.png"; 
alt="route-rule1.png">&lt;/p>
-&lt;p>可以把路由链的逻辑简单的理解为 target = rn(&amp;hellip;r3(r2(r1(src))))。对于每一个 router 
内部的逻辑,可以抽象为输入地址 addrs-in 与 router 中按全量地址 addrs-all 实现切分好的 n 个互不相交的地址池 
addrs-pool-1 &amp;hellip; addrs-pool-n 按实现定义好的规则取交集作为输出 
addrs-out。以此类推,完成整个路由链的计算。&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/user/route-rule2.png"; 
alt="route-rule2.png">&lt;/p>
+&lt;p>可以把路由链的逻辑简单的理解为 target = rn(&amp;hellip;r3(r2(r1(src))))。&lt;/p>
+&lt;p>对于每一个 router 内部的逻辑,可以抽象为输入地址 addrs-in 与 router 中按全量地址 addrs-all 实现切分好的 n 
个互不相交的地址池 addrs-pool-1 &amp;hellip; addrs-pool-n 按实现定义好的规则取交集作为输出 
addrs-out。以此类推,完成整个路由链的计算。&lt;/p>
 &lt;p>另外一方面,如果 router(n) 需要执行 fallback 逻辑的时候,那么需要经过 router(n) 就应该决定好 fallback 
逻辑&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/user/route-rule2.png"; 
alt="route-rule2.png">&lt;/p>
 &lt;h3 id="fallback-处理原则">fallback 处理原则&lt;/h3>
 &lt;p>由于多个 router 之间多个条件组件之后,很容易出现地址被筛选为空的情况,那么我们需要针对这情况进行 fallback 
处理,保证业务在正确性的前提下,能够顺利找到有效地址。&lt;/p>
-&lt;p>首先我们看一下以下规则&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">apiVersion&lt;/span>: service.dubbo.apache.org/v1alpha1
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">kind&lt;/span>: VirtualService
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">metadata&lt;/span>:
@@ -456,8 +420,10 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">labels&lt;/span>:
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">sigma.ali/mg&lt;/span>: v3-host
 
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>我们以脚本路由为例,这个脚本路由的匹配条件是遵循一个原则的,就是匹配的范围是从精确到广泛的一个过程,在这个示例来说,就是
 sayHello(string)参数 -&amp;gt; sayHello 方法 -&amp;gt; 接口级路由 的一个匹配查找过程。&lt;/p>
+&lt;blockquote>
 &lt;p>那么如果我们已经满足某个条件,但是选到的 subset 地址为空,我们将如何进行 fallback 处理呢?&lt;/p>
-&lt;p>以匹配 sayHello(string)参数 条件为例,我们选择到的是 v1 
subset,如果是空,我们可以向上一级是寻找地址,也就是方法级去寻找地址,具体的配置为下&lt;/p>
+&lt;/blockquote>
+&lt;p>以匹配 sayHello(string)参数 条件为例,我们选择到的是 v1 
subset,如果是空,我们可以向上一级是寻找地址,也就是方法级去寻找地址。&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: sayHello-String-method-route
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">match&lt;/span>:
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">method&lt;/span>:
@@ -479,7 +445,7 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">host&lt;/span>: demo
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">subset&lt;/span>: v3
 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>此时我们选到的地址是 v2 方法级地址,如果 
v2 还是没有地址,根据规则的定义,我们是可以 fallback 到 v3 接口级。&lt;/p>
-&lt;p>假设我们有一个方法匹配时,如果没有地址,需要不进行 fallback,直接报错,我们可以这样配置&lt;/p>
+&lt;p>假设我们有一个方法匹配时,如果没有地址,需要不进行 fallback,直接报错,可以配置以下方式&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">apiVersion&lt;/span>: service.dubbo.apache.org/v1alpha1
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">kind&lt;/span>: VirtualService
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">metadata&lt;/span>:
@@ -564,17 +530,19 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span 
style="color:#268bd2">name&lt;/span>: v3
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">labels&lt;/span>:
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span 
style="color:#268bd2">sigma.ali/mg&lt;/span>: v3-host
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>从这个规则我们看出来匹配到 
some-method 条件时对应的是 v4 subset,那么 v4 为空时,因为没有配置 fallback ,此时会直接报错&lt;/p>
-&lt;h4 id="fallback-处理原则总结">fallback 处理原则总结&lt;/h4>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>从这个规则我们看出来匹配到 
some-method 条件时对应的是 v4 subset,那么 v4 为空时,因为没有配置 fallback ,此时会直接报错。&lt;/p>
+&lt;blockquote>
+&lt;p>fallback 处理原则总结&lt;/p>
 &lt;ul>
 &lt;li>我们应该在 VirtualService route 中配置好 Destination 的 fallback 处理逻辑&lt;/li>
 &lt;li>在 fallback subset 时,如果对应的 subset 也配置有 fallback subset 时,也应递归处理;fallback 
subset 之间的关系也应该是从具体到广泛&lt;/li>
 &lt;li>我们在编写匹配条件时,应该遵循从 具体条件到广泛条件 的原则&lt;/li>
 &lt;/ul>
+&lt;/blockquote>
 &lt;h3 id="routechain-的组装模式-目前未实现">RouteChain 的组装模式 (目前未实现)&lt;/h3>
 &lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/user/route-rule3.png"; 
alt="route-rule3.png">&lt;/p>
 &lt;p>我们看到上面的图,在路由的过程当中,我们是 Pipeline 的处理方式,Pipeline 的 Router 节点存在顺序,并且每个 
Router 都有一个唯一对应的 VirtualService 和 &lt;strong>多个&lt;/strong> 相应的 DestinationRule 
进行描述。&lt;/p>
-&lt;p>以 Nacos 上存着的路由规则配置为例,配置的格式如下:&lt;/p>
+&lt;p>以 Nacos 上存着的路由规则配置为例,配置格式如下&lt;/p>
 &lt;div class="highlight">&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code
 class="language-yaml" data-lang="yaml">&lt;span 
style="display:flex;">&lt;span>&lt;span style="color:#268bd2">DataId&lt;/span>: 
Demo.rule.yaml
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span 
style="color:#268bd2">GROUP&lt;/span>: HSF
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
diff --git 
a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/index.html
 
b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/index.html
index 4efef62d28..9d3bbff0c5 100644
--- 
a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/index.html
+++ 
b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/index.html
@@ -3,7 +3,7 @@
 <link rel=stylesheet 
href=https://cdn.jsdelivr.net/npm/@docsearch/css@3></head><body 
class=td-section><header><nav class="js-navbar-scroll navbar navbar-expand 
navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand 
href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg"; 
viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path 
class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 
25.45-22.11V7.25H68.46zm21.24-28h8.6V31H89.7z [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/_index.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%6
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=Mesh%20%e8%b7%af%e7%94%b1%e8%a7%84%e5%88%99";
 target=_blank><i class="fab fa-github fa-fw"></i> 提交文档问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav 
id=TableOfContents><ul><li><ul><li><a href=#基本思想>基本思想</a></li><li><a 
href=#fallback-处理原则>fallback 处理原则</a></li><li><a 
href=#routechain-的组装模式-目前未实现>RouteChain 的组装模式 
(目前未实现)</a></li></ul></li></ul></nav></div></aside><main class="col-12 col-md-9 
col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class="d-none d-md-block 
d-print-none"><ol class="brea [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav 
id=TableOfContents><ul><li><ul><li><a href=#基本思想>基本思想</a></li><li><a 
href=#fallback-处理原则>fallback 处理原则</a></li><li><a 
href=#routechain-的组装模式-目前未实现>RouteChain 的组装模式 
(目前未实现)</a></li></ul></li></ul></nav></div></aside><main class="col-12 col-md-9 
col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class="d-none d-md-block 
d-print-none"><ol class="brea [...]
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: VirtualService
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
 </span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: demo-route
@@ -78,7 +78,7 @@
 </span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>name</span>: v3
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>labels</span>:
 </span></span><span style=display:flex><span>      <span 
style=color:#268bd2>sigma.ali/mg</span>: v3-host
-</span></span></code></pre></div><p>我们以脚本路由为例,这个脚本路由的匹配条件是遵循一个原则的,就是匹配的范围是从精确到广泛的一个过程,在这个示例来说,就是
 sayHello(string)参数 -> sayHello 方法 -> 接口级路由 
的一个匹配查找过程。</p><p>那么如果我们已经满足某个条件,但是选到的 subset 地址为空,我们将如何进行 fallback 
处理呢?</p><p>以匹配 sayHello(string)参数 条件为例,我们选择到的是 v1 
subset,如果是空,我们可以向上一级是寻找地址,也就是方法级去寻找地址,具体的配置为下</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:fl [...]
+</span></span></code></pre></div><p>我们以脚本路由为例,这个脚本路由的匹配条件是遵循一个原则的,就是匹配的范围是从精确到广泛的一个过程,在这个示例来说,就是
 sayHello(string)参数 -> sayHello 方法 -> 接口级路由 
的一个匹配查找过程。</p><blockquote><p>那么如果我们已经满足某个条件,但是选到的 subset 地址为空,我们将如何进行 fallback 
处理呢?</p></blockquote><p>以匹配 sayHello(string)参数 条件为例,我们选择到的是 v1 
subset,如果是空,我们可以向上一级是寻找地址,也就是方法级去寻找地址。</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><spa [...]
 </span></span><span style=display:flex><span>         <span 
style=color:#268bd2>match</span>: 
 </span></span><span style=display:flex><span>          - <span 
style=color:#268bd2>method</span>:
 </span></span><span style=display:flex><span>             <span 
style=color:#268bd2>name_match</span>: 
@@ -98,7 +98,7 @@
 </span></span><span style=display:flex><span>                <span 
style=color:#268bd2>destination</span>:
 </span></span><span style=display:flex><span>                  <span 
style=color:#268bd2>host</span>: demo
 </span></span><span style=display:flex><span>                  <span 
style=color:#268bd2>subset</span>: v3
-</span></span></code></pre></div><p>此时我们选到的地址是 v2 方法级地址,如果 v2 
还是没有地址,根据规则的定义,我们是可以 fallback 到 v3 接口级。</p><p>假设我们有一个方法匹配时,如果没有地址,需要不进行 
fallback,直接报错,我们可以这样配置</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: service.dubbo.apache.org/v1alpha1
+</span></span></code></pre></div><p>此时我们选到的地址是 v2 方法级地址,如果 v2 
还是没有地址,根据规则的定义,我们是可以 fallback 到 v3 接口级。</p><p>假设我们有一个方法匹配时,如果没有地址,需要不进行 
fallback,直接报错,可以配置以下方式</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: service.dubbo.apache.org/v1alpha1
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: VirtualService
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
 </span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: demo-route
@@ -182,7 +182,7 @@
 </span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>name</span>: v3
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>labels</span>:
 </span></span><span style=display:flex><span>      <span 
style=color:#268bd2>sigma.ali/mg</span>: v3-host
-</span></span></code></pre></div><p>从这个规则我们看出来匹配到 some-method 条件时对应的是 v4 
subset,那么 v4 为空时,因为没有配置 fallback ,此时会直接报错</p><h4 id=fallback-处理原则总结>fallback 
处理原则总结</h4><ul><li>我们应该在 VirtualService route 中配置好 Destination 的 fallback 
处理逻辑</li><li>在 fallback subset 时,如果对应的 subset 也配置有 fallback subset 
时,也应递归处理;fallback subset 之间的关系也应该是从具体到广泛</li><li>我们在编写匹配条件时,应该遵循从 具体条件到广泛条件 
的原则</li></ul><h3 id=routechain-的组装模式-目前未实现>RouteChain 的组装模式 (目前未实现)</h3><p><img 
src=/imgs/user/route-rule3.png alt=route-rule [...]
+</span></span></code></pre></div><p>从这个规则我们看出来匹配到 some-method 条件时对应的是 v4 
subset,那么 v4 为空时,因为没有配置 fallback ,此时会直接报错。</p><blockquote><p>fallback 
处理原则总结</p><ul><li>我们应该在 VirtualService route 中配置好 Destination 的 fallback 
处理逻辑</li><li>在 fallback subset 时,如果对应的 subset 也配置有 fallback subset 
时,也应递归处理;fallback subset 之间的关系也应该是从具体到广泛</li><li>我们在编写匹配条件时,应该遵循从 具体条件到广泛条件 
的原则</li></ul></blockquote><h3 id=routechain-的组装模式-目前未实现>RouteChain 的组装模式 
(目前未实现)</h3><p><img src=/imgs/user/route-rule3.png alt=route [...]
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>GROUP</span>: HSF
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>content</span>:
@@ -203,7 +203,7 @@
 </span></span><span style=display:flex><span>---
 </span></span><span style=display:flex><span>...
 </span></span></code></pre></div><p><code>VirtualService A</code> 与 
<code>DestinationRule A1</code> 、<code>DestinationRule A2</code> 组成一个 Router 
A,<code>VirtualService B</code> 与 <code>DestinationRule B</code> 组成 Router 
B,以此类推,完成整个 router 链的组装。</p><div class=section-index><hr class=panel-line><div 
class=entry><h5><a 
href=/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/dynamic-rule-deployment/>动态路由</a></h5><p>类groovy脚本动态路由。</p></div><div
 class=entry><h5><a href=/zh/do [...]
-<button class="btn btn-primary mb-4 feedback--answer 
feedback--answer-no">No</button><p class="feedback--response 
feedback--response-yes">Glad to hear it! Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to 
hear that. Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback 
[...]
+<button class="btn btn-primary mb-4 feedback--answer 
feedback--answer-no">No</button><p class="feedback--response 
feedback--response-yes">Glad to hear it! Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to 
hear that. Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback 
[...]
 <script src=/js/bootstrap.min.js 
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
 crossorigin=anonymous></script>
 <script 
src=/js/main.min.67b5ab62cb078146d9ab8cea15d59ffc7645b89f33906c50ab421a4d5eca73e9.js
 integrity="sha256-Z7WrYssHgUbZq4zqFdWf/HZFuJ8zkGxQq0IaTV7Kc+k=" 
crossorigin=anonymous></script>
 <script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git 
a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/routing-rule/index.html
 
b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/routing-rule/index.html
index 0a734cacbc..c6dfba4eec 100644
--- 
a/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/routing-rule/index.html
+++ 
b/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/routing-rule/index.html
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta 
name=viewport 
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta 
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX, 
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link 
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png 
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png 
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta 
name=viewport 
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta 
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX, 
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link 
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png 
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png 
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
 <link rel=preload 
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
 as=style><link 
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
 rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js 
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" 
crossorigin=anonymous></script>
 <link rel=stylesheet 
href=https://cdn.jsdelivr.net/npm/@docsearch/css@3></head><body 
class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand 
navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand 
href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg"; 
viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path 
class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 
25.45-22.11V7.25H68.46zm21.24-28h8.6V31H89.7zm0  [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/routing-rule.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=%e8%b7%af%e7%94%b1%e8%a7%84%e5%88%99";
 target=_blank><i class="fab fa-github fa-fw"></i> 提交文档问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav 
id=TableOfContents><ul><li><a href=#条件路由>条件路由</a><ul><li><a 
href=#简介>简介</a></li><li><a href=#规则详解>规则详解</a></li></ul></li><li><a 
href=#标签路由规则>标签路由规则</a><ul><li><a href=#简介-1>简介</a></li><li><a 
href=#规则详解-1>规则详解</a></li></ul></li></ul></nav></div></aside><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class="d-none d-m [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav 
id=TableOfContents><ul><li><a href=#路由规则概述>路由规则概述</a><ul><li><a 
href=#应用粒度>应用粒度</a></li><li><a href=#服务粒度>服务粒度</a></li></ul></li><li><a 
href=#规则详解>规则详解</a><ul><li><a href=#conditions规则体>Conditions规则体</a></li><li><a 
href=#condition示例>Condition示例</a></li></ul></li><li><a 
href=#标签路由规则>标签路由规则</a><ul><li><a href=#规则详解-1>规则详解</a></li><li><a 
href=#provider>P [...]
 </span></span><span style=display:flex><span><span style=color:#586e75># 
app2的消费者只能消费所有端口为20881的服务实例</span>
 </span></span><span style=display:flex><span>---
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>scope</span>: application
@@ -15,7 +15,7 @@
 </span></span><span style=display:flex><span>  - application=app1 =&gt; 
address=*:20880
 </span></span><span style=display:flex><span>  - application=app2 =&gt; 
address=*:20881
 </span></span><span style=display:flex><span>...
-</span></span></code></pre></div></li><li><p>服务粒度</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#586e75># DemoService的sayHello方法只能消费所有端口为20880的服务实例</span>
+</span></span></code></pre></div><h3 id=服务粒度>服务粒度</h3><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#586e75># DemoService的sayHello方法只能消费所有端口为20880的服务实例</span>
 </span></span><span style=display:flex><span><span style=color:#586e75># 
DemoService的sayHi方法只能消费所有端口为20881的服务实例</span>
 </span></span><span style=display:flex><span>---
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>scope</span>: service
@@ -27,19 +27,18 @@
 </span></span><span style=display:flex><span>  - method=sayHello =&gt; 
address=*:20880
 </span></span><span style=display:flex><span>  - method=sayHi =&gt; 
address=*:20881
 </span></span><span style=display:flex><span>...
-</span></span></code></pre></div></li></ul><h3 id=规则详解>规则详解</h3><h4 
id=各字段含义>各字段含义</h4><ul><li><code>scope</code>表示路由规则的作用粒度,scope的取值会决定key的取值。<strong>必填</strong>。<ul><li>service
 服务粒度</li><li>application 
应用粒度</li></ul></li><li><code>Key</code>明确规则体作用在哪个服务或应用。<strong>必填</strong>。<ul><li>scope=service时,key取值为[{group}:]{service}[:{version}]的组合</li><li>scope=application时,key取值为application名称</li></ul></li><li><code>enabled=true</code>
 当前路由规则是否生效,可不填,缺省生效。</li><li><code>force=false</code> 当路由结 [...]
-</code></pre><ol><li><strong>格式</strong></li></ol><ul><li><code>=></code> 
之前的为消费者匹配条件,所有参数和消费者的 URL 
进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。</li><li><code>=></code> 
之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 
进行对比,消费者最终只拿到过滤后的地址列表。</li><li>如果匹配条件为空,表示对所有消费方应用,如:<code>=> host != 
10.20.153.11</code></li><li>如果过滤条件为空,表示禁止访问,如:<code>host = 10.20.153.10 
=></code></li></ul><ol 
start=2><li><strong>表达式</strong></li></ol><p>参数支持:</p><ul><li>服务调用信息,如:method, 
argument 等,暂不支持参数路由</li><li>URL 本身的字段,如:protocol, host, port  [...]
-</span></span></code></pre></div><ul><li>白名单:</li></ul><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>register.ip != 10.20.153.10,10.20.153.11 =&gt;
-</span></span></code></pre></div><div class="alert alert-warning" 
role=alert><h4 
class=alert-heading>注意</h4>一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了</div><ul><li>黑名单:</li></ul><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>register.ip = 10.20.153.10,10.20.153.11 =&gt;
-</span></span></code></pre></div><ul><li>服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉:</li></ul><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>=&gt; host = 172.22.3.1*,172.22.3.2*
-</span></span></code></pre></div><ul><li>为重要应用提供额外的机器:</li></ul><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>application != kylin =&gt; host != 
172.22.3.95,172.22.3.96
-</span></span></code></pre></div><ul><li>读写分离:</li></ul><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>method = find*,list*,get*,is* =&gt; host = 
172.22.3.94,172.22.3.95,172.22.3.96
+</span></span></code></pre></div><blockquote><p>后续我们计划在 2.6.x 
版本的基础上继续增强脚本路由功能。</p></blockquote><h2 
id=规则详解>规则详解</h2><ul><li><code>scope</code>表示路由规则的作用粒度,scope的取值会决定key的取值。<strong>必填</strong>。<ul><li>service
 服务粒度</li><li>application 
应用粒度</li></ul></li><li><code>Key</code>明确规则体作用在哪个服务或应用。<strong>必填</strong>。<ul><li>scope=service时,key取值为[{group}:]{service}[:{version}]的组合</li><li>scope=application时,key取值为application名称</li></ul></li><li><code>enabled=true</code>
 当前路由规则是否生效,可不填,缺省生效。</li><li [...]
+</span></span></code></pre></div><p>白名单</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>register.ip != 10.20.153.10,10.20.153.11 =&gt;
+</span></span></code></pre></div><blockquote><p>一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了</p></blockquote><p>黑名单</p><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>register.ip = 10.20.153.10,10.20.153.11 =&gt;
+</span></span></code></pre></div><p>服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>=&gt; host = 172.22.3.1*,172.22.3.2*
+</span></span></code></pre></div><p>为重要应用提供额外的机器</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>application != kylin =&gt; host != 
172.22.3.95,172.22.3.96
+</span></span></code></pre></div><p>读写分离</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>method = find*,list*,get*,is* =&gt; host = 
172.22.3.94,172.22.3.95,172.22.3.96
 </span></span><span style=display:flex><span>method != find*,list*,get*,is* 
=&gt; host = 172.22.3.97,172.22.3.98
-</span></span></code></pre></div><ul><li>前后台分离:</li></ul><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>application = bops =&gt; host = 
172.22.3.91,172.22.3.92,172.22.3.93
+</span></span></code></pre></div><p>前后台分离</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>application = bops =&gt; host = 
172.22.3.91,172.22.3.92,172.22.3.93
 </span></span><span style=display:flex><span>application != bops =&gt; host = 
172.22.3.94,172.22.3.95,172.22.3.96
-</span></span></code></pre></div><ul><li>隔离不同机房网段:</li></ul><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span>host 
!= 172.22.3.* =&gt; host != 172.22.3.*
-</span></span></code></pre></div><ul><li>提供者与消费者部署在同集群内,本机只访问本机的服务:</li></ul><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>=&gt; host = $host
-</span></span></code></pre></div><h2 id=标签路由规则>标签路由规则</h2><h3 
id=简介-1>简介</h3><p>标签路由通过将某一个或多个服务的提供者划分到同一个分组,约束流量只在指定分组中流转,从而实现流量隔离的目的,可以作为蓝绿发布、灰度发布等场景的能力基础。</p><h4
 
id=provider>Provider</h4><p>标签主要是指对Provider端应用实例的分组,目前有两种方式可以完成实例分组,分别是<code>动态规则打标</code>和<code>静态规则打标</code>,其中动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。</p><ul><li><p>动态规则打标,可随时在<strong>服务治理控制台</strong>下发标签归组规则</p><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size: [...]
+</span></span></code></pre></div><p>隔离不同机房网段</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span>host 
!= 172.22.3.* =&gt; host != 172.22.3.*
+</span></span></code></pre></div><p>提供者与消费者部署在同集群内,本机只访问本机的服务</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>=&gt; host = $host
+</span></span></code></pre></div><h2 
id=标签路由规则>标签路由规则</h2><p>标签路由通过将某一个或多个服务的提供者划分到同一个分组,约束流量只在指定分组中流转,从而实现流量隔离的目的,可以作为蓝绿发布、灰度发布等场景的能力基础。</p><h3
 
id=规则详解-1>规则详解</h3><p><strong>格式</strong></p><ul><li><code>Key</code>明确规则体作用到哪个应用。<strong>必填</strong>。</li><li><code>enabled=true</code>
 当前路由规则是否生效,可不填,缺省生效。</li><li><code>force=false</code> 
当路由结果为空时,是否强制执行,如果不强制执行,路由结果为空的路由规则将自动失效,可不填,缺省为 
<code>false</code>。</li><li><code>runtime=false</code> 
是否在每次调用时执行路由规则,否则只在提供者地址列表变更时预先执行并缓存结果,调用时直接从缓存中获取路由 [...]
 </span></span><span style=display:flex><span><span style=color:#586e75># 
tag1包含一个实例 127.0.0.1:20880</span>
 </span></span><span style=display:flex><span><span style=color:#586e75># 
tag2包含一个实例 127.0.0.1:20881</span>
 </span></span><span style=display:flex><span>---
@@ -52,13 +51,13 @@
 </span></span><span style=display:flex><span>      <span 
style=color:#268bd2>addresses</span>: [<span 
style=color:#2aa198>&#34;127.0.0.1:20880&#34;</span>]
 </span></span><span style=display:flex><span>    - <span 
style=color:#268bd2>name</span>: tag2
 </span></span><span style=display:flex><span>      <span 
style=color:#268bd2>addresses</span>: [<span 
style=color:#2aa198>&#34;127.0.0.1:20881&#34;</span>]
-</span></span><span style=display:flex><span> ...
-</span></span></code></pre></div></li><li><p>静态打标</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-xml data-lang=xml><span style=display:flex><span><span 
style=color:#268bd2>&lt;dubbo:provider</span> tag=<span 
style=color:#2aa198>&#34;tag1&#34;</span><span style=color:#268bd2>/&gt;</span>
-</span></span></code></pre></div><p>or</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-xml data-lang=xml><span style=display:flex><span><span 
style=color:#268bd2>&lt;dubbo:service</span> tag=<span 
style=color:#2aa198>&#34;tag1&#34;</span><span style=color:#268bd2>/&gt;</span>
-</span></span></code></pre></div><p>or</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-properties data-lang=properties><span 
style=display:flex><span>java <span style=color:#2aa198>-jar xxx-provider.jar 
-Ddubbo.provider.tag={the tag you want, may come from OS ENV}</span>
-</span></span></code></pre></div></li></ul><h4 id=consumer>Consumer</h4><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-java data-lang=java><span 
style=display:flex><span>RpcContext<span 
style=color:#719e07>.</span>getContext<span 
style=color:#719e07>().</span>setAttachment<span 
style=color:#719e07>(</span>Constants<span 
style=color:#719e07>.</span>TAG_KEY<span style=color:#719e07>,</span><spa [...]
-</span></span></code></pre></div><p>请求标签的作用域为每一次 invocation,使用 attachment 
来传递请求标签,注意保存在 attachment 
中的值将会在一次完整的远程调用中持续传递,得益于这样的特性,我们只需要在起始调用时,通过一行代码的设置,达到标签的持续传递。</p><blockquote><p>目前仅仅支持
 hardcoding 的方式设置 dubboTag。注意到 RpcContext 是线程绑定的,优雅的使用 TagRouter 特性,建议通过 
servlet 过滤器(在 web 环境下),或者定制的 SPI 过滤器设置 dubboTag。</p></blockquote><h3 
id=规则详解-1>规则详解</h3><h4 
id=格式>格式</h4><ul><li><code>Key</code>明确规则体作用到哪个应用。<strong>必填</strong>。</li><li><code>enabled=true</code>
 当前路由规则是否生效,可不填,缺省生效。</li><li><code>f [...]
-<button class="btn btn-primary mb-4 feedback--answer 
feedback--answer-no">No</button><p class="feedback--response 
feedback--response-yes">Glad to hear it! Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to 
hear that. Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback 
[...]
+</span></span><span style=display:flex><span>...
+</span></span></code></pre></div><p><strong>静态打标</strong></p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-xml data-lang=xml><span style=display:flex><span><span 
style=color:#268bd2>&lt;dubbo:provider</span> tag=<span 
style=color:#2aa198>&#34;tag1&#34;</span><span style=color:#268bd2>/&gt;</span>
+</span></span></code></pre></div><p><strong>or</strong></p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-xml data-lang=xml><span style=display:flex><span><span 
style=color:#268bd2>&lt;dubbo:service</span> tag=<span 
style=color:#2aa198>&#34;tag1&#34;</span><span style=color:#268bd2>/&gt;</span>
+</span></span></code></pre></div><p><strong>or</strong></p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-properties data-lang=properties><span 
style=display:flex><span>java <span style=color:#2aa198>-jar xxx-provider.jar 
-Ddubbo.provider.tag={the tag you want, may come from OS ENV}</span>
+</span></span></code></pre></div><h3 id=consumer>Consumer</h3><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-java data-lang=java><span 
style=display:flex><span>RpcContext<span 
style=color:#719e07>.</span>getContext<span 
style=color:#719e07>().</span>setAttachment<span 
style=color:#719e07>(</span>Constants<span 
style=color:#719e07>.</span>TAG_KEY<span style=color:#719e07>,</span><span 
style=co [...]
+</span></span></code></pre></div><blockquote><p>请求标签的作用域为每一次 invocation,使用 
attachment 来传递请求标签,注意保存在 attachment 
中的值将会在一次完整的远程调用中持续传递,得益于这样的特性,我们只需要在起始调用时,通过一行代码的设置,达到标签的持续传递。</p></blockquote><blockquote><p>目前仅仅支持
 hardcoding 的方式设置 dubboTag。注意到 RpcContext 是线程绑定的,优雅的使用 TagRouter 特性,建议通过 
servlet 过滤器(在 web 环境下),或者定制的 SPI 过滤器设置 
dubboTag。</p></blockquote><blockquote><p>自定义路由参考<a 
href=/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/>路由扩展</a></p></blockquote><style>.feedback--answer{
 [...]
+<button class="btn btn-primary mb-4 feedback--answer 
feedback--answer-no">No</button><p class="feedback--response 
feedback--response-yes">Glad to hear it! Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to 
hear that. Please <a 
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can 
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback 
[...]
 <script src=/js/bootstrap.min.js 
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
 crossorigin=anonymous></script>
 <script 
src=/js/main.min.67b5ab62cb078146d9ab8cea15d59ffc7645b89f33906c50ab421a4d5eca73e9.js
 integrity="sha256-Z7WrYssHgUbZq4zqFdWf/HZFuJ8zkGxQq0IaTV7Kc+k=" 
crossorigin=anonymous></script>
 <script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index 93d17672b3..c79ae1eba2 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/faq/0/</loc><lastmod>2022-08-01T10:49:31+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" 
href="https://cn.dubbo.apache.org/en/docs3-v2/java-sdk/faq/0/"/><xhtml:link 
rel="alternate" hreflang="zh" href="https://c [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/faq/0/</loc><lastmod>2022-08-01T10:49:31+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" 
href="https://cn.dubbo.apache.org/en/docs3-v2/java-sdk/faq/0/"/><xhtml:link 
rel="alternate" hreflang="zh" href="https://c [...]
\ No newline at end of file

Reply via email to