You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by gi...@apache.org on 2026/08/11 14:30:26 UTC

(dubbo-website) branch asf-site-v2 updated: deploy: 1eaabca46edc7128ed56dc16fff3a81eaae3969e

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

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


The following commit(s) were added to refs/heads/asf-site-v2 by this push:
     new 2dc3562a091 deploy: 1eaabca46edc7128ed56dc16fff3a81eaae3969e
2dc3562a091 is described below

commit 2dc3562a091e29760b668c9bee06abc107e03ce8
Author: Alanxtl <Al...@users.noreply.github.com>
AuthorDate: Tue Aug 11 14:30:21 2026 +0000

    deploy: 1eaabca46edc7128ed56dc16fff3a81eaae3969e
---
 en/index.xml                                       | 16 +------
 .../mannual/golang-sdk/tutorial/traffic/index.xml  | 16 +------
 .../tutorial/traffic/tag_router/index.html         | 50 +++++++++++++++++-----
 en/sitemap.xml                                     |  2 +-
 sitemap.xml                                        |  2 +-
 zh-cn/index.xml                                    |  8 ++--
 .../mannual/golang-sdk/tutorial/traffic/index.xml  |  8 ++--
 .../tutorial/traffic/tag_router/index.html         | 44 ++++++++++++++++---
 zh-cn/sitemap.xml                                  |  2 +-
 9 files changed, 90 insertions(+), 58 deletions(-)

diff --git a/en/index.xml b/en/index.xml
index 95fe9382388..ec72b243386 100644
--- a/en/index.xml
+++ b/en/index.xml
@@ -1663,21 +1663,7 @@ Therefore, it should be used sparingly in production environments.&lt;/p&gt;</de
 &lt;p&gt;Follow this instruction
 to &lt;a href="https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/"&gt;install and start Nacos server&lt;/a&gt;.&lt;/p&gt;
 &lt;h3 id="tag-router"&gt;Tag router&lt;/h3&gt;
-&lt;p&gt;The tag router enables traffic control based on tags. The following is the example code.&lt;/p&gt;
-&lt;p&gt;Server side:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ins, err &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; dubbo.&lt;span style="color:#268bd2"&gt;NewInstance&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithName&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;tag-server&amp;#34;&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-Tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithRegistry&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithNacos&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithAddress&lt;/span&gt;(RegistryAddress),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithProtocol&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithTriple&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20000&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Parameters:&lt;/p&gt;</description></item><item><title>Traditional deployment architecture based on Zookeeper and Nacos for deploying Dubbo applications in a virtual machine environment</title><link>https://dubbo.apache.org/en/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/mannual/java-sdk/tasks/deploy/deploy-on-v [...]
+&lt;p&gt;The tag router enables traffic control based on tags. It is commonly used for canary releases (tag the new-version instances so that only requests carrying the tag are routed to them) and environment isolation (instances in different lanes are distinguished by tags to keep traffic from crossing environments). The following is the example code.&lt;/p&gt;</description></item><item><title>Traditional deployment architecture based on Zookeeper and Nacos for deploying Dubbo applicati [...]
 &lt;img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes.png" style="max-width:650px;height:auto;" /&gt;
 &lt;h2 id="install-nacos"&gt;Install Nacos&lt;/h2&gt;
 &lt;p&gt;Please refer to the following documentation for how to &lt;code&gt;install Nacos&lt;/code&gt; locally.&lt;/p&gt;
diff --git a/en/overview/mannual/golang-sdk/tutorial/traffic/index.xml b/en/overview/mannual/golang-sdk/tutorial/traffic/index.xml
index c70a1696b45..26e7b377cc5 100644
--- a/en/overview/mannual/golang-sdk/tutorial/traffic/index.xml
+++ b/en/overview/mannual/golang-sdk/tutorial/traffic/index.xml
@@ -47,21 +47,7 @@ Therefore, it should be used sparingly in production environments.&lt;/p&gt;</de
 &lt;p&gt;Follow this instruction
 to &lt;a href="https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/"&gt;install and start Nacos server&lt;/a&gt;.&lt;/p&gt;
 &lt;h3 id="tag-router"&gt;Tag router&lt;/h3&gt;
-&lt;p&gt;The tag router enables traffic control based on tags. The following is the example code.&lt;/p&gt;
-&lt;p&gt;Server side:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ins, err &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; dubbo.&lt;span style="color:#268bd2"&gt;NewInstance&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithName&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;tag-server&amp;#34;&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-Tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithRegistry&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithNacos&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithAddress&lt;/span&gt;(RegistryAddress),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithProtocol&lt;/span&gt;(
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithTriple&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20000&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Parameters:&lt;/p&gt;</description></item><item><title>Sentinel Rate Limiting and Downgrade</title><link>https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/sentinel/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/sentinel/</guid><description>&lt;p&gt;Dubbo-go provides a built-in rate limiting component, allow [...]
+&lt;p&gt;The tag router enables traffic control based on tags. It is commonly used for canary releases (tag the new-version instances so that only requests carrying the tag are routed to them) and environment isolation (instances in different lanes are distinguished by tags to keep traffic from crossing environments). The following is the example code.&lt;/p&gt;</description></item><item><title>Sentinel Rate Limiting and Downgrade</title><link>https://dubbo.apache.org/en/overview/mannual [...]
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server.&lt;span style="color:#268bd2"&gt;WithTpsLimiter&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;method-service&amp;#34;&lt;/span&gt;) &lt;span style="color:#586e75"&gt;// Currently supports implementations like method-service, polaris, etc.& [...]
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server.&lt;span style="color:#268bd2"&gt;WithTpsLimiterXxx&lt;/span&gt;() &lt;span style="color:#586e75"&gt;// Set rate limiting related thresholds, please fill in according to the specific method&lt;/span&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#719e07"&gt;//tps.limit.strategy: &amp;#34;slidingWindow&amp;#34;&lt;/span&gt;
diff --git a/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html b/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
index 29b615b586c..d1a8665af43 100644
--- a/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
+++ b/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><link rel=canonical href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_ [...]
+<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><link rel=canonical href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_ [...]
 <a class=dropdown-item href=/en/overview/notices/>Security Notices</a>
 <a class=dropdown-item href=/en/contact/>Contributor's Guide</a></div></li><li class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link href=/en/blog/><span>Blog</span></a></li><li class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link href=/en/download/><span>DOWNLOAD</span></a></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>ECOSYSTEM</ [...]
 <a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>Visualizable Console</a>
@@ -694,27 +694,57 @@
 <label for=m-enoverviewnoticesregistry-check><a href=/en/overview/notices/registry/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewnoticesregistry><span>Registry Center Security</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewnoticesadmin-li><input type=checkbox id=m-enoverviewnoticesadmin-check>
 <label for=m-enoverviewnoticesadmin-check><a href=/en/overview/notices/admin/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewnoticesadmin><span>Dubbo Admin Security</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewnoticeslog4j-li><input type=checkbox id=m-enoverviewnoticeslog4j-check>
 <label for=m-enoverviewnoticeslog4j-check><a href=/en/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewnoticeslog4j><span>Log4j Vulnerability Impact</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/en/overview/>Documentation</a></li><li class=breadcrumb-item><a  [...]
-to <a href=https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/>install and start Nacos server</a>.</p><h3 id=tag-router>Tag router</h3><p>The tag router enables traffic control based on tags. The following is the example code.</p><p>Server side:</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-go data-lang=go><span style=display:flex><span>ins, err <span style=c [...]
+to <a href=https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/>install and start Nacos server</a>.</p><h3 id=tag-router>Tag router</h3><p>The tag router enables traffic control based on tags. It is commonly used for canary releases (tag the new-version instances so that only requests carrying the tag are routed to them) and environment isolation (instances in different lanes are distinguished by tags to keep traffic from crossing environments). The following [...]
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithName</span>(<span style=color:#2aa198>&#34;tag-server&#34;</span>),
-</span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithTag</span>(<span style=color:#2aa198>&#34;test-Tag&#34;</span>), <span style=color:#586e75>// set application&#39;s tag</span>
+</span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithTag</span>(<span style=color:#2aa198>&#34;test-tag&#34;</span>), <span style=color:#586e75>// set application&#39;s tag</span>
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithRegistry</span>(
 </span></span><span style=display:flex><span>			registry.<span style=color:#268bd2>WithNacos</span>(),
 </span></span><span style=display:flex><span>			registry.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
 </span></span><span style=display:flex><span>		),
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithProtocol</span>(
 </span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithTriple</span>(),
-</span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20000</span>),
+</span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20001</span>),
 </span></span><span style=display:flex><span>		),
 </span></span><span style=display:flex><span>	)
-</span></span></code></pre></div><p>Parameters:</p><ul><li>dubbo.WithTag: Sets tag that the instance carries, which used to mark the instance (e.g. Canary Env).</li></ul><p>Client side:</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-go data-lang=go><span style=display:flex><span>atta <span style=color:#719e07>:=</span> <span style=color:#268bd2>map</span>[<span style=color:#dc322f>string</ [...]
+</span></span></code></pre></div><p>Parameters:</p><ul><li>dubbo.WithTag: Sets tag that the instance carries, which used to mark the instance (e.g. Canary Env). The tag is written into the instance metadata (<code>dubbo.tag</code>) in the registry. Tag matching is case-sensitive, so it must exactly match the tag carried by the client.</li></ul><p>Client side:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><cod [...]
 </span></span><span style=display:flex><span>	constant.Tagkey:      <span style=color:#2aa198>&#34;test-tag&#34;</span>,
-</span></span><span style=display:flex><span>	constant.ForceUseTag: <span style=color:#2aa198>&#34;true&#34;</span>, <span style=color:#586e75>// 使用string类型</span>
+</span></span><span style=display:flex><span>	constant.ForceUseTag: <span style=color:#2aa198>&#34;true&#34;</span>, <span style=color:#586e75>// use string type</span>
 </span></span><span style=display:flex><span>}
 </span></span><span style=display:flex><span>ctx <span style=color:#719e07>:=</span> context.<span style=color:#268bd2>WithValue</span>(context.<span style=color:#268bd2>Background</span>(), constant.AttachmentKey, atta)
 </span></span><span style=display:flex><span>resp, err <span style=color:#719e07>:=</span> svc.<span style=color:#268bd2>Greet</span>(ctx, <span style=color:#719e07>&amp;</span>greet.GreetRequest{Name: name})
-</span></span></code></pre></div><p>Parameters:</p><ul><li><code>constant.TagKey</code>: Sets tag that requests carry.</li><li><code>constant.ForceUseTag</code>: Sets whether to force tag matching.</li></ul><blockquote><p>Untagged traffic is routed only to untagged servers. Tagged traffic can be routed to servers with matching tags or
-to untagged servers, depending on the force configuration.</p></blockquote><p>For the complete example, please
-see: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/tag>Full Example Code</a>.</p><h3 id=static-configuration-api>Static configuration API</h3><p>Besides the usage above, tag router also supports injecting routing rules statically in code. Static configuration does not require a config center, and it can work with direct URLs or with instances discovered from a registry.</p><p>The following example shows an application-scope static tag router:</p><div class=highlight [...]
+</span></span></code></pre></div><p>Parameters:</p><ul><li><code>constant.Tagkey</code>: Sets tag that requests carry.</li><li><code>constant.ForceUseTag</code>: Sets whether to force tag matching. With <code>"true"</code>, the call fails when no instance matches the tag; with <code>"false"</code>, it is allowed to fall back to untagged instances.</li></ul><blockquote><p>Untagged traffic is routed only to untagged servers. Tagged traffic can be routed to servers with matching tags or
+to untagged servers, depending on the force configuration.</p></blockquote><p>Run the sample:</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-shell data-lang=shell><span style=display:flex><span>$ go run ./go-server/cmd/server.go           <span style=color:#586e75># untagged server, port 20000</span>
+</span></span><span style=display:flex><span>$ go run ./go-tag-server/cmd/server_tag.go   <span style=color:#586e75># server tagged with test-tag, port 20001</span>
+</span></span><span style=display:flex><span>$ go run ./go-client/cmd/client.go
+</span></span></code></pre></div><p>The client makes four calls in turn, and the expected results are:</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>✔ invoke successfully : receive: tag with force, response from: server-with-tag
+</span></span><span style=display:flex><span>❌ invoke failed: Failed to invoke the method Greet.
+</span></span><span style=display:flex><span>✔ invoke successfully : receive: tag with no-force, response from: server-without-tag
+</span></span><span style=display:flex><span>✔ invoke successfully : receive: non-tag, response from: server-without-tag
+</span></span></code></pre></div><p>The four calls correspond to: tag matched successfully; tag not found with force set to true (no fallback, the call fails); tag not found but force set to false (falls back to the untagged instance); untagged traffic (routed only to the untagged instance).</p><p>For the complete example, please
+see: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/tag>Full Example Code</a>.</p><h3 id=dynamic-rule-configuration>Dynamic rule configuration</h3><p>Besides request-level tags, tag rules can also be delivered dynamically from a config center, leaving the &ldquo;tag → instance group&rdquo; mapping to the rule.</p><p>Dynamic tag rules require a config center. The client must connect to Nacos via <code>dubbo.WithConfigCenter</code>, otherwise the log prints <code>Confi [...]
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithName</span>(<span style=color:#2aa198>&#34;tag-client&#34;</span>),
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithRegistry</span>(
+</span></span><span style=display:flex><span>		registry.<span style=color:#268bd2>WithNacos</span>(),
+</span></span><span style=display:flex><span>		registry.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
+</span></span><span style=display:flex><span>	),
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithConfigCenter</span>(
+</span></span><span style=display:flex><span>		config_center.<span style=color:#268bd2>WithNacos</span>(),
+</span></span><span style=display:flex><span>		config_center.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
+</span></span><span style=display:flex><span>	),
+</span></span><span style=display:flex><span>)
+</span></span></code></pre></div><p>Create a config in Nacos with <code>Data ID</code> set to <code>{application_name}.tag-router</code> (the application name here is the <strong>server-side</strong> application name, e.g. <code>tag-server.tag-router</code>), Group set to the default <code>DEFAULT_GROUP</code>, and format set to <code>YAML</code>.</p><p>Example rule — route requests carrying the <code>gray</code> tag to instances with <code>dubbo.tag=test-tag</code>:</p><div class=highli [...]
+</span></span><span style=display:flex><span><span style=color:#268bd2>scope</span>: application
+</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: tag-server
+</span></span><span style=display:flex><span><span style=color:#268bd2>force</span>: <span style=color:#cb4b16>false</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>priority</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>tags</span>:
+</span></span><span style=display:flex><span>  - <span style=color:#268bd2>name</span>: gray
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>match</span>:
+</span></span><span style=display:flex><span>      - <span style=color:#268bd2>key</span>: dubbo.tag
+</span></span><span style=display:flex><span>        <span style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span>          <span style=color:#268bd2>exact</span>: test-tag
+</span></span></code></pre></div><p>Key fields:</p><ul><li><code>tags[].name</code>: the tag name, corresponding to the tag value carried in the request attachment.</li><li><code>tags[].match</code>: matches the instance group by instance URL parameters; <code>value</code> supports <code>exact</code>, <code>prefix</code>, <code>regex</code>, etc.</li><li><code>tags[].addresses</code>: selects the instance group directly by <code>ip:port</code>; use either this or <code>match</code>.</li> [...]
 </span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithName</span>(clientApplication),
 </span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithRouter</span>(
 </span></span><span style=display:flex><span>		router.<span style=color:#268bd2>WithScope</span>(<span style=color:#2aa198>&#34;application&#34;</span>),
@@ -734,7 +764,7 @@ see: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/tag>Ful
 </span></span><span style=display:flex><span>})
 </span></span></code></pre></div><p>Parameters:</p><ul><li><code>router.WithScope("application")</code>: applies the rule at application scope.</li><li><code>router.WithKey(clientApplication)</code>: binds the rule to the consumer application.</li><li><code>router.WithTags(...)</code>: declares the static mapping from tag to address list.</li><li><code>router.WithForce(...)</code>: controls whether fallback is allowed when no tagged provider matches.</li></ul><p>The static sample in <cod [...]
 see: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/static_config/tag>Full Example Code</a>.</p><h3 id=priority-and-merge-semantics>Priority and merge semantics</h3><ul><li>Dynamically delivered routing rules override static configuration.</li><li>When <code>dubbo.WithRouter(...)</code> is called multiple times, append semantics apply and multiple static router entries are appended to the instance configuration.</li><li>When <code>router.WithTags(...)</code> is set m [...]
-<button class="btn btn-primary mb-4 feedback--no">No</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable [...]
+<button class="btn btn-primary mb-4 feedback--no">No</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable [...]
 <button class="contact-btn qr-container" onmouseover='showQRCode("dingding-qr")' onmouseout='hideQRCode("dingding-qr")'>DINGTALK CHANNEL<div class=qr-code id=dingding-qr style=display:none><img src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div class=footer-container-right><ul><li>DOCUMENTATION</li><li><a href=/en/overview/>Overview</a></li><li><a href=/en/overview/quickstart/>Quick Start</a></li><li><a href=/en/contact/contributor/software-donation-guide_dev/>Developer guide</a></li></ul><ul><li>RESOURCES</li><li><a href=/en/contact/>Community</a></li></ul></div></div><div style="width:85.125rem;height:0;border:1px solid #ddd [...]
 project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States
diff --git a/en/sitemap.xml b/en/sitemap.xml
index e1f440e9414..468f06dc2a1 100644
--- a/en/sitemap.xml
+++ b/en/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://dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="zh-cn" href="https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5 [...]
\ 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://dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="zh-cn" href="https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5 [...]
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 1d642ce3edc..dadf62052c3 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://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-11T21:27:31+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-11T21:27:31+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://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-11T21:28:00+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-11T21:28:00+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index 16d8645e103..f3e9dafdc82 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -6301,23 +6301,23 @@ dubbo-go 仓库 &lt;code&gt;tools/protoc-gen-go-triple&lt;/code&gt; 目录下内
 &lt;h4 id="启动nacos配置中心"&gt;启动Nacos配置中心&lt;/h4&gt;
 &lt;p&gt;参考这个教程来&lt;a href="https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/"&gt;启动Nacos&lt;/a&gt;。&lt;/p&gt;
 &lt;h3 id="tag-router-介绍"&gt;Tag router 介绍&lt;/h3&gt;
-&lt;p&gt;Tag router可以通过标签对流量进行管控,以下为示例代码。&lt;/p&gt;
+&lt;p&gt;Tag router可以通过标签对流量进行管控,常用于灰度发布(新版本实例打上灰度标签,只有携带该标签的请求会路由过去)、环境隔离(不同泳道的实例用标签区分,避免流量串环境)等场景。以下为示例代码。&lt;/p&gt;
 &lt;p&gt;服务端部分:&lt;/p&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ins, err &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; dubbo.&lt;span style="color:#268bd2"&gt;NewInstance&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithName&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;tag-server&amp;#34;&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-Tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithRegistry&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithNacos&lt;/span&gt;(),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithAddress&lt;/span&gt;(RegistryAddress),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithProtocol&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithTriple&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20000&lt;/span&gt;),
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20001&lt;/span&gt;),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	)
 &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参数:&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。&lt;/li&gt;
+&lt;li&gt;dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。标签会写入注册中心的实例元数据(&lt;code&gt;dubbo.tag&lt;/code&gt;)。标签匹配区分大小写,需与客户端携带的标签写法完全一致。&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;客户端部分:&lt;/p&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;atta &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; &lt;span style="color:#268bd2"&gt;map&lt;/span&gt;[&lt;span style="color:#dc322f"&gt;string&lt;/span&gt;]&lt;span style="color:#dc322f"&gt;string&lt;/span&gt;{
diff --git a/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/index.xml b/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/index.xml
index 673f2e13a21..92ce964b109 100644
--- a/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/index.xml
+++ b/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/index.xml
@@ -13,23 +13,23 @@
 &lt;h4 id="启动nacos配置中心"&gt;启动Nacos配置中心&lt;/h4&gt;
 &lt;p&gt;参考这个教程来&lt;a href="https://dubbo-next.staged.apache.org/zh-cn/overview/reference/integrations/nacos/"&gt;启动Nacos&lt;/a&gt;。&lt;/p&gt;
 &lt;h3 id="tag-router-介绍"&gt;Tag router 介绍&lt;/h3&gt;
-&lt;p&gt;Tag router可以通过标签对流量进行管控,以下为示例代码。&lt;/p&gt;
+&lt;p&gt;Tag router可以通过标签对流量进行管控,常用于灰度发布(新版本实例打上灰度标签,只有携带该标签的请求会路由过去)、环境隔离(不同泳道的实例用标签区分,避免流量串环境)等场景。以下为示例代码。&lt;/p&gt;
 &lt;p&gt;服务端部分:&lt;/p&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ins, err &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; dubbo.&lt;span style="color:#268bd2"&gt;NewInstance&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithName&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;tag-server&amp;#34;&lt;/span&gt;),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-Tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithTag&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;test-tag&amp;#34;&lt;/span&gt;), &lt;span style="color:#586e75"&gt;// set application&amp;#39;s tag&lt;/span&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithRegistry&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithNacos&lt;/span&gt;(),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			registry.&lt;span style="color:#268bd2"&gt;WithAddress&lt;/span&gt;(RegistryAddress),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		dubbo.&lt;span style="color:#268bd2"&gt;WithProtocol&lt;/span&gt;(
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithTriple&lt;/span&gt;(),
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20000&lt;/span&gt;),
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			protocol.&lt;span style="color:#268bd2"&gt;WithPort&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;20001&lt;/span&gt;),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		),
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	)
 &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参数:&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。&lt;/li&gt;
+&lt;li&gt;dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。标签会写入注册中心的实例元数据(&lt;code&gt;dubbo.tag&lt;/code&gt;)。标签匹配区分大小写,需与客户端携带的标签写法完全一致。&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;客户端部分:&lt;/p&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;atta &lt;span style="color:#719e07"&gt;:=&lt;/span&gt; &lt;span style="color:#268bd2"&gt;map&lt;/span&gt;[&lt;span style="color:#dc322f"&gt;string&lt;/span&gt;]&lt;span style="color:#dc322f"&gt;string&lt;/span&gt;{
diff --git a/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html b/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
index 65387692eaa..b78170c87db 100644
--- a/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
+++ b/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_ [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/traffic/tag_router/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_ [...]
 <a class=dropdown-item href=/zh-cn/overview/notices/>安全公告</a>
 <a class=dropdown-item href=/zh-cn/contact/>贡献者指南</a></div></li><li class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/download/><span>下载</span></a></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>生态</a><div class="dropdo [...]
 <a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -688,25 +688,55 @@
 <label for=m-zh-cnoverviewnoticesprotocol-check><a href=/zh-cn/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewnoticesprotocol><span>RPC 协议安全</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticesregistry-li><input type=checkbox id=m-zh-cnoverviewnoticesregistry-check>
 <label for=m-zh-cnoverviewnoticesregistry-check><a href=/zh-cn/overview/notices/registry/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewnoticesregistry><span>注册中心安全</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticesadmin-li><input type=checkbox id=m-zh-cnoverviewnoticesadmin-check>
 <label for=m-zh-cnoverviewnoticesadmin-check><a href=/zh-cn/overview/notices/admin/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewnoticesadmin><span>Dubbo Admin 安全</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticeslog4j-li><input type=checkbox id=m-zh-cnoverviewnoticeslog4j-check>
-<label for=m-zh-cnoverviewnoticeslog4j-check><a href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove [...]
+<label for=m-zh-cnoverviewnoticeslog4j-check><a href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove [...]
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithName</span>(<span style=color:#2aa198>&#34;tag-server&#34;</span>),
-</span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithTag</span>(<span style=color:#2aa198>&#34;test-Tag&#34;</span>), <span style=color:#586e75>// set application&#39;s tag</span>
+</span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithTag</span>(<span style=color:#2aa198>&#34;test-tag&#34;</span>), <span style=color:#586e75>// set application&#39;s tag</span>
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithRegistry</span>(
 </span></span><span style=display:flex><span>			registry.<span style=color:#268bd2>WithNacos</span>(),
 </span></span><span style=display:flex><span>			registry.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
 </span></span><span style=display:flex><span>		),
 </span></span><span style=display:flex><span>		dubbo.<span style=color:#268bd2>WithProtocol</span>(
 </span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithTriple</span>(),
-</span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20000</span>),
+</span></span><span style=display:flex><span>			protocol.<span style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20001</span>),
 </span></span><span style=display:flex><span>		),
 </span></span><span style=display:flex><span>	)
-</span></span></code></pre></div><p>参数:</p><ul><li>dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。</li></ul><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-go data-lang=go><span style=display:flex><span>atta <span style=color:#719e07>:=</span> <span style=color:#268bd2>map</span>[<span style=color:#dc322f>string</span>]<span style=color:#dc322f>string</span>{
+</span></span></code></pre></div><p>参数:</p><ul><li>dubbo.WithTag: 设置该实例携带的tag,用于标记该实例(例如为灰度环境等)。标签会写入注册中心的实例元数据(<code>dubbo.tag</code>)。标签匹配区分大小写,需与客户端携带的标签写法完全一致。</li></ul><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-go data-lang=go><span style=display:flex><span>atta <span style=color:#719e07>:=</span> <span style=color:#268bd2>map</span>[<span style=color:#dc322f>string</spa [...]
 </span></span><span style=display:flex><span>	constant.Tagkey:      <span style=color:#2aa198>&#34;test-tag&#34;</span>,
 </span></span><span style=display:flex><span>	constant.ForceUseTag: <span style=color:#2aa198>&#34;true&#34;</span>, <span style=color:#586e75>// 使用string类型</span>
 </span></span><span style=display:flex><span>}
 </span></span><span style=display:flex><span>ctx <span style=color:#719e07>:=</span> context.<span style=color:#268bd2>WithValue</span>(context.<span style=color:#268bd2>Background</span>(), constant.AttachmentKey, atta)
 </span></span><span style=display:flex><span>resp, err <span style=color:#719e07>:=</span> svc.<span style=color:#268bd2>Greet</span>(ctx, <span style=color:#719e07>&amp;</span>greet.GreetRequest{Name: name})
-</span></span></code></pre></div><p>参数:</p><ul><li><code>constant.TagKey</code>: 设置客户端发送请求时所携带的tag标签。</li><li><code>constant.ForceUseTag</code>: 设置是否强制匹配标签。</li></ul><blockquote><p>未携带标签的流量只能打到未携带标签的服务,携带标签的流量则可以打到携带相应标签的服务以及不具有标签的服务(取决于是否配置force参数)。</p></blockquote><p>完整示例请见: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/tag>本示例完整代码</a>。</p><h3 id=静态配置-api>静态配置 API</h3><p>除上面的用法外,Tag router 也支持通过静态配置 API 在代码中注入路由规则。静态配置不要求配置中心参与,可以配合直连 URL 使用,也可以配合注册中心使用。</p><p>下面是 [...]
+</span></span></code></pre></div><p>参数:</p><ul><li><code>constant.Tagkey</code>: 设置客户端发送请求时所携带的tag标签。</li><li><code>constant.ForceUseTag</code>: 设置是否强制匹配标签。<code>"true"</code>时标签匹配不到实例直接失败;<code>"false"</code>时允许回退到未打标签的实例。</li></ul><blockquote><p>未携带标签的流量只能打到未携带标签的服务,携带标签的流量则可以打到携带相应标签的服务以及不具有标签的服务(取决于是否配置force参数)。</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-sh [...]
+</span></span><span style=display:flex><span>$ go run ./go-tag-server/cmd/server_tag.go   <span style=color:#586e75># 携带test-tag标签的server,20001端口</span>
+</span></span><span style=display:flex><span>$ go run ./go-client/cmd/client.go
+</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>✔ invoke successfully : receive: tag with force, response from: server-with-tag
+</span></span><span style=display:flex><span>❌ invoke failed: Failed to invoke the method Greet.
+</span></span><span style=display:flex><span>✔ invoke successfully : receive: tag with no-force, response from: server-without-tag
+</span></span><span style=display:flex><span>✔ invoke successfully : receive: non-tag, response from: server-without-tag
+</span></span></code></pre></div><p>四次调用分别对应:标签匹配成功、标签不存在且force为true(不回退,调用失败)、标签不存在但force为false(回退到无标签实例)、无标签流量(只路由到无标签实例)。</p><p>完整示例请见: <a href=https://github.com/apache/dubbo-go-samples/tree/main/router/tag>本示例完整代码</a>。</p><h3 id=动态规则配置>动态规则配置</h3><p>除请求级标签外,还可以从配置中心动态下发标签规则,把"标签 → 实例分组"的映射交给规则维护。</p><p>动态标签规则依赖配置中心,客户端必须通过<code>dubbo.WithConfigCenter</code>接入 Nacos,否则日志会提示<code>Config center does not start, Tag router will not be enabled</code>:</p><div class=highlight><pre tabindex [...]
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithName</span>(<span style=color:#2aa198>&#34;tag-client&#34;</span>),
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithRegistry</span>(
+</span></span><span style=display:flex><span>		registry.<span style=color:#268bd2>WithNacos</span>(),
+</span></span><span style=display:flex><span>		registry.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
+</span></span><span style=display:flex><span>	),
+</span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithConfigCenter</span>(
+</span></span><span style=display:flex><span>		config_center.<span style=color:#268bd2>WithNacos</span>(),
+</span></span><span style=display:flex><span>		config_center.<span style=color:#268bd2>WithAddress</span>(RegistryAddress),
+</span></span><span style=display:flex><span>	),
+</span></span><span style=display:flex><span>)
+</span></span></code></pre></div><p>在 Nacos 新建配置,<code>Data ID</code>为<code>{application_name}.tag-router</code>(这里的应用名是<strong>服务端</strong>的应用名,例如<code>tag-server.tag-router</code>),Group 使用默认的<code>DEFAULT_GROUP</code>,配置格式选择<code>YAML</code>。</p><p>配置内容示例——把携带<code>gray</code>标签的请求路由到<code>dubbo.tag=test-tag</code>的实例:</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></span><span style=display:flex><span><span style=color:#268bd2>scope</span>: application
+</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: tag-server
+</span></span><span style=display:flex><span><span style=color:#268bd2>force</span>: <span style=color:#cb4b16>false</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>priority</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>tags</span>:
+</span></span><span style=display:flex><span>  - <span style=color:#268bd2>name</span>: gray
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>match</span>:
+</span></span><span style=display:flex><span>      - <span style=color:#268bd2>key</span>: dubbo.tag
+</span></span><span style=display:flex><span>        <span style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span>          <span style=color:#268bd2>exact</span>: test-tag
+</span></span></code></pre></div><p>关键字段说明:</p><ul><li><code>tags[].name</code>: 标签名,与请求 attachment 中携带的标签值对应。</li><li><code>tags[].match</code>: 按实例 URL 参数匹配实例分组,<code>value</code>支持<code>exact</code>、<code>prefix</code>、<code>regex</code>等匹配方式。</li><li><code>tags[].addresses</code>: 直接按<code>ip:port</code>圈定实例分组,与<code>match</code>二选一。</li><li><code>force</code>: 标签匹配不到实例时是否回退。<code>true</code>不回退、直接失败;<code>false</code>回退到未打标签的实例。</li><li><code>enabled</code>: 是否启用本条规则。</li></ul><p>规则 [...]
 </span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithName</span>(clientApplication),
 </span></span><span style=display:flex><span>	dubbo.<span style=color:#268bd2>WithRouter</span>(
 </span></span><span style=display:flex><span>		router.<span style=color:#268bd2>WithScope</span>(<span style=color:#2aa198>&#34;application&#34;</span>),
@@ -725,7 +755,7 @@
 </span></span><span style=display:flex><span>	constant.Tagkey: <span style=color:#2aa198>&#34;gray&#34;</span>,
 </span></span><span style=display:flex><span>})
 </span></span></code></pre></div><p>参数:</p><ul><li><code>router.WithScope("application")</code>: 按应用维度生效。</li><li><code>router.WithKey(clientApplication)</code>: 指定当前路由规则绑定的 consumer application。</li><li><code>router.WithTags(...)</code>: 静态声明 tag 到地址列表的映射关系。</li><li><code>router.WithForce(...)</code>: 控制 tag 不匹配时是否允许回退。</li></ul><p><code>dubbo-go-samples</code> 中的静态示例使用直连 URL,只是为了最小化演示,不代表静态配置 API 只能用于直连场景。</p><p>静态配置示例请见: <a href=https://github.com/apache/dubbo-go-samples/tree/main/rou [...]
-<button class="btn btn-primary mb-4 feedback--no">否</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled [...]
+<button class="btn btn-primary mb-4 feedback--no">否</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled [...]
 <button class="contact-btn qr-container" onmouseover='showQRCode("dingding-qr")' onmouseout='hideQRCode("dingding-qr")'>钉钉<div class=qr-code id=dingding-qr style=display:none><img src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div class=footer-container-right><ul><li>文档</li><li><a href=/zh-cn/overview/home/>概览</a></li><li><a href=/zh-cn/overview/quickstart/>快速开始</a></li><li><a href=/zh-cn/contact/contributor/software-donation-guide_dev/>开发者指南</a></li></ul><ul><li>资源</li><li><a href=/zh-cn/contact/>社区</a></li></ul></div></div><div style="width:85.125rem;height:0;border:1px solid #dddee4;margin-bottom:32px"></div>< [...]
 project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 59b2e5f0a67..ac41fd8eb84 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/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://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="en" href="https://dubbo.apach [...]
\ 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://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="en" href="https://dubbo.apach [...]
\ No newline at end of file