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 2025/11/13 14:39:32 UTC
(dubbo-website) branch asf-site-v2 updated: deploy: 3be6db99382ab4b67af8db1ad0471853bcea5e4b
This is an automated email from the ASF dual-hosted git repository.
github-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 06a37963959 deploy: 3be6db99382ab4b67af8db1ad0471853bcea5e4b
06a37963959 is described below
commit 06a37963959adc480b3e165802456cae0e1d03e3
Author: RainYuY <Ra...@users.noreply.github.com>
AuthorDate: Thu Nov 13 14:39:23 2025 +0000
deploy: 3be6db99382ab4b67af8db1ad0471853bcea5e4b
---
sitemap.xml | 2 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 2 +-
.../index.html" | 2 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
zh-cn/blog/java/codeanalysis/3.0.8/index.xml | 22 +-
zh-cn/blog/java/demos/index.xml | 4 +-
zh-cn/blog/java/proposals/index.xml | 2 +-
zh-cn/docs/advanced/index.xml | 6 +-
zh-cn/docs/advanced/netty4/index.html | 6 +-
.../docs/advanced/pb-generic-reference/index.html | 6 +-
zh-cn/docs/advanced/protobuf-idl/index.html | 6 +-
zh-cn/docs/references/lifecycle/brief/index.html | 6 +-
zh-cn/docs/references/lifecycle/index.html | 6 +-
zh-cn/docs/references/lifecycle/index.xml | 2 +-
.../references/xml/dubbo-application/index.html | 6 +-
.../references/xml/dubbo-config-center/index.html | 6 +-
.../docs/references/xml/dubbo-consumer/index.html | 6 +-
zh-cn/docs/references/xml/dubbo-module/index.html | 6 +-
zh-cn/docs/references/xml/dubbo-monitor/index.html | 6 +-
.../docs/references/xml/dubbo-protocol/index.html | 6 +-
.../docs/references/xml/dubbo-provider/index.html | 6 +-
.../docs/references/xml/dubbo-reference/index.html | 6 +-
.../docs/references/xml/dubbo-registry/index.html | 6 +-
zh-cn/docs/references/xml/dubbo-service/index.html | 6 +-
zh-cn/docs/references/xml/index.xml | 20 +-
zh-cn/index.xml | 251 ++++++++++-----------
zh-cn/overview/home/index.html | 4 +-
zh-cn/overview/mannual/control-plane/index.xml | 2 +-
.../overview/mannual/control-plane/test/index.html | 8 +-
.../golang-sdk/quickstart/microservices/index.html | 8 +-
.../mannual/java-sdk/quick-start/index.xml | 2 +-
.../java-sdk/quick-start/starter/index.html | 6 +-
.../architecture/dubbo-spi/index.html | 6 +-
.../reference-manual/architecture/index.xml | 2 +-
.../reference-manual/config-center/index.html | 6 +-
.../reference-manual/config-center/index.xml | 6 +-
.../config-center/introduction/index.html | 6 +-
.../config-center/nacos/index.html | 8 +-
.../java-sdk/reference-manual/config/index.xml | 4 +-
.../reference-manual/config/properties/index.html | 8 +-
.../reference-manual/config/spring/index.xml | 20 +-
.../config/spring/spring-boot/index.html | 6 +-
.../java-sdk/reference-manual/faq/1/10/index.html | 6 +-
.../java-sdk/reference-manual/faq/1/7/index.html | 6 +-
.../java-sdk/reference-manual/faq/1/9/index.html | 6 +-
.../java-sdk/reference-manual/faq/1/index.xml | 6 +-
.../reference-manual/metadata-center/index.xml | 10 +-
.../metadata-center/nacos/index.html | 6 +-
.../metadata-center/overview/index.html | 6 +-
.../metadata-center/zookeeper/index.html | 6 +-
.../java-sdk/reference-manual/protocol/index.xml | 4 +-
.../reference-manual/protocol/overview/index.html | 6 +-
.../reference-manual/protocol/triple/index.html | 10 +-
.../reference-manual/qos/introduction/index.xml | 4 +-
.../qos/introduction/profiler/index.html | 6 +-
.../qos/introduction/router-snapshot/index.html | 6 +-
.../java-sdk/reference-manual/registry/index.xml | 2 +-
.../reference-manual/registry/overview/index.html | 8 +-
.../reference-manual/registry/zookeeper/index.html | 6 +-
.../serialization/triple/index.xml | 2 +-
.../serialization/triple/protobuf/index.html | 6 +-
.../java-sdk/reference-manual/spi/index.xml | 2 +-
.../reference-manual/spi/spi-list/index.html | 6 +-
.../upgrades-and-compatibility/index.xml | 4 +-
.../migration-service-discovery/index.html | 10 +-
.../migration/index.html | 6 +-
.../deploy/deploy-on-kubernetes-service/index.html | 6 +-
.../tasks/deploy/deploy-on-kubernetes/index.html | 8 +-
.../java-sdk/tasks/deploy/deploy-on-vm/index.html | 8 +-
.../mannual/java-sdk/tasks/deploy/index.xml | 11 +-
.../java-sdk/tasks/develop/springboot/index.html | 6 +-
.../framework/fault-tolerent-strategy/index.html | 6 +-
.../java-sdk/tasks/framework/filter/index.html | 8 +-
.../mannual/java-sdk/tasks/framework/index.xml | 4 +-
.../tasks/framework/lightweight-rpc/index.html | 6 +-
.../framework/more/concurrency-control/index.html | 6 +-
.../framework/more/config-connections/index.html | 6 +-
.../java-sdk/tasks/framework/more/index.xml | 4 +-
.../framework/more/router-snapshot/index.html | 6 +-
.../tasks/framework/version_group/index.html | 8 +-
.../java-sdk/tasks/gateway/architecture/index.html | 6 +-
.../mannual/java-sdk/tasks/gateway/index.xml | 2 +-
.../tasks/mesh/migration/proxyless/index.html | 8 +-
.../tasks/observability/console/index.html | 8 +-
.../tasks/observability/grafana/index.html | 8 +-
.../mannual/java-sdk/tasks/observability/index.xml | 4 +-
.../java-sdk/tasks/service-discovery/index.xml | 2 +-
.../tasks/service-discovery/kubernetes/index.html | 6 +-
.../tasks/service-discovery/zookeeper/index.html | 6 +-
.../tasks/traffic-management/accesslog/index.html | 8 +-
.../tasks/traffic-management/arguments/index.html | 8 +-
.../tasks/traffic-management/host/index.html | 8 +-
.../java-sdk/tasks/traffic-management/index.xml | 49 ++--
.../tasks/traffic-management/isolation/index.html | 8 +-
.../tasks/traffic-management/mock/index.html | 10 +-
.../tasks/traffic-management/region/index.html | 6 +-
.../tasks/traffic-management/retry/index.html | 8 +-
.../tasks/traffic-management/route/index.html | 8 +-
.../tasks/traffic-management/timeout/index.html | 6 +-
.../tasks/traffic-management/weight/index.html | 8 +-
.../tasks/troubleshoot/profiler/index.html | 6 +-
zh-cn/overview/mannual/web-sdk/index.xml | 7 +-
.../mannual/web-sdk/quick-start/index.html | 6 +-
.../what/core-features/ecosystem/index.html | 6 +-
.../what/core-features/extensibility/index.html | 6 +-
zh-cn/overview/what/core-features/index.xml | 36 +--
.../what/core-features/load-balance/index.html | 6 +-
zh-cn/overview/what/core-features/more/index.html | 6 +-
.../what/core-features/observability/index.html | 6 +-
.../what/core-features/protocols/index.html | 6 +-
.../core-features/service-definition/index.html | 10 +-
.../what/core-features/service-mesh/index.html | 6 +-
.../traffic/circuit-breaking/index.html | 8 +-
.../overview/what/core-features/traffic/index.html | 12 +-
.../overview/what/core-features/traffic/index.xml | 6 +-
.../core-features/traffic/introduction/index.html | 12 +-
.../core-features/traffic/mesh-rule/index.html | 10 +-
zh-cn/sitemap.xml | 2 +-
zh-cn/tags/index.html | 2 +-
zh-cn/tags/index.xml | 2 +-
zh-cn/tags/java/index.html | 2 +-
zh-cn/tags/java/index.xml | 30 +--
.../index.html" | 2 +-
.../index.xml" | 4 +-
.../index.html" | 2 +-
.../index.xml" | 24 +-
131 files changed, 587 insertions(+), 593 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index 9b8bd81d9c2..999790aaccc 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>2025-11-11T23:45:17+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2025-11-12T10:19:33+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>2025-11-13T22:33:41+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2025-11-12T10:19:33+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git "a/zh-cn/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html" "b/zh-cn/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
index 62744b81a0c..cc2515ac36c 100644
--- "a/zh-cn/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
+++ "b/zh-cn/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics [...]
"><meta property="og:description" content="description: 本文介绍了Dubbo框架的核心,SPI扩展机制。
"><meta name=twitter:description content="description: 本文介绍了Dubbo框架的核心,SPI扩展机制。
"><meta property="og:url" content="https://dubbo.apache.org/zh-cn/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/"><meta property="og:title" content="Dubbo可扩展机制实战"><meta name=twitter:title content="Dubbo可扩展机制实战"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:image" content="/imgs/blog/dubbo_loadbalance.png"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/g [...]
@@ -285,8 +285,8 @@ random的定义在配置文件<code>META-INF/dubbo/internal/com.alibaba.dubbo.rp
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><h3 id=72-添加扩展配置文件>7.2 添加扩展配置文件</h3><p>添加文件:<code>META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance</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-bash data-lang=bash><span style=display:flex><span><span style=color:#268bd2>demo</span><span style=color:#719e07>=</span>com.dubbo.spi.demo.consumer.DemoLoadBalance
</span></span></code></pre></div><h3 id=73-配置使用自定义loadbalance>7.3 配置使用自定义LoadBalance</h3><p>通过上面的两步,已经添加了一个名字为demo的LoadBalance实现,并在配置文件中进行了相应的配置。接下来,需要显式的告诉Dubbo使用demo的负载均衡实现。如果是通过spring的方式使用Dubbo,可以在xml文件中进行设置。</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><dubbo:reference</span> id=<span style=color:#2aa198>&# [...]
-</span></span></code></pre></div><p>在consumer端的<a href=#ZgotmplZ>dubbo:reference</a>中配置<loadbalance=“demo”></p><h3 id=74-启动dubbo>7.4 启动Dubbo</h3><p>启动Dubbo,调用一次IHelloService,可以看到控制台会输出一条<code>DemoLoadBalance: Select the first invoker...</code>日志。说明Dubbo的确是使用了我们自定义的LoadBalance。</p><h2 id=总结>总结</h2><p>到此,我们从Java SPI开始,了解了Dubbo SPI 的基本概念,并结合了Dubbo中的LoadBalance加深了理解。最后,我们还实践了一下,创建了一个自定义LoadBalance,并集成到Dubbo中。相信通过这里理论和实践的结合,大家对Dubbo的可扩展有更深入的理解。
-总结一下,Dubbo SPI有以下的特点:</p><ul><li>对Dubbo进行扩展,不需要改动Dubbo的源码</li><li>自定义的Dubbo的扩展点实现,是一个普通的Java类,Dubbo没有引入任何Dubbo特有的元素,对代码侵入性几乎为零。</li><li>将扩展注册到Dubbo中,只需要在ClassPath中添加配置文件。使用简单。而且不会对现有代码造成影响。符合开闭原则。</li><li>dubbo的扩展机制设计默认值:@SPI(“dubbo”) 代表默认的spi对象</li><li>Dubbo的扩展机制支持IoC,AoP等高级功能</li><li>Dubbo的扩展机制能很好的支持第三方IoC容器,默认支持Spring Bean,可自己扩展来支持其他容器,比如Google的Guice。</li><li>切换扩展点的实现,只需要在配置文件中修改具体的实现,不需要改代码。使用方便。</li></ul><p>下一篇,我们将会一起深入Dubbo的源码,更深入的了解Dubbo的可扩展机制。</p><ul class="list-unsty [...]
+</span></span></code></pre></div><p>在consumer端的<code><dubbo:reference></code>中配置<loadbalance=“demo”></p><h3 id=74-启动dubbo>7.4 启动Dubbo</h3><p>启动Dubbo,调用一次IHelloService,可以看到控制台会输出一条<code>DemoLoadBalance: Select the first invoker...</code>日志。说明Dubbo的确是使用了我们自定义的LoadBalance。</p><h2 id=总结>总结</h2><p>到此,我们从Java SPI开始,了解了Dubbo SPI 的基本概念,并结合了Dubbo中的LoadBalance加深了理解。最后,我们还实践了一下,创建了一个自定义LoadBalance,并集成到Dubbo中。相信通过这里理论和实践的结合,大家对Dubbo的可扩展有更深入的理解。
+总结一下,Dubbo SPI有以下的特点:</p><ul><li>对Dubbo进行扩展,不需要改动Dubbo的源码</li><li>自定义的Dubbo的扩展点实现,是一个普通的Java类,Dubbo没有引入任何Dubbo特有的元素,对代码侵入性几乎为零。</li><li>将扩展注册到Dubbo中,只需要在ClassPath中添加配置文件。使用简单。而且不会对现有代码造成影响。符合开闭原则。</li><li>dubbo的扩展机制设计默认值:@SPI(“dubbo”) 代表默认的spi对象</li><li>Dubbo的扩展机制支持IoC,AoP等高级功能</li><li>Dubbo的扩展机制能很好的支持第三方IoC容器,默认支持Spring Bean,可自己扩展来支持其他容器,比如Google的Guice。</li><li>切换扩展点的实现,只需要在配置文件中修改具体的实现,不需要改代码。使用方便。</li></ul><p>下一篇,我们将会一起深入Dubbo的源码,更深入的了解Dubbo的可扩展机制。</p><ul class="list-unsty [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/demos/introduction-to-dubbo-spi?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%2A+Edit+the+%22front [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%e5%8f%af%e6%89%a9%e5%b1%95%e6%9c%ba%e5%88%b6%e5%ae%9e%e6%88%98" 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><nav id=TableOfContents><ul><li><a href=#1-dubbo的扩展机制>1. Dubbo的扩展机制</a></li><li><a href=#2-可扩展的几种解决方案>2. 可扩展的几种解决方案</a></li><li><a href=#3-java-spi机制>3. Java SPI机制</a></li><li><a href=#4-dubbo的spi机制>4. Dubbo的SPI机制</a></li><li><a href=#5-dubbo扩展点机制基本概念>5. Dubbo扩展点机制基本概念</a><ul><li><a href=#51-扩展点extension-point>5.1 扩展点(Extension Point)</a></li><li><a href=#52-扩展extension>5.2 [...]
diff --git "a/zh-cn/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html" "b/zh-cn/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
index f830e0f922f..53f8f982539 100644
--- "a/zh-cn/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
+++ "b/zh-cn/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
"><meta property="og:description" content="对正在开发的功能进行验证测试,或者单独调用某台机器的服务
"><meta name=twitter:description content="对正在开发的功能进行验证测试,或者单独调用某台机器的服务
"><meta property="og:url" content="https://dubbo.apache.org/zh-cn/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/"><meta property="og:title" content="Dubbo测试验证"><meta name=twitter:title content="Dubbo测试验证"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:image" content="/imgs/blog/subscribe-only.jpg"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script><link href [...]
@@ -228,8 +228,8 @@
<label for=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-check><a href=/zh-cn/blog/2021/08/25/dubbo-%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E7%A5%9E%E5%85%BDdubbo-go-pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu><span>Dubbo 跨语言调用神兽:dubbo-go-pixiu</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 [...]
禁用注册配置</p><pre><code><dubbo:registry address="10.20.153.10:9090" register="false" />
</code></pre><p>或者</p><pre><code><dubbo:registry address="10.20.153.10:9090?register=false" />
-</code></pre><h3 id=指定ip调用>指定IP调用</h3><p>在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表<br><img src=/imgs/blog/dubbo-directly.jpg alt=subscribe-only></p><p>可以通过以下几种配置来指定IP调用</p><ul><li>XML 配置: 如果是线上需求需要点对点,可在 <a href=#ZgotmplZ>dubbo:reference</a> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
-<code><dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" /></code></li><li>通过-D参数指定: 在 JVM 启动参数中加入-D参数映射服务地址,如:<code>java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li><li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <a href=#ZgotmplZ>dubbo:reference</a> 中的配置,如:
+</code></pre><h3 id=指定ip调用>指定IP调用</h3><p>在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表<br><img src=/imgs/blog/dubbo-directly.jpg alt=subscribe-only></p><p>可以通过以下几种配置来指定IP调用</p><ul><li>XML 配置: 如果是线上需求需要点对点,可在 <code><dubbo:reference></code> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
+<code><dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" /></code></li><li>通过-D参数指定: 在 JVM 启动参数中加入-D参数映射服务地址,如:<code>java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li><li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <code><dubbo:reference></code> 中的配置,如:
<code>java -Ddubbo.resolve.file=xxx.properties</code><br>然后在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者 URL:<code>com.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li></ul><h3 id=回声测试>回声测试</h3><h4 id=使用方式>使用方式</h4><p>回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控。</p><p>所有服务自动实现 EchoService 接口,只需将任意服务引用强制转型为 EchoService,即可使用。</p><p>Spring 配置:</p><pre><code><dubbo:reference id="memberService" interface="com.xxx.MemberService" />
</code></pre><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>// 远程服务引用
</span></span><span style=display:flex><span>MemberService memberService = ctx.getBean("memberService");
@@ -270,7 +270,7 @@
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>在经过EchoFilter.invoke方法时,如果调用的是<code>$echo</code>,会中断当前的调用过程,直接返回<code>$echo</code>的入参,否则会继续执行Filter链。<br>通过动态代理和EchoFilter机制,使得回声测试的整个过程对用户透明,不需要做任何额外的配置,直接调用即可。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/ aria-label="上一页 - Dubbo 在 Service Mesh 下的思考和方案" class="btn btn-primary"><spa [...]
+</span></span></code></pre></div><p>在经过EchoFilter.invoke方法时,如果调用的是<code>$echo</code>,会中断当前的调用过程,直接返回<code>$echo</code>的入参,否则会继续执行Filter链。<br>通过动态代理和EchoFilter机制,使得回声测试的整个过程对用户透明,不需要做任何额外的配置,直接调用即可。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/ aria-label="上一页 - Dubbo 在 Service Mesh 下的思考和方案" class="btn btn-primary"><spa [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/demos/test-verification?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%2A+Edit+the+%22front+matter% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%e6%b5%8b%e8%af%95%e9%aa%8c%e8%af%81" 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><nav id=TableOfContents><ul><li><ul><li><a href=#只订阅>只订阅</a></li><li><a href=#指定ip调用>指定IP调用</a></li><li><a href=#回声测试>回声测试</a></li></ul></li></ul></nav><div class="taxonomy taxonomy-terms-cloud taxo-tags"><h5 class=taxonomy-title>Tags</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://dubbo.apache.org/zh-cn/tags/apachecon2023/ data-taxonomy-term=apachecon2 [...]
diff --git "a/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html" "b/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\34 [...]
index 69b871362c9..be4baaddc99 100644
--- "a/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html"
+++ "b/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubb [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubb [...]
<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 active" href=/zh-cn/blog/><span class="active mr-1">博客</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=f [...]
<a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -343,7 +343,7 @@
</span></span></code></pre></div><p><strong>注意,</strong> <strong>ServiceMetadata</strong>这个类目前在Dubbo中没有用法。与服务级别相关的数据,例如名称、版本、业务服务的类加载器、安全信息等,还带有用于扩展的AttributeMap。</p><p><strong>服务配置对象的创建过程就这样结束了</strong>,当然有一些细节会<strong>放到后面来写</strong>
上面主要顺序是按照代码执行的顺序来写的部分地方可能稍微做了调整,如果有条件的同学一定要<strong>自己进行DEBUG</strong>了解下细节.</p><p>关于服务配置官网提供了xml的配置信息这里我拷贝过来,可以做为参考:
当然这个配置不是最新的比如服务配置的<strong>标签配置tag</strong>,
-<strong>warmup 预热时间</strong>单位毫秒,暂时还没有说明</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>interface</td><td></td><td>class</td><td>必填</td><td></td><td>服务发现</td><td>服务接口名</td><td>1.0.0以上版本</td></tr><tr><td>ref</td><td></td><td>object</td><td>必填</td><td></td><td>服务发现</td><td>服务对象实现引用</td><td>1.0.0以上版本</td></tr><tr><td>version</td><td>version</td><td>string</td><td>可选</td><td>0.0.0</td><td>服务发现< [...]
+<strong>warmup 预热时间</strong>单位毫秒,暂时还没有说明</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>interface</td><td></td><td>class</td><td>必填</td><td></td><td>服务发现</td><td>服务接口名</td><td>1.0.0以上版本</td></tr><tr><td>ref</td><td></td><td>object</td><td>必填</td><td></td><td>服务发现</td><td>服务对象实现引用</td><td>1.0.0以上版本</td></tr><tr><td>version</td><td>version</td><td>string</td><td>可选</td><td>0.0.0</td><td>服务发现< [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/codeanalysis/3.0.8/2-serviceconfig-config?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%2A+Edit+th [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=02-%e5%90%af%e5%8a%a8%e6%9c%8d%e5%8a%a1%e5%89%8d%e6%9c%8d%e5%8a%a1%e9%85%8d%e7%bd%aeServiceConfig%e7%b1%bb%e5%9e%8b%e6%98%af%e5%a6%82%e4%bd%95%e5%88%9d%e5%a7%8b%e5%8c%96%e7%9a%84?" 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><nav id=TableOfContents><ul><li><a href=#21-示例源码回顾>2.1 示例源码回顾:</a></li><li><a href=#22-了解一下服务配置的建模>2.2 了解一下服务配置的建模</a></li><li><a href=#23-serviceconfig构造器的初始化调用链>2.3 ServiceConfig构造器的初始化调用链</a><ul><li><a href=#231-父类型abstractmethodconfig构造器的初始化>2.3.1 父类型AbstractMethodConfig构造器的初始化</a></li><li><a href=#232-最顶层类型abstractconfig构造器的初始化>2.3.2 最顶层类型AbstractConfig构造器的初始化</a></li> [...]
diff --git "a/zh-cn/blog/2022/08/10/10-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\346\263\250\345\206\214\344\270\255\345\277\203\351\205\215\347\275\256\344\277\241\346\201\257registryconfig/index.html" "b/zh-cn/blog/2022/08/10/10-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\346\263\250\345\206\214\344\270\255\345\277\203\351\205\215\347\275\256\344\277\241\346\201\257registryconfig/index.html"
index 120570c9393..0140a2eeeb0 100644
--- "a/zh-cn/blog/2022/08/10/10-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\346\263\250\345\206\214\344\270\255\345\277\203\351\205\215\347\275\256\344\277\241\346\201\257registryconfig/index.html"
+++ "b/zh-cn/blog/2022/08/10/10-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\346\263\250\345\206\214\344\270\255\345\277\203\351\205\215\347\275\256\344\277\241\346\201\257registryconfig/index.html"
@@ -235,7 +235,7 @@
</span></span><span style=display:flex><span> .await();
</span></span><span style=display:flex><span>
</span></span></code></pre></div><p>上个博客我们说了启动器ApplicationConfig对象的创建,启动器对象在启动之前是要初始化一些配置信息的,这里我们来看这一行代码注册中心配置信息:</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-java data-lang=java><span style=display:flex><span>registry(<span style=color:#719e07>new</span> RegistryConfig(<span style=color:#2aa198>"zookeeper://127.0.0.1:2181"</span>))
-</span></span></code></pre></div><h2 id=102--注册中心的配置相关>10.2 注册中心的配置相关</h2><p>下面的配置来源于官网</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td>可选</td><td></td><td>配置关联</td><td>注册中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID</td><td>1.0.16以上版本</td></tr><tr><td>address</td><td><a href=#ZgotmplZ>host:port</a></td><td>string</td>< [...]
+</span></span></code></pre></div><h2 id=102--注册中心的配置相关>10.2 注册中心的配置相关</h2><p>下面的配置来源于官网</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td>可选</td><td></td><td>配置关联</td><td>注册中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID</td><td>1.0.16以上版本</td></tr><tr><td>address</td><td><code><host:port></code></td><td>string</td><td>< [...]
</span></span></code></pre></div><p>首先我们要来看的是RegistryConfig类型的构造器</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-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>RegistryConfig</span>(String address) {
</span></span><span style=display:flex><span> setAddress(address);
</span></span><span style=display:flex><span> }
@@ -347,7 +347,7 @@
</span></span><span style=display:flex><span> configsMap.put(key, config);
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> config;
</span></span><span style=display:flex><span> }
-</span></span></code></pre></div><p>原文: <a href=https://blog.elastic.link/2022/07/10/dubbo/10-dubbo-qi-dong-qi-dubbobootstrap-tian-jia-zhu-ce-zhong-xin-pei-zhi-xin-xi-registryconfig//>«Dubbo启动器DubboBootstrap添加注册中心配置信息RegistryConfig»</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2022/08/09/9-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%85%8D% [...]
+</span></span></code></pre></div><p>原文: <a href=https://blog.elastic.link/2022/07/10/dubbo/10-dubbo-qi-dong-qi-dubbobootstrap-tian-jia-zhu-ce-zhong-xin-pei-zhi-xin-xi-registryconfig//><code><<Dubbo启动器DubboBootstrap添加注册中心配置信息RegistryConfig>></code></a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2022/08/09/9-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%8 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/codeanalysis/3.0.8/10-dubbo%e5%90%af%e5%8a%a8%e5%99%a8dubbobootstrap%e6%b7%bb%e5%8a%a0%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e9%85%8d%e7%bd%ae%e4%bf%a1%e6%81%afregistryconfig?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+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=10-Dubbo%e5%90%af%e5%8a%a8%e5%99%a8DubboBootstrap%e6%b7%bb%e5%8a%a0%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e9%85%8d%e7%bd%ae%e4%bf%a1%e6%81%afRegistryConfig" 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><nav id=TableOfContents><ul><li><a href=#101-简介>10.1 简介</a></li><li><a href=#102--注册中心的配置相关>10.2 注册中心的配置相关</a></li><li><a href=#103-注册中心配置对象创建与添加>10.3 注册中心配置对象创建与添加</a></li></ul></nav><div class="taxonomy taxonomy-terms-cloud taxo-tags"><h5 class=taxonomy-title>Tags</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://dubbo.apache.org/zh-cn/tags/apachecon202 [...]
diff --git "a/zh-cn/blog/2022/08/11/11-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\345\215\217\350\256\256\351\205\215\347\275\256\344\277\241\346\201\257protocolconfig/index.html" "b/zh-cn/blog/2022/08/11/11-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\345\215\217\350\256\256\351\205\215\347\275\256\344\277\241\346\201\257protocolconfig/index.html"
index dfe576cbde8..da13592a345 100644
--- "a/zh-cn/blog/2022/08/11/11-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\345\215\217\350\256\256\351\205\215\347\275\256\344\277\241\346\201\257protocolconfig/index.html"
+++ "b/zh-cn/blog/2022/08/11/11-dubbo\345\220\257\345\212\250\345\231\250dubbobootstrap\346\267\273\345\212\240\345\215\217\350\256\256\351\205\215\347\275\256\344\277\241\346\201\257protocolconfig/index.html"
@@ -235,7 +235,7 @@
</span></span><span style=display:flex><span> .await();
</span></span><span style=display:flex><span>
</span></span></code></pre></div><p>上个博客我们说了 RegistryConfig对象的创建,启动器对象在启动之前是要初始化一些配置信息的,这里我们来看这一行代码协议配置信息:</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-java data-lang=java><span style=display:flex><span>.protocol(<span style=color:#719e07>new</span> ProtocolConfig(CommonConstants.DUBBO, <span style=color:#719e07>-</span>1))
-</span></span></code></pre></div><h2 id=112--协议的配置相关>11.2 协议的配置相关</h2><p>下面的配置来源于官网</p><p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <a href=#ZgotmplZ>dubbo:protocol</a> 标签,并在 <a href=#ZgotmplZ>dubbo:service</a> 中通过 protocol 属性指定使用的协议。</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td>可选</td><td>dubbo</td><td>配置关联</td><td>协议B [...]
+</span></span></code></pre></div><h2 id=112--协议的配置相关>11.2 协议的配置相关</h2><p>下面的配置来源于官网</p><p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <code><dubbo:protocol></code> 标签,并在 <code><dubbo:service></code> 中通过 protocol 属性指定使用的协议。</p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td>可选</td><td>dubbo</td><td>配置关联</td><td>协议BeanId,可以 [...]
</span></span></code></pre></div><p>这里我们配置了协议类型为dubbo 端口为-1则会分配一个没有被占用的端口</p><p>继续看下DubboBootstrap的protocol方法</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-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> DubboBootstrap <span style=color:#268bd2>protocol</span>(ProtocolConfig protocolConfig) {
</span></span><span style=display:flex><span> <span style=color:#586e75>//配置信息转List</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> protocols(singletonList(protocolConfig));
diff --git "a/zh-cn/blog/2022/08/20/20-dubbo3\346\234\215\345\212\241\345\274\225\347\224\250\351\205\215\347\275\256referenceconfig/index.html" "b/zh-cn/blog/2022/08/20/20-dubbo3\346\234\215\345\212\241\345\274\225\347\224\250\351\205\215\347\275\256referenceconfig/index.html"
index 1d92b790085..28e881ac175 100644
--- "a/zh-cn/blog/2022/08/20/20-dubbo3\346\234\215\345\212\241\345\274\225\347\224\250\351\205\215\347\275\256referenceconfig/index.html"
+++ "b/zh-cn/blog/2022/08/20/20-dubbo3\346\234\215\345\212\241\345\274\225\347\224\250\351\205\215\347\275\256referenceconfig/index.html"
@@ -229,7 +229,7 @@
<time datetime=2022-08-20 class=text-body-secondary>Saturday, August 20, 2022</time></div><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://dubbo.apach [...]
<img src=/imgs/blog/source-blog/20-refe.png alt=在这里插入图片描述></p><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-java data-lang=java><span style=display:flex><span>ReferenceConfig<span style=color:#719e07><</span>DemoService<span style=color:#719e07>></span> reference <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> ReferenceConfig<spa [...]
</span></span></code></pre></div><p>这个配置类型的对象创建过程并没有太多的逻辑这里主要来说下各种配置信息:
-服务消费者引用服务配置。对应的配置类: <code>org.apache.dubbo.config.ReferenceConfig</code></p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td><strong>必填</strong></td><td></td><td>配置关联</td><td>服务引用BeanId</td><td>1.0.0以上版本</td></tr><tr><td>interface</td><td></td><td>class</td><td><strong>必填</strong></td><td></td><td>服务发现</td><td>服务接口名</td><td>1.0.0以上版本</td></tr><tr><td>version</t [...]
+服务消费者引用服务配置。对应的配置类: <code>org.apache.dubbo.config.ReferenceConfig</code></p><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>id</td><td></td><td>string</td><td><strong>必填</strong></td><td></td><td>配置关联</td><td>服务引用BeanId</td><td>1.0.0以上版本</td></tr><tr><td>interface</td><td></td><td>class</td><td><strong>必填</strong></td><td></td><td>服务发现</td><td>服务接口名</td><td>1.0.0以上版本</td></tr><tr><td>version</t [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/codeanalysis/3.0.8/20-dubbo3%e6%9c%8d%e5%8a%a1%e5%bc%95%e7%94%a8%e9%85%8d%e7%bd%aereferenceconfig?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=20-Dubbo3%e6%9c%8d%e5%8a%a1%e5%bc%95%e7%94%a8%e9%85%8d%e7%bd%aeReferenceConfig" 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="taxonomy taxonomy-terms-cloud taxo-tags"><h5 class=taxonomy-title>Tags</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://dubbo.apache.org/zh-cn/tags/apachecon2023/ data-taxonomy-term=apachecon2023><span class=taxonomy-label>Apachecon2023</span><span class=taxonomy-count>7</span></a></li><li><a class=taxonomy-term href=https://dubbo.apache.org/ [...]
diff --git "a/zh-cn/blog/2024/05/13/\345\246\202\346\236\234\344\273\216\346\216\245\345\217\243\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\345\271\263\346\273\221\350\277\201\347\247\273\345\210\260\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html" "b/zh-cn/blog/2024/05/13/\345\246\202\346\236\234\344\273\216\346\216\245\345\217\243\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\345\271\263\346\273\221\350\277\20 [...]
index 2b77a4f33fd..dafae995849 100644
--- "a/zh-cn/blog/2024/05/13/\345\246\202\346\236\234\344\273\216\346\216\245\345\217\243\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\345\271\263\346\273\221\350\277\201\347\247\273\345\210\260\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
+++ "b/zh-cn/blog/2024/05/13/\345\246\202\346\236\234\344\273\216\346\216\245\345\217\243\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\345\271\263\346\273\221\350\277\201\347\247\273\345\210\260\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2024/05/13/%E5%A6%82%E6%9E%9C%E4%BB%8E%E6%8E%A5%E5%8F%A3%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%B9%B3%E6%BB%91%E8%BF%81%E7%A7%BB%E5%88%B0%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setC [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/blog/2024/05/13/%E5%A6%82%E6%9E%9C%E4%BB%8E%E6%8E%A5%E5%8F%A3%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%B9%B3%E6%BB%91%E8%BF%81%E7%A7%BB%E5%88%B0%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setC [...]
'><meta property="og:description" content='"Dubbo3 应用级服务发现迁移详情,如果从接口级服务发现平滑迁移到应用级服务发现,迁移规则详情与工作原理。"
'><meta name=twitter:description content='"Dubbo3 应用级服务发现迁移详情,如果从接口级服务发现平滑迁移到应用级服务发现,迁移规则详情与工作原理。"
'><meta property="og:url" content="https://dubbo.apache.org/zh-cn/blog/2024/05/13/%E5%A6%82%E6%9E%9C%E4%BB%8E%E6%8E%A5%E5%8F%A3%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%B9%B3%E6%BB%91%E8%BF%81%E7%A7%BB%E5%88%B0%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/"><meta property="og:title" content="如果从接口级服务发现平滑迁移到应用级服务发现"><meta name=twitter:title content="如果从接口级服务发现平滑迁移到应用级服务发现"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:image" content="/imgs [...]
@@ -225,7 +225,7 @@
<label for=m-zh-cnblog20231007web-e6b58fe8a788e599a8e9a1b5e99da2e4b99fe883bde8aebfe997aedubbogrpce5beaee69c8de58aa1dubbo-js-alphae78988e69cace6ada3e5bc8fe58f91e5b883-check><a href=/zh-cn/blog/2023/10/07/web-%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A1%B5%E9%9D%A2%E4%B9%9F%E8%83%BD%E8%AE%BF%E9%97%AEdubbogrpc%E5%BE%AE%E6%9C%8D%E5%8A%A1dubbo-js-alpha%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20231007web-e6b58fe8a7 [...]
<label for=m-zh-cnblogpixiu-check><a href=/zh-cn/blog/pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cnblogpixiu><span>Pixiu</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-li><input type=checkbox id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-check>
<label for=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-check><a href=/zh-cn/blog/2022/02/19/%E8%B0%88%E8%B0%88pixiu%E7%9A%84filter/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter><span>谈谈Pixiu的Filter</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-li><input type=checkbox id=m-zh- [...]
-<label for=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-check><a href=/zh-cn/blog/2021/08/25/dubbo-%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E7%A5%9E%E5%85%BDdubbo-go-pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu><span>Dubbo 跨语言调用神兽:dubbo-go-pixiu</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 [...]
+<label for=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-check><a href=/zh-cn/blog/2021/08/25/dubbo-%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E7%A5%9E%E5%85%BDdubbo-go-pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu><span>Dubbo 跨语言调用神兽:dubbo-go-pixiu</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 [...]
</span></span><span style=display:flex><span>dubbo.application.register-mode=all
</span></span></code></pre></div><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># 仅应用级注册
</span></span><span style=display:flex><span>dubbo.application.register-mode=instance
@@ -244,7 +244,7 @@
</span></span><span style=display:flex><span>referenceConfig.setParameters(<span style=color:#719e07>new</span> HashMap<span style=color:#719e07><></span>());
</span></span><span style=display:flex><span>referenceConfig.getParameters().put(<span style=color:#2aa198>"migration.step"</span>, mode);
</span></span><span style=display:flex><span><span style=color:#719e07>return</span> referenceConfig.get();
-</span></span></code></pre></div><ol start=3><li>动态配置(优先级最高,可以在运行时修改配置)</li></ol><p>此配置需要基于配置中心进行推送,Key 为应用名 + <code>.migration</code> (如 <code>demo-application.migraion</code>),Group 为 <code>DUBBO_SERVICEDISCOVERY_MIGRATION</code>。规则体配置详见<a href=../migration-service-discovery/>接口级服务发现迁移至应用级服务发现指南</a>。</p><blockquote><p><a href=https://github.com/apache/dubbo-samples/blob/master/2-advanced/dubbo-samples-service-discovery/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-c [...]
+</span></span></code></pre></div><ol start=3><li>动态配置(优先级最高,可以在运行时修改配置)</li></ol><p>此配置需要基于配置中心进行推送,Key 为应用名 + <code>.migration</code> (如 <code>demo-application.migraion</code>),Group 为 <code>DUBBO_SERVICEDISCOVERY_MIGRATION</code>。规则体配置详见<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery>接口级服务发现迁移至应用级服务发现指南</a>。</p><blockquote><p><a href=https://github.com/apache/dubbo-samples/blob/master/2-advanced/dubbo-samples-service-disc [...]
</span></span></code></pre></div><p>接下来,我们就具体看一下,如何通过双订阅模式(APPLICATION_FIRST)让升级到 3.x 的消费端迁移到应用级别的地址。在具体展开之前,先明确一条消费端的选址行为:<strong>对于双订阅的场景,消费端虽然可同时持有 2.x 地址与 3.x 地址,但选址过程中两份地址是完全隔离的:要么用 2.x 地址,要么用 3.x 地址,不存在两份地址混合调用的情况,这个决策过程是在收到第一次地址通知后就完成了的。</strong></p><p>下面,我们看一个<code>APPLICATION_FIRST</code>策略的具体操作过程。</p><p>首先,提前在全局配置中心 Nacos 配置一条配置项(所有消费端都将默认执行这个选址策略):</p><p><img src=/imgs/v3/migration/nacos-migration-item.png alt=//imgs/v3/migration/nacos-migration-item.png></p><p>紧接着,升级消费端到 3.x [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>step</span>: APPLICATION_FIRST
</span></span><span style=display:flex><span><span style=color:#268bd2>applications</span>:
@@ -254,7 +254,7 @@
</span></span><span style=display:flex><span> - <span style=color:#268bd2>serviceKey</span>: org.apache.dubbo.config.api.DemoService:1.0.0
</span></span><span style=display:flex><span> <span style=color:#268bd2>step</span>: FORCE_INTERFACE
</span></span></code></pre></div><p>使用这种方式能做到比较精细迁移控制,但是当下及后续的改造成本会比较高,除了一些特别场景,我们不太推荐启用这种配置方式。
-<a href=../service-discovery-rule/>迁移指南</a>官方推荐使用的全局的开关式的迁移策略,让消费端实例在启动阶段自行决策使用哪份可用的地址列表。</p><h2 id=4-迁移状态的收敛>4 迁移状态的收敛</h2><p>为了同时兼容 2.x 版本,升级到 3.x 版本的应用在一段时间内要么处在双注册状态,要么处在双订阅状态。</p><p>解决这个问题,我们还是从 Provider 视角来看,当所有的 Provider 都切换到应用级地址注册之后,也就不存在双订阅的问题了。</p><h3 id=41-不同的升级策略影响很大>4.1 不同的升级策略影响很大</h3><p>毫无疑问越早越彻底的升级,就能尽快摆脱这个局面。设想,如果可以将组织内所有的应用都升级到 3.x 版本,则版本收敛就变的非常简单:升级过程中 Provider 始终保持双注册,当所有的应用都升级到 3.x 之后,就可以调整全局默认行为,让 Provider 都变成应
用级地址单注册了,这个过程并不会给 Consumer 应用带来困扰,因为它们已经是可以识别应用级地址的 3.x [...]
+<a href=/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule>迁移指南</a>官方推荐使用的全局的开关式的迁移策略,让消费端实例在启动阶段自行决策使用哪份可用的地址列表。</p><h2 id=4-迁移状态的收敛>4 迁移状态的收敛</h2><p>为了同时兼容 2.x 版本,升级到 3.x 版本的应用在一段时间内要么处在双注册状态,要么处在双订阅状态。</p><p>解决这个问题,我们还是从 Provider 视角来看,当所有的 Provider 都切换到应用级地址注册之后,也就不存在双订阅的问题了。</p><h3 id=41-不同的升级策略影响很大>4.1 不同的升级策略影响很大</h3><p>毫无疑问越早越彻底的升级,就能尽快摆脱这个局面。设想,如果可以将组织内所有的应用都升级到 3.x 版本,则版本收敛就变的非常简单:升级过程中 Provider 始终保持双注册,当所有的应用都升级到
3.x 之后,就可以调整全局默 [...]
在这种情况下,我们追求的只能是尽量保持已升级应用的上下游实现版本及功能收敛。推动某些 Provider 的上游消费者都升级到 Dubbo3,这样就可以解除这部分 Provider 的双注册,要做到这一点,可能需要一些辅助统计工具的支持。</p><ol><li>要能分析出应用间的依赖关系,比如一个 Provdier 应用被哪些消费端应用消费,这可以通过 Dubbo 提供的服务元数据上报能力来实现。</li><li>要能知道每个应用当前使用的 dubbo 版本,可以通过扫描或者主动上报手段。</li></ol><h2 id=5-迁移状态模型>5. 迁移状态模型</h2><p>在 Dubbo 3 之前地址注册模型是以接口级粒度注册到注册中心的,而 Dubbo 3 全新的应用级注册模型注册到注册中心的粒度是应用级的。从注册中心的实现上来说是几乎不一样的,这导致了对于从接口级注册模型获取到的 invokers 是无法与从应用级注册模型获�
�到的 invokers 进行合并的。为了帮助用户从接口级往应用级迁移,Dubbo 3 设计了 Migration 机制,基于三个状态的切换实现实 [...]
APPLICATION_FIRST:开启接口级、应用级双订阅,运行时根据阈值和灰度流量比例动态决定调用流量走向
FORCE_APPLICATION:只启用新模式下应用级服务发现的注册中心逻辑,调用流量 100% 走应用级订阅的地址</p><h3 id=51-规则体说明>5.1 规则体说明</h3><p>规则采用 yaml 格式配置,具体配置下参考如下:</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>key</span>: 消费者应用名(必填)
@@ -321,7 +321,7 @@ FORCE_APPLICATION:只启用新模式下应用级服务发现的注册中心逻
<img src=/imgs/v3/migration/migration-4.png alt=//imgs/v3/migration/migration-4.png></p><h6 id=2-应用级优先切换到强制>2. 应用级优先切换到强制</h6><p>应用级优先往强制接口级、强制应用级切换的过程是对双订阅的地址进行检查,如果满足则对另外一份订阅进行销毁,如果不满足则回滚保留原来的应用级优先状态。
如果用户希望这个切换过程不经过检查直接切换可以通过配置 force 参数实现。
<img src=/imgs/v3/migration/migration-5.png alt=//imgs/v3/migration/migration-5.png></p><h6 id=3-强制接口级和强制应用级互相切换>3. 强制接口级和强制应用级互相切换</h6><p>强制接口级和强制应用级互相切换需要临时创建一份新的订阅,判断新的订阅(即阈值计算时使用新订阅的地址数去除旧订阅的地址数)是否达标,如果达标则进行切换,如果不达标会销毁这份新的订阅并且回滚到之前的状态。
-<img src=/imgs/v3/migration/migration-6.png alt=//imgs/v3/migration/migration-6.png></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2024/05/13/%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%9C%B0%E5%9D%80%E8%BF%81%E7%A7%BB%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E/ aria-label="上一页 - 应用级服务发现地址迁移规则说明" class="btn btn-primary"><span class=me-1>←</span>上一页</a></li><li><a class="btn btn-primary disabled">下一页<span c [...]
+<img src=/imgs/v3/migration/migration-6.png alt=//imgs/v3/migration/migration-6.png></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh-cn/blog/2024/05/13/%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%9C%B0%E5%9D%80%E8%BF%81%E7%A7%BB%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E/ aria-label="上一页 - 应用级服务发现地址迁移规则说明" class="btn btn-primary"><span class=me-1>←</span>上一页</a></li><li><a class="btn btn-primary disabled">下一页<span c [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/proposals/service-discovery-migration?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%2A+Edit+the+%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%a6%82%e6%9e%9c%e4%bb%8e%e6%8e%a5%e5%8f%a3%e7%ba%a7%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0%e5%b9%b3%e6%bb%91%e8%bf%81%e7%a7%bb%e5%88%b0%e5%ba%94%e7%94%a8%e7%ba%a7%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0" 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><nav id=TableOfContents><ul><li><a href=#1-快速升级步骤>1 快速升级步骤</a></li><li><a href=#2-provider-端升级过程详解>2 Provider 端升级过程详解</a><ul><li><a href=#21-双注册带来的资源消耗>2.1 双注册带来的资源消耗</a></li></ul></li><li><a href=#3-consumer-端升级过程>3 Consumer 端升级过程</a><ul><li><a href=#31-双订阅带来的资源消耗>3.1 双订阅带来的资源消耗</a></li><li><a href=#32-消费端更细粒度的控制>3.2 消费端更细粒度的控制</a></li></ul></li><li><a href=#4-迁移状态的收敛>4 迁移 [...]
diff --git "a/zh-cn/blog/2024/05/13/\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\350\277\201\347\247\273\347\244\272\344\276\213/index.html" "b/zh-cn/blog/2024/05/13/\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\350\277\201\347\247\273\347\244\272\344\276\213/index.html"
index 0e6de9bf6f3..4358ad5f9ef 100644
--- "a/zh-cn/blog/2024/05/13/\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\350\277\201\347\247\273\347\244\272\344\276\213/index.html"
+++ "b/zh-cn/blog/2024/05/13/\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260\350\277\201\347\247\273\347\244\272\344\276\213/index.html"
@@ -5,14 +5,14 @@
参考示例
# 双注册 dubbo: registry: register-mode: all # 仅应用级注册 dubbo: registry: register-mode: instance 注册中心地址参数配置 注册中心的地址上可以配置 registry-type=service 来显示指定该注册中心为应用级服务发现的注册中心,带上此配置的注册中心将只进行应用级服务发现。
<dubbo:registry address="nacos://${nacos.address:127.0.0.1}:8848?registry-type=service"/> 消费端订阅模式 FORCE_INTERFACE:仅接口级订阅,行为和 Dubbo 2.7 及以前版本一致。 APPLICATION_FIRST:接口级 + 应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证迁移过程中最大的兼容性。(注:由于存在同时进行订阅的行为,此模式下内存占用会有一定的增长,因此在所有服务端都升级到 Dubbo 3.0 以后建议迁移到 FORCE_APPLICATION 模式降低内存占用) FORCE_APPLICATION:仅应用级订阅,将只采用全新的服务发现模型。
-消费端配置 默认配置(不需要配置) 升级到 Dubbo 3.0 后默认行为为接口级+应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证最大的兼容性。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2024-05-13T00:00:00+00:00"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta property="article:tag" content="Java"><meta property="article:tag" content="服务发现"><meta itemprop=nam [...]
+消费端配置 默认配置(不需要配置) 升级到 Dubbo 3.0 后默认行为为接口级+应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证最大的兼容性。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2024-05-13T00:00:00+00:00"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta property="article:tag" content="Java"><meta property="article:tag" content="服务发现"><meta itemprop=nam [...]
开启方式 服务端 应用升级到 Dubbo 3.0 后,服务端自动开启接口级 + 应用级双注册功能,默认无需开发者修改任何配置
消费端 应用升级到 Dubbo 3.0 后,消费端自动始接口级 + 应用级双订阅功能,默认无需开发者修改任何配置。建议在服务端都升级到 Dubbo 3.0 并开启应用级注册以后通过规则配置消费端关闭接口级订阅,释放对应的内存空间。
详细说明 服务端配置 全局开关 应用配置(可以通过配置文件或者 -D 指定)dubbo.application.register-mode 为 instance(只注册应用级)、all(接口级+应用级均注册)开启全局的注册开关,配置此开关后,默认会向所有的注册中心中注册应用级的地址,供消费端服务发现使用。
参考示例
# 双注册 dubbo: registry: register-mode: all # 仅应用级注册 dubbo: registry: register-mode: instance 注册中心地址参数配置 注册中心的地址上可以配置 registry-type=service 来显示指定该注册中心为应用级服务发现的注册中心,带上此配置的注册中心将只进行应用级服务发现。
<dubbo:registry address="nacos://${nacos.address:127.0.0.1}:8848?registry-type=service"/> 消费端订阅模式 FORCE_INTERFACE:仅接口级订阅,行为和 Dubbo 2.7 及以前版本一致。 APPLICATION_FIRST:接口级 + 应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证迁移过程中最大的兼容性。(注:由于存在同时进行订阅的行为,此模式下内存占用会有一定的增长,因此在所有服务端都升级到 Dubbo 3.0 以后建议迁移到 FORCE_APPLICATION 模式降低内存占用) FORCE_APPLICATION:仅应用级订阅,将只采用全新的服务发现模型。
-消费端配置 默认配置(不需要配置) 升级到 Dubbo 3.0 后默认行为为接口级+应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证最大的兼容性。'><meta itemprop=datePublished content="2024-05-13T00:00:00+00:00"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="118"><meta itemprop=keywords content="Java,服务发现"><meta name=twitter:card content="summary"><meta name=twitter:title content="应用级服务发现迁移示例"><meta name=twitter:description content='应用级服务发现为应用间服务发现的协议,因此使用应用级服务发现需要消费端和服务端均升级到 Dubbo [...]
+消费端配置 默认配置(不需要配置) 升级到 Dubbo 3.0 后默认行为为接口级+应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证最大的兼容性。'><meta itemprop=datePublished content="2024-05-13T00:00:00+00:00"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="118"><meta itemprop=keywords content="Java,服务发现"><meta name=twitter:card content="summary"><meta name=twitter:title content="应用级服务发现迁移示例"><meta name=twitter:description content='应用级服务发现为应用间服务发现的协议,因此使用应用级服务发现需要消费端和服务端均升级到 Dubbo [...]
开启方式 服务端 应用升级到 Dubbo 3.0 后,服务端自动开启接口级 + 应用级双注册功能,默认无需开发者修改任何配置
消费端 应用升级到 Dubbo 3.0 后,消费端自动始接口级 + 应用级双订阅功能,默认无需开发者修改任何配置。建议在服务端都升级到 Dubbo 3.0 并开启应用级注册以后通过规则配置消费端关闭接口级订阅,释放对应的内存空间。
详细说明 服务端配置 全局开关 应用配置(可以通过配置文件或者 -D 指定)dubbo.application.register-mode 为 instance(只注册应用级)、all(接口级+应用级均注册)开启全局的注册开关,配置此开关后,默认会向所有的注册中心中注册应用级的地址,供消费端服务发现使用。
@@ -369,8 +369,8 @@ FORCE_APPLICATION:仅应用级订阅,将只采用全新的服务发现模型
</span></span><span style=display:flex><span>referenceConfig.setParameters(<span style=color:#719e07>new</span> HashMap<span style=color:#719e07><></span>());
</span></span><span style=display:flex><span>referenceConfig.getParameters().put(<span style=color:#2aa198>"migration.step"</span>, mode);
</span></span><span style=display:flex><span><span style=color:#719e07>return</span> referenceConfig.get();
-</span></span></code></pre></div><ol start=3><li>动态配置(优先级最高,可以在运行时修改配置)</li></ol><p>此配置需要基于配置中心进行推送,Key 为应用名 + <code>.migration</code> (如 <code>demo-application.migraion</code>),Group 为 <code>DUBBO_SERVICEDISCOVERY_MIGRATION</code>。规则体配置详见<a href=../migration-service-discovery/>接口级服务发现迁移至应用级服务发现指南</a>。</p><blockquote><p><a href=https://github.com/apache/dubbo-samples/blob/master/2-advanced/dubbo-samples-service-discovery/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-c [...]
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a class="btn btn-primary disabled"><span class=me-1>←</span>上一页</a></li><li><a href=/zh-cn/blog/2024/05/13/%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%9C%B0%E5%9D%80%E8%BF%81%E7%A7%BB%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E/ aria-label="下一页 - 应用级服务发现地址迁移规则说明" class="btn btn-primary">下一页<span class=ms-1>→</span></a></li></ul><div class=td-page-meta [...]
+</span></span></code></pre></div><ol start=3><li>动态配置(优先级最高,可以在运行时修改配置)</li></ol><p>此配置需要基于配置中心进行推送,Key 为应用名 + <code>.migration</code> (如 <code>demo-application.migraion</code>),Group 为 <code>DUBBO_SERVICEDISCOVERY_MIGRATION</code>。规则体配置详见<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery>接口级服务发现迁移至应用级服务发现指南</a>。</p><blockquote><p><a href=https://github.com/apache/dubbo-samples/blob/master/2-advanced/dubbo-samples-service-disc [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a class="btn btn-primary disabled"><span class=me-1>←</span>上一页</a></li><li><a href=/zh-cn/blog/2024/05/13/%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%9C%B0%E5%9D%80%E8%BF%81%E7%A7%BB%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E/ aria-label="下一页 - 应用级服务发现地址迁移规则说明" class="btn btn-primary">下一页<span class=ms-1>→</span></a></li></ul><div class=td-page-meta [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//blog/java/proposals/service-discovery-samples?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%2A+Edit+the+%22f [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%ba%94%e7%94%a8%e7%ba%a7%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0%e8%bf%81%e7%a7%bb%e7%a4%ba%e4%be%8b" 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><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=#服务端配置>服务端配置</a></li><li><a href=#消费端订阅模式>消费端订阅模式</a></li><li><a href=#消费端配置>消费端配置</a></li></ul></li></ul></nav><div class="taxonomy taxonomy-terms-cloud taxo-tags"><h5 class=taxonomy-title>Tags</h5><ul class [...]
diff --git a/zh-cn/blog/java/codeanalysis/3.0.8/index.xml b/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
index 98c561fbd2a..16c51a1b095 100644
--- a/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
+++ b/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
@@ -142,7 +142,7 @@
<td>timeout</td>
<td>long</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的timeout</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的timeout</td>
<td>性能调优</td>
<td>服务方法调用超时时间(毫秒)</td>
<td>1.0.5以上版本</td>
@@ -152,7 +152,7 @@
<td>retries</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的retries</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的retries</td>
<td>性能调优</td>
<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>
<td>2.0.0以上版本</td>
@@ -162,7 +162,7 @@
<td>connections</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的connections</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的connections</td>
<td>性能调优</td>
<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>
<td>2.0.0以上版本</td>
@@ -172,7 +172,7 @@
<td>loadbalance</td>
<td>string</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的loadbalance</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的loadbalance</td>
<td>性能调优</td>
<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
<td>2.0.0以上版本</td>
@@ -182,7 +182,7 @@
<td>async</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的async</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的async</td>
<td>性能调优</td>
<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>
<td>2.0.0以上版本</td>
@@ -192,7 +192,7 @@
<td>generic</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的generic</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的generic</td>
<td>服务治理</td>
<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>
<td>2.0.0以上版本</td>
@@ -202,7 +202,7 @@
<td>check</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的check</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的check</td>
<td>服务治理</td>
<td>启动时检查提供者是否存在,true报错,false忽略</td>
<td>2.0.0以上版本</td>
@@ -284,7 +284,7 @@
<td>可选</td>
<td>缺省将从所有注册中心获服务列表后合并结果</td>
<td>配置关联</td>
- <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<a href="#ZgotmplZ">dubbo:registry</a>的id属性,多个注册中心ID用逗号分隔</td>
+ <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<code>&lt;dubbo:registry&gt;</code>的id属性,多个注册中心ID用逗号分隔</td>
<td>2.0.0以上版本</td>
</tr>
<tr>
@@ -855,7 +855,7 @@ exportServiceInternal方法:</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-java" data-lang="java"><span style="display:flex;"><span>.protocol(<span style="color:#719e07">new</span> ProtocolConfig(CommonConstants.DUBBO, <span style="color:#719e07">-</span>1))
</span></span></code></pre></div><h2 id="112--协议的配置相关">11.2 协议的配置相关</h2>
<p>下面的配置来源于官网</p>
-<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <a href="#ZgotmplZ">dubbo:protocol</a> 标签,并在 <a href="#ZgotmplZ">dubbo:service</a> 中通过 protocol 属性指定使用的协议。</p>
+<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <code>&lt;dubbo:protocol&gt;</code> 标签,并在 <code>&lt;dubbo:service&gt;</code> 中通过 protocol 属性指定使用的协议。</p>
<table>
<thead>
<tr>
@@ -1153,12 +1153,12 @@ exportServiceInternal方法:</p>
</tr>
<tr>
<td>address</td>
- <td><a href="#ZgotmplZ">host:port</a></td>
+ <td><code>&lt;host:port&gt; </code></td>
<td>string</td>
<td><strong>必填</strong></td>
<td></td>
<td>服务发现</td>
- <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<a href="#ZgotmplZ">dubbo:registry</a>标签</td>
+ <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<code>&lt;dubbo:registry&gt;</code>标签</td>
<td>1.0.16以上版本</td>
</tr>
<tr>
diff --git a/zh-cn/blog/java/demos/index.xml b/zh-cn/blog/java/demos/index.xml
index 9d4181c3056..bd64047d7b7 100644
--- a/zh-cn/blog/java/demos/index.xml
+++ b/zh-cn/blog/java/demos/index.xml
@@ -247,10 +247,10 @@ Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能
<img src="https://dubbo.apache.org/imgs/blog/dubbo-directly.jpg" alt="subscribe-only"></p>
<p>可以通过以下几种配置来指定IP调用</p>
<ul>
-<li>XML 配置: 如果是线上需求需要点对点,可在 <a href="#ZgotmplZ">dubbo:reference</a> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
+<li>XML 配置: 如果是线上需求需要点对点,可在 <code>&lt;dubbo:reference&gt;</code> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
<code>&lt;dubbo:reference id=&quot;xxxService&quot; interface=&quot;com.alibaba.xxx.XxxService&quot; url=&quot;dubbo://localhost:20890&quot; /&gt;</code></li>
<li>通过-D参数指定: 在 JVM 启动参数中加入-D参数映射服务地址,如:<code>java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
-<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <a href="#ZgotmplZ">dubbo:reference</a> 中的配置,如:
+<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <code>&lt;dubbo:reference&gt;</code> 中的配置,如:
<code>java -Ddubbo.resolve.file=xxx.properties</code><br>
然后在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者 URL:<code>com.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
</ul>
diff --git a/zh-cn/blog/java/proposals/index.xml b/zh-cn/blog/java/proposals/index.xml
index 138fb979353..c559128595b 100644
--- a/zh-cn/blog/java/proposals/index.xml
+++ b/zh-cn/blog/java/proposals/index.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>方案设计 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/blog/java/proposals/</link><description>Recent content in 方案设计 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/blog/java/proposals/index.xml" rel="self" type="application/rss+xml"/><item><title>如果从接口级服务发现平滑迁移到应用级服务 [...]
<blockquote>
-<p>如关心迁移背后工作原理,请参考 <a href="../service-discovery-rule">迁移规则详情与工作原理</a></p>
+<p>如关心迁移背后工作原理,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule">迁移规则详情与工作原理</a></p>
</blockquote>
<h2 id="1-快速升级步骤">1 快速升级步骤</h2>
<p>简单的修改 pom.xml 到最新版本就可以完成升级,如果要迁移到应用级地址,只需要调整开关控制 3.x 版本的默认行为。</p>
diff --git a/zh-cn/docs/advanced/index.xml b/zh-cn/docs/advanced/index.xml
index f8954ae4be5..14db25dea95 100644
--- a/zh-cn/docs/advanced/index.xml
+++ b/zh-cn/docs/advanced/index.xml
@@ -702,7 +702,7 @@
</span></span><span style="display:flex;"><span>...
</span></span></code></pre></div><h2 id="有关泛化类型的进一步解释">有关泛化类型的进一步解释</h2>
<p>假设存在 POJO 如:</p></description></item><item><title>Protobuf</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/migration-triple/#%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%94%A8%E6%88%B7">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-triple">最新版本</a>。</p>
</div>
@@ -733,7 +733,7 @@
</span></span><span style="display:flex;"><span> <span style="color:#dc322f">string</span> message = <span style="color:#2aa198">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></description></item><item><title>GoogleProtobuf 对象泛化调用</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic-reference/#protobuf-%E5%AF%B9%E8%B1%A1%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<code>最新版本</code>。</p>
</div>
@@ -2012,7 +2012,7 @@ FORCE_APPLICATION:只启用新模式下应用级服务发现的注册中心逻
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;dump.directory&#34;</span> value=<span style="color:#2aa198">&#34;/tmp&#34;</span> <span style="color:#268bd2">/&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/dubbo:application&gt;</span>
</span></span></code></pre></div></description></item><item><title>Netty4 支持</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/netty4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/netty4/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#protocol">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.protocol">最新版本</a>。</p>
</div>
diff --git a/zh-cn/docs/advanced/netty4/index.html b/zh-cn/docs/advanced/netty4/index.html
index 8109c16f919..408666a7e7e 100644
--- a/zh-cn/docs/advanced/netty4/index.html
+++ b/zh-cn/docs/advanced/netty4/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/netty4/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.p [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/netty4/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.p [...]
<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>
@@ -222,7 +222,7 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:provider</span> server=<span style=color:#2aa198>"netty4"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p>consumer 端:</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><dubbo:consumer</span> client=<span style=color:#2aa198>"netty4"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><div class="alert alert-warning" role=alert><h4 class=alert-heading>注意</h4><ol><li>provider 端如需不同的协议使用不同的通信层框架,请配置多个 protocol 分别设置</li><li>consumer 端请使用如下形式:</li></ol><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><dubbo:consumer</span> client=<span style=color:#2aa198>"netty" [...]
@@ -232,7 +232,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:reference</span> <span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dubbo:consumer></span>
</span></span></code></pre></div><p>接下来我们会继续完善: 性能测试指标及与 netty3 版本的性能测试对比,我们会提供一份参考数据</p></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/advanced/netty4?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%2A+Edit+the+%22front+matter%22+section+at [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Netty4%20%e6%94%af%e6%8c%81" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/advanced/pb-generic-reference/index.html b/zh-cn/docs/advanced/pb-generic-reference/index.html
index 020ef2b9ab7..f153cc9aa47 100644
--- a/zh-cn/docs/advanced/pb-generic-reference/index.html
+++ b/zh-cn/docs/advanced/pb-generic-reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
<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>
@@ -222,7 +222,7 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
一般泛化调用只能用于生成的服务参数为POJO的情况,而 GoogleProtobuf 的对象是基于 Builder 生成的非正常POJO,可以通过 protobuf-json 泛化调用。</p><p>GoogleProtobuf 序列化相关的Demo可以参考 <a href=https://github.com/apache/dubbo-samples/tree/master/3-extensions/serialization/dubbo-samples-protobuf>protobuf-demo</a></p><h2 id=通过spring对google-protobuf对象泛化调用>通过Spring对Google Protobuf对象泛化调用</h2><p>在 Spring 中配置声明 generic = “protobuf-json”</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;- [...]
</span></span></code></pre></div><p>在 Java 代码获取 barService 并开始泛化调用:</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-java data-lang=java><span style=display:flex><span>GenericService barService <span style=color:#719e07>=</span> (GenericService) applicationContext.getBean(<span style=color:#2aa198>"barService"</span>);
</span></span><span style=display:flex><span>Object result <span style=color:#719e07>=</span> barService.$invoke(<span style=color:#2aa198>"sayHello"</span>,<span style=color:#719e07>new</span> String<span style=color:#719e07>[]</span>{<span style=color:#2aa198>"org.apache.dubbo.protobuf.GooglePbBasic$CDubboGooglePBRequestType"</span>}, <span style=color:#719e07>new</span> Object<span style=color:#719e07>[]</span>{<span style=color:#2aa198>"{\"double\":0.0,\&# [...]
@@ -276,7 +276,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2><version></span>${dubbo.version}<span style=color:#268bd2></version></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dependency></span>
</span></span></code></pre></div><p>从服务元数据中也可以比较容易构建泛化调用对象。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/advanced/pb-generic-reference?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%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=GoogleProtobuf%20%e5%af%b9%e8%b1%a1%e6%b3%9b%e5%8c%96%e8%b0%83%e7%94%a8" 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><nav id=TableOfContents><ul><li><a href=#通过spring对google-protobuf对象泛化调用>通过Spring对Google Protobuf对象泛化调用</a></li><li><a href=#通过-api-方式对-google-protobuf-对象泛化调用>通过 API 方式对 Google Protobuf 对象泛化调用</a></li><li><a href=#googleprotobuf-对象的处理>GoogleProtobuf 对象的处理</a></li><li><a href=#googleprotobuf-服务元数据解析>GoogleProtobuf 服务元数据解析</a></li></ul></nav></div></div></div></div><footer><di [...]
diff --git a/zh-cn/docs/advanced/protobuf-idl/index.html b/zh-cn/docs/advanced/protobuf-idl/index.html
index 907d1e3db99..cf3b53616e0 100644
--- a/zh-cn/docs/advanced/protobuf-idl/index.html
+++ b/zh-cn/docs/advanced/protobuf-idl/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]), [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]), [...]
<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>
@@ -222,7 +222,7 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
2.7.5 版本通过支持 Protobuf IDL 实现了语言中立的服务定义。</p><p>日后,不论我们使用什么语言版本来开发 Dubbo 服务,都可以直接使用 IDL 定义如下服务,具体请<a href=https://github.com/apache/dubbo-samples/tree/master/3-extensions/serialization/dubbo-samples-protobuf>参见示例</a></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>syntax = <span style=color:#2aa198>"proto3"</span>;
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>option java_multiple_files = <span style=color:#cb4b16>true</span>;
@@ -247,7 +247,7 @@
</span></span><span style=display:flex><span> <span style=color:#dc322f>string</span> message = <span style=color:#2aa198>1</span>;
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/advanced/protobuf-idl?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%2A+Edit+the+%22front+matter%22+sect [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Protobuf" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/lifecycle/brief/index.html b/zh-cn/docs/references/lifecycle/brief/index.html
index 01485677fdb..daf03d5ad63 100644
--- a/zh-cn/docs/references/lifecycle/brief/index.html
+++ b/zh-cn/docs/references/lifecycle/brief/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/lifecycle/brief/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.ph [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/lifecycle/brief/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.ph [...]
<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>
@@ -222,7 +222,7 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>httpGet</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>path</span>: /live
</span></span><span style=display:flex><span> <span style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
@@ -241,7 +241,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>30</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
</span></span></code></pre></div><p>目前三种探针均有对应的接口,路径为 QOS 中的命令,端口信息请根据 QOS 配置进行对应修改(默认端口为 22222)。其他参数请参考<a href=https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/>官方文档说明</a>。</p><p>注:为了使 Kubernetes 集群能够正常访问到探针,需要开启 QOS 允许远程访问,此操作有可能带来安全风险,请仔细评估后再打开。</p><h2 id=实现细节>实现细节</h2><p>三种探针对应的 SPI 接口如下:</p><ul><li>livenessProbe: <code>org.apache.dubbo.qos.probe.LivenessProbe</code></li><li>readinessProbe: <code>org.apache.dubbo.qos.probe.Readin [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/lifecycle/brief?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%2A+Edit+the+%22front+matter%22 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95" 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><nav id=TableOfContents><ul><li><a href=#使用方法>使用方法</a></li><li><a href=#实现细节>实现细节</a><ul><li></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-conta [...]
diff --git a/zh-cn/docs/references/lifecycle/index.html b/zh-cn/docs/references/lifecycle/index.html
index e1023e5c5c0..a8c40d8ef81 100644
--- a/zh-cn/docs/references/lifecycle/index.html
+++ b/zh-cn/docs/references/lifecycle/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/lifecycle/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]),_ [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/lifecycle/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.php"]),_ [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/lifecycle?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%2A+Edit+the+%22front+matter%22+secti [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Kubernetes%20%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f%e5%af%b9%e9%bd%90%e6%8e%a2%e9%92%88" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/lifecycle/index.xml b/zh-cn/docs/references/lifecycle/index.xml
index 011778807d3..2b5ff504996 100644
--- a/zh-cn/docs/references/lifecycle/index.xml
+++ b/zh-cn/docs/references/lifecycle/index.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kubernetes 生命周期对齐探针 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/docs/references/lifecycle/</link><description>Recent content in Kubernetes 生命周期对齐探针 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/docs/references/lifecycle/index.xml" rel="self" type="application/r [...]
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe/">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<code>最新版本</code>)。</p>
</div>
diff --git a/zh-cn/docs/references/xml/dubbo-application/index.html b/zh-cn/docs/references/xml/dubbo-application/index.html
index e57a568d2c7..378436ca524 100644
--- a/zh-cn/docs/references/xml/dubbo-application/index.html
+++ b/zh-cn/docs/references/xml/dubbo-application/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-application/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"mat [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-application/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"mat [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-application?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%2A+Edit+the+%22front+mat [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:application" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-config-center/index.html b/zh-cn/docs/references/xml/dubbo-config-center/index.html
index 9240a224a51..45638451b0a 100644
--- a/zh-cn/docs/references/xml/dubbo-config-center/index.html
+++ b/zh-cn/docs/references/xml/dubbo-config-center/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"m [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"m [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-config-center?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%2A+Edit+the+%22front+m [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:config-center" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-consumer/index.html b/zh-cn/docs/references/xml/dubbo-consumer/index.html
index 56f013cf43d..85e4deae85b 100644
--- a/zh-cn/docs/references/xml/dubbo-consumer/index.html
+++ b/zh-cn/docs/references/xml/dubbo-consumer/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-consumer?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%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:consumer" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-module/index.html b/zh-cn/docs/references/xml/dubbo-module/index.html
index ced06f48c9b..610fcfc9c88 100644
--- a/zh-cn/docs/references/xml/dubbo-module/index.html
+++ b/zh-cn/docs/references/xml/dubbo-module/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.p [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo.p [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-module?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%2A+Edit+the+%22front+matter%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:module" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-monitor/index.html b/zh-cn/docs/references/xml/dubbo-monitor/index.html
index 0bc5a24ebcf..b06c09b2472 100644
--- a/zh-cn/docs/references/xml/dubbo-monitor/index.html
+++ b/zh-cn/docs/references/xml/dubbo-monitor/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo. [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo. [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-monitor?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%2A+Edit+the+%22front+matter% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:monitor" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-protocol/index.html b/zh-cn/docs/references/xml/dubbo-protocol/index.html
index c89e24f041c..0d10ec39ff4 100644
--- a/zh-cn/docs/references/xml/dubbo-protocol/index.html
+++ b/zh-cn/docs/references/xml/dubbo-protocol/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-protocol?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%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:protocol" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-provider/index.html b/zh-cn/docs/references/xml/dubbo-provider/index.html
index c0ad244c3f8..4df745f9a61 100644
--- a/zh-cn/docs/references/xml/dubbo-provider/index.html
+++ b/zh-cn/docs/references/xml/dubbo-provider/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-provider?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%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:provider" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-reference/index.html b/zh-cn/docs/references/xml/dubbo-reference/index.html
index 7816ed0be50..f757e7e7732 100644
--- a/zh-cn/docs/references/xml/dubbo-reference/index.html
+++ b/zh-cn/docs/references/xml/dubbo-reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matom [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matom [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-reference?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%2A+Edit+the+%22front+matte [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:reference" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-registry/index.html b/zh-cn/docs/references/xml/dubbo-registry/index.html
index b5ae66e7a87..dfc084c2a40 100644
--- a/zh-cn/docs/references/xml/dubbo-registry/index.html
+++ b/zh-cn/docs/references/xml/dubbo-registry/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-registry?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%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:registry" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/dubbo-service/index.html b/zh-cn/docs/references/xml/dubbo-service/index.html
index 23b4aa75b84..5c200c13b2b 100644
--- a/zh-cn/docs/references/xml/dubbo-service/index.html
+++ b/zh-cn/docs/references/xml/dubbo-service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo. [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["setTrackerUrl",e+"matomo. [...]
<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>
@@ -222,8 +222,8 @@
<label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
<label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
<label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
-<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 [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</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/docs/>文档</a></li><li class=breadcrumb-item><a href [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//docs/references/xml/dubbo-service?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%2A+Edit+the+%22front+matter% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=dubbo:service" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/docs/references/xml/index.xml b/zh-cn/docs/references/xml/index.xml
index 16420f13dd9..9e11c588d8c 100644
--- a/zh-cn/docs/references/xml/index.xml
+++ b/zh-cn/docs/references/xml/index.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Schema 配置参考手册 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/</link><description>Recent content in Schema 配置参考手册 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/docs/references/xml/index.xml" rel="self" type="application/rss+xml"/><item><title>du [...]
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#application">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.application">最新版本</a>。</p>
</div>
@@ -164,7 +164,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:config-center</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#config-center">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.config-center">最新版本</a>。</p>
</div>
@@ -301,7 +301,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:consumer</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#consumer">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.consumer">最新版本</a>。</p>
</div>
@@ -694,7 +694,7 @@
</tbody>
</table>
<p>比如:</p></description></item><item><title>dubbo:module</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#module">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.module">最新版本</a>。</p>
</div>
@@ -755,7 +755,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:monitor</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#monitor">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.monitor">最新版本</a>。</p>
</div>
@@ -844,7 +844,7 @@
</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-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:protocol</span> name=<span style="color:#2aa198">&#34;jms&#34;</span> p:queue=<span style="color:#2aa198">&#34;xxx&#34;</span> <span style="color:#268bd2"> [...]
</span></span></code></pre></div></description></item><item><title>dubbo:protocol</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#protocol">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.protocol">最新版本</a>。</p>
</div>
@@ -1105,7 +1105,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:provider</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#provider">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.provider">最新版本</a>。</p>
</div>
@@ -1566,7 +1566,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:reference</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#reference">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties">最新版本</a>。</p>
</div>
@@ -1857,7 +1857,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:registry</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">最新版本</a>。</p>
</div>
@@ -2058,7 +2058,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:service</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#service">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties">最新版本</a>。</p>
</div>
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index 0245f97a293..48b9da9364a 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -295,7 +295,7 @@
</tbody>
</table>
<p>接口增加方法,对客户端无影响,如果该方法不是客户端需要的,客户端不需要重新部署。输入参数和结果集中增加属性,对客户端无影响,如果客户端并不需要新属性,不用重新部署。</p></description></item><item><title>dubbo:application</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-application/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-application/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#application">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.application">最新版本</a>。</p>
</div>
@@ -605,7 +605,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:config-center</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-config-center/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#config-center">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.config-center">最新版本</a>。</p>
</div>
@@ -874,7 +874,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:consumer</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-consumer/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#consumer">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.consumer">最新版本</a>。</p>
</div>
@@ -1640,7 +1640,7 @@
</tbody>
</table>
<p>比如:</p></description></item><item><title>dubbo:module</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-module/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#module">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.module">最新版本</a>。</p>
</div>
@@ -1757,7 +1757,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:monitor</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-monitor/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#monitor">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.monitor">最新版本</a>。</p>
</div>
@@ -1925,7 +1925,7 @@
</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-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:protocol</span> name=<span style="color:#2aa198">&#34;jms&#34;</span> p:queue=<span style="color:#2aa198">&#34;xxx&#34;</span> <span style="color:#268bd2"> [...]
</span></span></code></pre></div></description></item><item><title>dubbo:protocol</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-protocol/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#protocol">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.protocol">最新版本</a>。</p>
</div>
@@ -2442,7 +2442,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:provider</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-provider/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#provider">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.provider">最新版本</a>。</p>
</div>
@@ -3359,7 +3359,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:reference</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-reference/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#reference">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties">最新版本</a>。</p>
</div>
@@ -3936,7 +3936,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:registry</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-registry/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">最新版本</a>。</p>
</div>
@@ -4333,7 +4333,7 @@
</tr>
</tbody>
</table></description></item><item><title>dubbo:service</title><link>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/xml/dubbo-service/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#service">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties">最新版本</a>。</p>
</div>
@@ -5409,7 +5409,7 @@ Pixiu 的整体设计遵守以下原则:</p>
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">prometheus.io/path</span>: /management/prometheus
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">prometheus.io/port</span>: <span style="color:#2aa198">&#34;22222&#34;</span>
</span></span></code></pre></div><p>在此模式下,Dubbo 实例默认提供的 Prometheus Metrics 采集路径是:<code>/management/prometheus</code>。</p></description></item><item><title>如何在 triple 协议场景下使用 protobuf、json 序列化</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference [...]
-<p><a href="" target="_blank">Protobuf(Protocol Buffers)</a> 是由 Google 开发的一种轻量级、高效的数据交换格式,它被用于结构化数据的序列化、反序列化和传输。 相比于XML 和JSON 等文本格式,Protobuf 具有更小的数据体积、更快的解析速度和更强的可扩展性。</p>
+<p>Protobuf(Protocol Buffers) 是由 Google 开发的一种轻量级、高效的数据交换格式,它被用于结构化数据的序列化、反序列化和传输。 相比于XML 和JSON 等文本格式,Protobuf 具有更小的数据体积、更快的解析速度和更强的可扩展性。</p>
<h2 id="2-使用方式">2 使用方式</h2>
<p><strong>在使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/protocols/triple/idl/">Protobuf(IDL) 开发 triple 通信服务</a> 的时候,dubbo server 将自动启用 protobuf、protobuf-json 序列化模式支持。</strong></p>
<h3 id="21-添加依赖">2.1 添加依赖</h3>
@@ -5841,17 +5841,18 @@ userId: 123456
<h3 id="当-dubbo-作为-client-时">当 Dubbo 作为 Client 时</h3>
<p>Dubbo Client 可以访问 Dubbo 服务端 (Server) 发布的 Triple 协议服务,同时还可以访问标准的 gRPC 服务端。</p></description></item><item><title>Web 浏览器访问 Dubbo 服务</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/quick-start/</guid><description><p>基于 Dubbo3 定义的 Triple 协议,你可以轻松编写浏览器、gRPC 兼容的 RPC 服务,并让这些服务同时运行在 HTTP/1 和 HTTP/2 上。<a href="https://githu [...]
<p>Dubbo-js 已于 9 月份发布支持 Dubbo3 协议的首个 alpha 版本,它的发布将有机会彻底改变微服务前后端的架构与通信模式,让你能直接在浏览器页面或web服务器中访问后端 Dubbo RPC 服务。</p>
-<p><img src="https://dubbo.apache.org/imgs/v3/web/web-1.png" alt="dubbo-web.png"></p>
<h1 id="浏览器-web-应用示例">浏览器 Web 应用示例</h1>
<p>本示例演示了如何使用 dubbo-js 开发运行在浏览器上的 web 应用程序,web 页面将调用 dubbo node.js 开发的后端服务并生成页面内容。本示例演示基于 IDL 和非 IDL 两种编码模式。</p>
-<p><img src="https://dubbo.apache.org/imgs/v3/web/web-2.png" alt="dubbo-web.png"></p>
<h2 id="idl-模式">IDL 模式</h2>
<h3 id="前置条件">前置条件</h3>
<p>首先,我们将使用 Vite 来生成我们的前端项目模板,它内置了我们稍后需要的所有功能支持。</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>npm create vite@latest -- dubbo-web-example --template react-ts
</span></span><span style="display:flex;"><span><span style="color:#b58900">cd</span> dubbo-web-example
</span></span><span style="display:flex;"><span>npm install
-</span></span></code></pre></div><p>因为使用 Protocol Buffer 的原因,我们首先需要安装相关的代码生成工具,这包括 <code>@bufbuild/protoc-gen-es</code>、<code>@bufbuild/protobuf</code>、<code>@apachedubbo/protoc-gen-apache-dubbo-es</code>、<code>@apachedubbo/dubbo</code>。</p></description></item><item><title>XML 配置</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/xml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0 [...]
+</span></span></code></pre></div><p>因为使用 Protocol Buffer 的原因,我们首先需要安装相关的代码生成工具,这包括 <code>@bufbuild/protoc-gen-es</code>、<code>@bufbuild/protobuf</code>、<code>@apachedubbo/protoc-gen-apache-dubbo-es</code>、<code>@apachedubbo/dubbo</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-shell" data-lang="shell"><span style="display:flex;"><span>npm install @bufbuild/protoc-gen-es @bufbuild/protobuf @apachedubbo/protoc-gen-apache-dubbo-es @apachedubbo/dubbo
+</span></span></code></pre></div><h3 id="使用-proto-定义服务">使用 Proto 定义服务</h3>
+<p>现在,使用 Protocol Buffer (IDL) 来定义一个 Dubbo 服务。</p></description></item><item><title>XML 配置</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/xml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/xml/</guid><description><p>有关 XML 的详细配置项,请参见:<a href="../../references/xml">配置参考手册</a>。如果不想使用 Spring 配置,而希望通过 API 的方式进行调用,请参见:<a href="../api">API配置</a>。想知道如何使用配 [...]
<p>请在此查看文档描述的<a href="https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-spring-xml">完整示例</a></p>
<h2 id="providerxml-示例">provider.xml 示例</h2>
<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;beans</span> xmlns:xsi=<span style="color:#2aa198">&#34;http://www.w3.org/2001/XMLSchema-instance&#34;</span>
@@ -6815,9 +6816,9 @@ userId: 123456
<p>请参阅<a href="../new-contributor-guide_dev/">新的贡献者指南</a>。</p></description></item><item><title>传统基于 Zookeeper、Nacos 的注册中心部署架构,部署 Dubbo 应用到虚拟机环境</title><link>https://dubbo.apache.org/zh-cn/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/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/</guid><description><p>下图是使用 Nacos、Zookeeper 作为注册中心的典型 Dubbo 微服务部署架构。</p>
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes.png" style="max-width:650px;height:auto;" />
<h2 id="安装-nacos">安装 Nacos</h2>
-<p>请参考以下文档了解如何在本地 <a href="">安装 Nacos</a>。</p>
+<p>请参考以下文档了解如何在本地 <code>安装 Nacos</code>。</p>
<h2 id="部署应用">部署应用</h2>
-<p>我们仍然以 <a href="">快速开始</a> 中的项目为例,演示应用打包部署的具体步骤。</p>
+<p>我们仍然以 <code>快速开始</code> 中的项目为例,演示应用打包部署的具体步骤。</p>
<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-shell" data-lang="shell"><span style="display:flex;"><span>$ git clone -b master --depth <span style="color:#2aa198">1</span> https://github.com/apache/dubbo-samples
</span></span></code></pre></div><p>切换到示例目录:</p>
@@ -6846,8 +6847,7 @@ userId: 123456
<div class="alert alert-primary" role="alert">
<h4 class="alert-heading">提示</h4>
- <p>Docker 容器环境下,不同容器间用于网络通信的地址需要特别关注,因此你可能需要设置 Dubbo 进程监听或者注册到注册中心的地址,请参考以下链接了解更多内容。</p>
-<p>见 <a href="https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-docker">dubbo 通过环境变量设置 host</a></p></description></item><item><title>单端口多协议实现原理解析</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/multi-protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/multi-protocol/</guid><descrip [...]
+ <p>Docker 容器环境下,不同容器间用于网络通信的地址需要特别关注,因此你可能需要设置 Dubbo 进程监听或者注册到注册中心的地址,请参考以下链接了解更多内容。</p></description></item><item><title>单端口多协议实现原理解析</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/multi-protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/multi-protocol/</guid><description><p>通过对protocol进行配置,dubbo3可以支持端口的协议复用。
比如使用Triple协议启动端口复用后,可以在相同的端口上为服务增加
Dubbo协议支持,以及Qos协议支持。这些协议的识别都是由一个统一的端口复用
服务器进行处理的,可以用于服务的协议迁移,并且可以节约端口以及相关的资源,减少运维的复杂性。</p>
@@ -7342,7 +7342,7 @@ Dubbo协议支持,以及Qos协议支持。这些协议的识别都是由一个
<p><code>dubbo</code>、<code>triple</code> 协议都支持这种接入架构。另外,在配置 BFF 应用调用 dubbo 服务时,可以使用普通的 dubbo 配置方式,也可以使用泛化调用等方式:</p>
<ul>
-<li>配置接入 dubbo 协议时,使用 <a href="">泛化调用</a> 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
+<li>配置接入 dubbo 协议时,使用 <code>泛化调用</code> 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
<li>配置接入 triple 协议时,可以使用 http 调用方式,同样可避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
</ul>
@@ -7547,7 +7547,7 @@ Zipkin: <a href="https://github.com/openzipkin/zipkin-helm">https://github
</ol>
<h2 id="快速运行示例">快速运行示例</h2>
<h3 id="下载示例源码">下载示例源码</h3>
-<p>我们在 <a href="https://github.com/apache/dubbo-go-samples/" target="_blank">apache/dubbo-go-samples</a> 仓库维护了一系列 dubbo-go 使用示例,用来帮助用户快速学习 dubbo-go 使用方式。</p></description></item><item><title>可观测性</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</guid><description><p& [...]
+<p>我们在 <a href="https://github.com/apache/dubbo-go-samples/" target="_blank">apache/dubbo-go-samples</a> 仓库维护了一系列 dubbo-go 使用示例,用来帮助用户快速学习 dubbo-go 使用方式。</p></description></item><item><title>可观测性</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</guid><description><p& [...]
<p><strong><code>dubbo-control-plane</code> 支持可视化的展示、监控集群状态,还支持实时下发流量管控规则。</strong></p>
<h2 id="安装控制台">安装控制台</h2>
<p>为了体验效果,我们首先需要安装 dubbo-control-plane,以下是在 Linux 环境下安装 dubbo-control-plane 的具体步骤:</p>
@@ -7562,7 +7562,7 @@ Zipkin: <a href="https://github.com/openzipkin/zipkin-helm">https://github
<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>dubbo-cp run --mode universal --config conf/dubbo.yml
</span></span></code></pre></div>注意,<code>conf/dubbo.yml</code> 配置需要按需调整,指向你要连接的注册中心等后台服务,具体请查看 dubbo-control-plane 架构中依赖的后台服务。</li>
<li>访问 <code>http://xxx</code> 即可打开控制台页面。
-<img src="" alt="页面截图"></li>
+<code>页面截图</code></li>
</ol>
@@ -8023,7 +8023,7 @@ Dubbo &gt;= 3.1.6</p>
<h2 id="路由规则分类">路由规则分类</h2>
<h3 id="标签路由规则">标签路由规则</h3>
<p>标签路由通过将某一个服务的实例划分到不同的分组,约束具有特定标签的流量只能在指定分组中流转,不同分组为不同的流量场景服务,从而实现流量隔离的目的。标签路由可以作为蓝绿发布、灰度发布等场景能力的基础。</p>
-<p>标签路由规则是一个非此即彼的流量隔离方案,也就是匹配<code>标签</code>的请求会 100% 转发到有相同<code>标签</code>的实例,没有匹配<code>标签</code>的请求会 100% 转发到其余未匹配的实例。如果您需要按比例的流量调度方案,请参考示例 <a href="../../tasks/traffic-management/weight/">基于权重的按比例流量路由</a>。</p>
+<p>标签路由规则是一个非此即彼的流量隔离方案,也就是匹配<code>标签</code>的请求会 100% 转发到有相同<code>标签</code>的实例,没有匹配<code>标签</code>的请求会 100% 转发到其余未匹配的实例。如果您需要按比例的流量调度方案,请参考示例 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight">基于权重的按比例流量路由</a>。</p>
<p><code>标签</code>主要是指对 Provider 端应用实例的分组,目前有两种方式可以完成实例分组,分别是<code>动态规则打标</code>和<code>静态规则打标</code>。<code>动态规则打标</code> 可以在运行时动态的圈住一组机器实例,而 <code>静态规则打标</code> 则需要实例重启后才能生效,其中,动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。</p></description></item><item><title>魔鬼在细节</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/dev/principals/code-detail/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo [...]
<h2 id="防止空指针和下标越界">防止空指针和下标越界</h2>
<p>这是我最不喜欢看到的异常,尤其在核心框架中,我更愿看到信息详细的参数不合法异常。这也是一个编写健壮程序的开发人员,在写每一行代码都应在潜意识中防止的异常。基本上要能确保每一次写完的代码,在不测试的情况下,都不会出现这两个异常才算合格。</p>
@@ -8051,7 +8051,7 @@ Dubbo &gt;= 3.1.6</p>
<li>namespace - 配置命名空间,默认值 <code>dubbo</code>。命名空间通常用于多租户隔离,即对不同用户、不同环境或完全不关联的一系列配置进行逻辑隔离,区别于物理隔离的点是不同的命名空间使用的还是同一物理集群。</li>
<li>group - 配置分组,默认值 <code>dubbo</code>。<code>group</code> 通常用于归类一组相同类型/目的的配置项,是对 <code>namespace</code> 下配置项的进一步隔离。</li>
</ul>
-<p>参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubboconfig-center">配置说明 - 配置项手册</a> 了解 namespace 和 group 之外 config-center 开放的更多配置项。</p>
+<p>参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.config-center">配置说明 - 配置项手册</a> 了解 namespace 和 group 之外 config-center 开放的更多配置项。</p>
<div class="alert alert-info" role="alert">
@@ -8372,7 +8372,7 @@ Dubbo &gt;= 3.1.6</p>
<h2 id="开发">开发</h2>
<p>接下来以 Java 体系 Spring Boot 项目为例讲解 Dubbo 应用开发的基本步骤,整个过程非常直观简单,其他语言开发过程类似。</p>
<h3 id="创建项目">创建项目</h3>
-<p><a href="https://start.dubbo.apache.org/bootstrap.html" target="_blank">Dubbo 微服务项目脚手架</a>(支持浏览器页面、命令行和 IDE)可用于快速创建微服务项目,只需要告诉脚手架期望包含的功能或组件,脚手架最终可以帮助开发者生成具有必要依赖的微服务工程。更多脚手架使用方式的讲解,请参见任务模块的 <a href="../../tasks/develop/template/">通过模板生成项目脚手架</a></p>
+<p><a href="https://start.dubbo.apache.org/bootstrap.html" target="_blank">Dubbo 微服务项目脚手架</a>(支持浏览器页面、命令行和 IDE)可用于快速创建微服务项目,只需要告诉脚手架期望包含的功能或组件,脚手架最终可以帮助开发者生成具有必要依赖的微服务工程。更多脚手架使用方式的讲解,请参见任务模块的 <a href="https://dubbo.apache.org/zh-cn/overview/tasks/develop/template">通过模板生成项目脚手架</a></p>
<p><img src="https://dubbo.apache.org/imgs/v3/advantages/initializer.png" alt="脚手架示例图"></p>
<h3 id="开发服务">开发服务</h3>
<p><strong>1. 定义服务</strong></p>
@@ -8968,7 +8968,7 @@ Dubbo 框架自身并不能直接保证目标序列化机制的安全性。</
<li>2 服务运维元数据,用于外围运维系统如可视化控制台进行服务查询、测试等。</li>
</ul>
<h2 id="1-地址发现元数据">1 地址发现元数据</h2>
-<p>Dubbo3 中引入了 <a href="https://dubbo.apache.org/zh-cn/overview/core-features/service-discovery/#%E9%9D%A2%E5%90%91%E7%99%BE%E4%B8%87%E5%AE%9E%E4%BE%8B%E9%9B%86%E7%BE%A4%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E6%9C%BA%E5%88%B6">应用级服务发现机制</a> 用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 时代的接口级服务发现。
+<p>Dubbo3 中引入了 <a href="https://dubbo.apache.org/zh-cn/overview/what/core-features/service-discovery#%E9%9D%A2%E5%90%91%E7%99%BE%E4%B8%87%E5%AE%9E%E4%BE%8B%E9%9B%86%E7%BE%A4%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E6%9C%BA%E5%88%B6">应用级服务发现机制</a> 用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 时代的接口级服务发现。
同时为了保持 Dubbo 面向服务/接口的易用性、服务治理的灵活性,Dubbo 围绕应用级服务发现构建了一套元数据机制,即 <code>接口 - 应用映射关系</code> 与 <code>接口配置元数据</code>。</p>
<h3 id="11-接口---应用映射关系">1.1 接口 - 应用映射关系</h3>
<p>Dubbo 一直以来都能做到精确的地址发现,即只订阅 Consumer 声明要关心的服务及相关的地址列表,相比于拉取/订阅全量地址列表,这样做有很好的性能优势。
@@ -9094,7 +9094,7 @@ Dubbo 框架自身并不能直接保证目标序列化机制的安全性。</
</div>
-<p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">registry 配置参考手册</a>或通过 parameters 参数进行扩展。</p>
+<p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">registry 配置参考手册</a>或通过 parameters 参数进行扩展。</p>
<h2 id="配置中心与元数据中心">配置中心与元数据中心</h2>
<p>配置中心、元数据中心是实现 Dubbo 高阶服务治理能力会依赖的组件,如流量管控规则等,相比于注册中心通常这两个组件的配置是可选的。</p>
<p>需要注意的是,<strong>对于部分注册中心类型(如 Zookeeper、Nacos 等),Dubbo 会默认同时将其用作元数据中心和配置中心(建议保持默认开启状态)。</strong></p>
@@ -9854,7 +9854,7 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
</div>
<h2 id="部署应用">部署应用</h2>
-<p>我们仍然以 <a href="">快速开始</a> 中的项目为例,演示应用打包部署的具体步骤。</p>
+<p>我们仍然以 <code>快速开始</code> 中的项目为例,演示应用打包部署的具体步骤。</p>
<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-shell" data-lang="shell"><span style="display:flex;"><span>$ git clone -b master --depth <span style="color:#2aa198">1</span> https://github.com/apache/dubbo-samples
</span></span></code></pre></div><p>切换到示例目录:</p>
@@ -9960,9 +9960,9 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
</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-java" data-lang="java"><span style="display:flex;"><span>MetadataReportConfig metadataConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> MetadataReportConfig();
</span></span><span style="display:flex;"><span>metadataConfig.setAddress(<span style="color:#2aa198">&#34;nacos://127.0.0.1:8848&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">Nacos 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>完整配置参数请参考 <a href="../../config/properties/#metadata-report-config">metadata-report-config</a>。</p>
+<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.metadata-report">metadata-report-config</a>。</p>
<h2 id="4-工作原理">4 工作原理</h2>
<h3 id="41-服务运维元数据">4.1 <a href="../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE">服务运维元数据</a></h3>
<p>在 Nacos 的控制台上可看到服务提供者、消费者注册的服务运维相关的元数据信息:</p>
@@ -10372,7 +10372,7 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
</span></span></code></pre></div><p><a href="https://github.com/apache/dubbo-samples/blob/master/3-extensions/protocol/dubbo-samples-triple/src/main/proto/greeter.proto">Java 侧的接口定义</a></p>
<h2 id="3-运行-rust-版本的-dubbo-consumer">3 运行 Rust 版本的 Dubbo consumer</h2>
<p>Rust 版本的 Dubbo consumer 示例源码见<a href="https://github.com/apache/dubbo-rust/tree/main/examples/greeter">https://github.com/apache/dubbo-rust/tree/main/examples/greeter</a>。</p></description></item><item><title>Dubbo SPI 插件及详情</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi [...]
-<p>具体可参见本文下方的 <a href="https://dubbo.apache.org/zh-cn/#%e6%89%a9%e5%b1%95%e7%82%b9%e6%b1%87%e6%80%bb">Dubbo SPI 扩展定义汇总</a>。</p>
+<p>具体可参见本文下方的 <code>Dubbo SPI 扩展定义汇总</code></p>
<img src="https://dubbo.apache.org/imgs/v3/concepts/extension-use.png" style="max-width:600px;height:auto;">
<h2 id="扩展点汇总">扩展点汇总</h2>
<h3 id="生命周期与事件回调">生命周期与事件回调</h3>
@@ -11344,13 +11344,13 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
<h2 id="编程模式">编程模式</h2>
<p>使用 triple 协议时,开发者可以使用 <code>Java Interface</code>、<code>Protobuf(IDL)</code> 两种方式定义 RPC 服务,两种服务定义方式的协议能力是对等的,仅影响开发者的编程体验、序列化方式,具体选用那种开发模式,取决于使用者的业务背景。</p>
<h3 id="java接口">Java接口</h3>
-<p><strong>适合于 Dubbo 老用户、没有跨语言诉求的开发团队,具备学习成本低的优势,<a href="">Dubbo2 老用户可以零成本切换到该协议</a></strong>。</p>
+<p>适合于 Dubbo 老用户、没有跨语言诉求的开发团队,具备学习成本低的优势,<code>Dubbo2 老用户可以零成本切换到该协议</code>。</p>
<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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">DemoService</span> {
</span></span><span style="display:flex;"><span> String <span style="color:#268bd2">sayHello</span>(String name);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>这种模式下,序列化方式可以选用 Hessian、JSON、Kryo、JDK、自定义扩展等任意编码协议。在使用体验上,可以说与老版本 dubbo 协议没有任何区别,只需要改一个 protocol 配置项即可,因此对于 dubbo 协议迁移到 triple 也会更平滑。</p>
-<p>请通过【进阶学习 - 通信协议】查看 <a href="">java Interface + Triple 协议的具体使用示例</a>。</p>
+<p>请通过【进阶学习 - 通信协议】查看 <code>java Interface + Triple 协议的具体使用示例</code>。</p>
<h3 id="protobuf">Protobuf</h3>
<p>使用 Protobuf(IDL) 的方式定义服务,<strong>适合于当前或未来有跨语言诉求的开发团队,同一份 IDL 服务可同时用于 Java/Go/Node.js 等多语言微服务开发,劣势是学习成本较高</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-Protobuf" data-lang="Protobuf"><span style="display:flex;"><span>syntax <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;proto3&#34;</span>;
@@ -11553,7 +11553,7 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
</div>
-<p>在应用启动成功后,本地进程使用 <a href="overview/mannual/java-sdk/tasks/protocols/triple" target="_blank_">Triple </a>协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</p>
+<p>在应用启动成功后,本地进程使用 Triple 协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</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-text" data-lang="text"><span style="display:flex;"><span>Started QuickStartApplication in 4.38 seconds (process running for 4.629)
</span></span><span style="display:flex;"><span>Receive result ======&gt; Hello world
</span></span></code></pre></div><p>可直接使用 cURL 测试服务是否已经正常运行:</p></description></item><item><title>使用原生 API 开发 Dubbo 应用</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/api/</guid><description><p>你可能已经注意到了,文档中大部分的功能、示例都是基于 Spring Boot 模式编写的,但 Spring Boot 或 Spring 仅仅是 Dubb [...]
@@ -11727,8 +11727,8 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
<p>Maven 项目结构:</p></description></item><item><title>动态调整服务超时时间</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/</guid><description><p>Dubbo 提供动态调整服务超时时间的能力,在无需重启应用的情况下调整服务的超时时间,这对于临时解决一些服务上下游依赖不稳定而导致的调用失败问题非常有效。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>商城项目通过 <code>org.apache.dubbo.samples.UserService</code> 提供用户信息管理服务,访问 <code>http://localhost:8080/</code> 打开商城并输入任意账号密码,点击 <code>Login</code> 即可以正常登录到系统。</p>
@@ -11757,10 +11757,7 @@ Istio 安装文档(<a href="https://istio.io/latest/docs/setup/getting-starte
</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">side</span>: provider
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">parameters</span>:
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">timeout</span>: <span style="color:#2aa198">2000</span>
-</span></span></code></pre></div><p>从 <code>UserService</code> 服务提供者视角,将超时时间总体调整为 2s。</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">parameters</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">timeout</span>: <span style="color:#2aa198">2000</span>
-</span></span></code></pre></div><p><code>side: provider</code> 配置会将规则发送到服务提供方实例,所有 <code>UserService</code> 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。</p></description></item><item><title>动态配置中心</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/config-center/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/config-center/</guid>< [...]
+</span></span></code></pre></div><p>从 <code>UserService</code> 服务提供者视角,将超时时间总体调整为 2s。</p></description></item><item><title>动态配置中心</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/config-center/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/config-center/</guid><description><p>配置中心(v2.7.0)在 Dubbo 中承担两个职责:</p>
<ol>
<li>外部化配置。启动配置的集中式存储 (简单理解为 dubbo.properties 的外部化存储)。</li>
<li>服务治理。服务治理规则的存储与通知。</li>
@@ -11946,8 +11943,8 @@ dubbo rust目前还没有实现对于<strong>应用粒度</strong>
<p>使用模式与 <a href="https://dubbo.apache.org/zh/overview/core-features/traffic/tag-rule/">标签路由文档</a>中的模式类似,但配置格式略有不同,以下是标签路由规则示例</p></description></item><item><title>通过重试提高服务调用成功率</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/</guid><description><p>在服务初次调用失败 [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>成功登录商城项目后,商城会默认在首页展示当前登录用户的详细信息。</p>
@@ -13372,7 +13369,7 @@ Dubbo 定义了一些中心化组件,这包括:</p>
<p>如上图所示,Dubbo 代理会自动加载 Filter 实现并将它们组装到调用链路。Filter 是一个标准的 SPI 定义,框架按照一定的激活规则自动加载 Filter 实现。</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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@SPI</span>(scope <span style="color:#719e07">=</span> ExtensionScope.MODULE)
</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">Filter</span> <span style="color:#268bd2">extends</span> BaseFilter {}
-</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <a href="">SPI 扩展 Activate 介绍</a>。</p>
+</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <code>SPI 扩展 Activate 介绍</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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@Activate</span>(group <span style="color:#719e07">=</span> PROVIDER)
</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">AccessLogFilter</span> <span style="color:#268bd2">implements</span> Filter {}
</span></span></code></pre></div><h3 id="关闭自动加载">关闭自动加载</h3>
@@ -13682,9 +13679,9 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
</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-java" data-lang="java"><span style="display:flex;"><span>ConfigCenterConfig configCenter <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ConfigCenterConfig();
</span></span><span style="display:flex;"><span>configCenter.setAddress(<span style="color:#2aa198">&#34;nacos://127.0.0.1:8848&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">Nacos 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>如要开启认证鉴权,请参考 <a href="../../registry/nacos/#31-%E8%AE%A4%E8%AF%81">Nacos 注册中心 - 启用认证鉴权</a></p>
+<p>如要开启认证鉴权,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用认证鉴权</a></p>
<h3 id="31-外部化配置">3.1 外部化配置</h3>
<h4 id="311-全局外部化配置">3.1.1 全局外部化配置</h4>
<p><strong>1. 应用开启 config-center 配置</strong></p>
@@ -13943,18 +13940,18 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: nacos://${nacos.address:127.0.0.1}:8848?username=nacos&amp;password=nacos
</span></span></code></pre></div><h3 id="dubbo">dubbo</h3>
<ul>
-<li><a href="../../properties#dubboapplication"><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li>
-<li><a href="../../properties#dubboconfig-center"><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li>
-<li><a href="../../properties#dubboconsumer"><strong>dubbo.consumer</strong> - <code>org.apache.dubbo.config.ConsumerConfig</code></a></li>
-<li><a href="../../properties#dubbometadata-report"><strong>dubbo.metadata-report</strong> - <code>org.apache.dubbo.config.MetadataReportConfig</code></a></li>
-<li><a href="../../properties#dubboprotocol"><strong>dubbo.protocol</strong> - <code>org.apache.dubbo.config.ProtocolConfig</code></a></li>
-<li><a href="../../properties#dubboprovider"><strong>dubbo.provider</strong> - <code>org.apache.dubbo.config.ProviderConfig</code></a></li>
-<li><a href="../../properties#dubboregistry"><strong>dubbo.registry</strong> - <code>org.apache.dubbo.config.RegistryConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.application"><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.config-center"><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.consumer"><strong>dubbo.consumer</strong> - <code>org.apache.dubbo.config.ConsumerConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.metadata-report"><strong>dubbo.metadata-report</strong> - <code>org.apache.dubbo.config.MetadataReportConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.protocol"><strong>dubbo.protocol</strong> - <code>org.apache.dubbo.config.ProtocolConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.provider"><strong>dubbo.provider</strong> - <code>org.apache.dubbo.config.ProviderConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.registry"><strong>dubbo.registry</strong> - <code>org.apache.dubbo.config.RegistryConfig</code></a></li>
<li><a href="../../properties#dubbometrics"><strong>dubbo.metrics</strong> - <code>org.apache.dubbo.config.MetricsConfig</code></a></li>
<li><a href="../../properties#dubbotracing"><strong>dubbo.tracing</strong> - <code>org.apache.dubbo.config.TracingConfig</code></a></li>
<li><a href="../../properties#dubbossl"><strong>dubbo.ssl</strong> - <code>org.apache.dubbo.config.SslConfig</code></a></li>
-<li><del><a href="../../properties#dubbomonitor"><strong>dubbo.monitor</strong> - <code>org.apache.dubbo.config.MonitorConfig</code></a></del></li>
-<li><del><a href="../../properties#dubbomodule"><strong>dubbo.module</strong> - <code>org.apache.dubbo.config.ModuleConfig</code></a></del></li>
+<li><del><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.monitor"><strong>dubbo.monitor</strong> - <code>org.apache.dubbo.config.MonitorConfig</code></a></del></li>
+<li><del><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.module"><strong>dubbo.module</strong> - <code>org.apache.dubbo.config.ModuleConfig</code></a></del></li>
</ul>
<h3 id="dubbometrics">dubbo.metrics</h3>
<ul>
@@ -13966,7 +13963,7 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
</ul>
<h3 id="dubbotracing">dubbo.tracing</h3>
<ul>
-<li><a href="../../properties#dubbotracingbaggage.correlation"><strong>dubbo.tracing.baggage.correlation</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig$Correlation</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/"><strong>dubbo.tracing.baggage.correlation</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig$Correlation</code></a></li>
<li><a href="../../properties#dubbotracingtracing-exporterotlp-config"><strong>dubbo.tracing.tracing-exporter.otlp-config</strong> - <code>org.apache.dubbo.config.nested.ExporterConfig$OtlpConfig</code></a></li>
<li><a href="../../properties#dubbotracingtracing-exporterzipkin-config"><strong>dubbo.tracing.tracing-exporter.zipkin-config</strong> - <code>org.apache.dubbo.config.nested.ExporterConfig$ZipkinConfig</code></a></li>
<li><a href="../../properties#dubbotracingbaggage"><strong>dubbo.tracing.baggage</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig</code></a></li>
@@ -14426,9 +14423,9 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
</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-java" data-lang="java"><span style="display:flex;"><span>MetadataReportConfig metadataConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> MetadataReportConfig();
</span></span><span style="display:flex;"><span>metadataConfig.setAddress(<span style="color:#2aa198">&#34;zookeeper://127.0.0.1:2181&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/zookeeper/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-zookeeper">zookeeper 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/">zookeeper 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbometadata-report">metadata-report-config</a>。</p>
+<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.metadata-report">metadata-report-config</a>。</p>
<h2 id="4-工作原理">4 工作原理</h2>
<h3 id="41-服务运维元数据">4.1 <a href="../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE">服务运维元数据</a></h3>
<p>Zookeeper 基于树形结构进行数据存储,它的元数据信息位于以下节点:</p>
@@ -14578,8 +14575,8 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
<p>配置文件加载错,也是经常碰到的问题。用户通常会和你说:“我配置的很正确啊,不信我发给你看下,但就是报错”。然后查一圈下来,原来他发过来的配置根本没加载,平台很多产品都会在 classpath 下放一个约定的配置,如果项目中有多个,通常会取JVM加载的第一个,为了不被这么低级的问题折腾,和上面的重复jar包一样,在配置加载的地方,加上:</p></description></item><item><title>通过动态开启访问日志跟踪服务调用情况</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/ac [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>商城的所有用户服务都由 <code>User</code> 应用的 UserService 提供,通过这个任务,我们为 <code>User</code> 应用的某一台或几台机器开启访问日志,以便观察用户服务的整体访问情况。</p>
@@ -14604,7 +14601,7 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
<ol>
<li>
<p>启动用例</p>
-<p>可以参考 <a href="../../../mannual/java-sdk/quickstart/">快速开始</a> 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。</p>
+<p>可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/">快速开始</a> 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。</p>
</li>
<li>
<p>查询服务</p>
@@ -14728,7 +14725,7 @@ dubbo http服务需要传递 rest-service-version 和 rest-service-group 两个h
<h2 id="上线">上线</h2>
<h3 id="online-命令">online 命令</h3>
-<p>Online 上线服务命令</p></description></item><item><title>部署 Dubbo 应用到虚拟机环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</guid><description><p>这种模式将 Dubbo Service 与 <a target="_blank" href="">Kubernetes Service</a> 概念映射起来,不再需要 Nacos 等传统 [...]
+<p>Online 上线服务命令</p></description></item><item><title>部署 Dubbo 应用到虚拟机环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</guid><description><p>这种模式将 Dubbo Service 与 <code>Kubernetes Service</code> 概念映射起来,不再需要 Nacos 等传统注册中心,而是由 Kubernete [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes-service.png" style="max-width:650px;height:auto;" />
<h2 id="安装-control-plane">安装 Control Plane</h2>
<p>在这个模式下,我们需要安装 <code>dubbo-control-plane</code></p>
@@ -15761,7 +15758,7 @@ ModuleServiceRepository
<h4 class="alert-heading">请注意</h4>
<ul>
-<li>本文档内容并不是升级 Dubbo3 必须的,您完全可以只升级框架并使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/#%E5%90%AF%E7%94%A8%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0">框架的服务发现默认行为</a>。</li>
+<li>本文档内容并不是升级 Dubbo3 必须的,您完全可以只升级框架并使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery#enable-application-level-service-discovery">框架的服务发现默认行为</a>。</li>
<li>本文档更适用于 Dubbo2 老用户,用于了解在升级到 Dubbo3 版本后,框架中的服务发现模型切换过程与工作原理。新用户请直接 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/nacos/#13-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">配置启用应用级服务发现</a>。</li>
</ul>
@@ -15789,7 +15786,7 @@ ModuleServiceRepository
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">registry</span>:
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: nacos://localhost:8848
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">register-mode</span>: interface <span style="color:#586e75">#表示继续使用老版本服务发现模型,可选值 interface、instance、all</span>
-</span></span></code></pre></div><h2 id="启用应用级服务发现默认">启用应用级服务发现(默认)</h2>
+</span></span></code></pre></div><h2 id="enable-application-level-service-discovery">启用应用级服务发现(默认)</h2>
<p>对于老用户而言,如果要启用应用级服务发现,就需要一个平滑迁移的过程。这时需要让新升级的 Dubbo3 应用进行双注册双订阅(当前框架默认行为,因此用户无需修改任何配置,以下内容均会自行发生,注意:未来版本可能切换为应用级单注册单订阅),以确保新老服务发现模型都能兼顾。</p>
@@ -19373,8 +19370,8 @@ Dubbo-Api-Docs 相关注解,解析注解</li>
<p>当应用部署在多个不同机房/区域的时候,应用之间相互调用就会出现跨区域的情况,而跨区域调用会增加响应时间,影响用户体验。同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者,避免了跨区域带来的网络延时,从而减少了调用的响应时间。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>Detail 应用和 Comment 应用都有双区域部署,其中 Detail v1 与 Comment v1 部署在区域 Beijing,Detail v2 与 Comment v2 部署在区域 Hangzhou 区域。为了保证服务调用的响应速度,我们需要增加同区域优先的调用规则,确保 Beijing 区域内的 Detail v1 始终默认调用 Comment v1,Hangzhou 区域内的 Detail v2 始终调用 Comment v2。</p>
@@ -20498,8 +20495,8 @@ Dubbo 的信息页地址是 <a href="https://incubator.apache.org/projects/du
</blockquote>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>我们决定为商城系统建立一套完整的线上灰度验证环境,灰度环境和线上环境共享一套物理集群,需要我们通过 Dubbo 标签路由从逻辑上完全隔离出一套环境,做到灰度流量和线上流量互不干扰。</p>
@@ -20589,18 +20586,18 @@ Dubbo 的信息页地址是 <a href="https://incubator.apache.org/projects/du
<li>匹配这个条件的流量,转发到这一批机器</li>
<li>匹配另一个条件的流量,转发到另一批机器</li>
</ul>
-<p><img src="" alt="画一张流量匹配和转发的图"></p>
+<p><code>画一张流量匹配和转发的图</code></p>
<p>这在 Dubbo 中就是用 条件路由 来实现的,关于其详细工作原理我们在介绍中有详细讲解。
在以上示例中,xxx 代表;yyy 代表</p>
<p>我们需要把规则下发到运行中的dubbo sdk,在 dubbo 体系中这是如下如下工作的。</p>
-<p><img src="" alt="路由规则的分发与生效原理图"></p>
+<p><code>路由规则的分发与生效原理图</code></p>
<p>一个 zk/nacos、下发一条规则,dubbo实例接收到规则推送,rpc调用过程中应用规则筛选,选出地址子集调用</p>
<div class="alert alert-info" role="alert">
<h4 class="alert-heading">注意</h4>
- 传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <a href="">Kubernetes 最佳实践</a>。
+ 传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <code>Kubernetes 最佳实践</code>。
</div>
@@ -21111,7 +21108,7 @@ Dubbo 的信息页地址是 <a href="https://incubator.apache.org/projects/du
<p>参考 Pinpoint 的 <a href="https://pinpoint-apm.github.io/pinpoint/quickstart.html">Quick start</a> 搭建环境(不需要启动 TestApp)</p></description></item><item><title>基于 Kubernetes Service 的服务发现</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/</guid><description>< [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes-service.png" style="max-width:650px;height:auto;" />
<p>在这种模式下,服务发现与用户的部署运维操作形成统一,用户定义标准的 Kubernetes Service、Deployment,并将其部署到 Kubernetes,之后 Control Plane 通过监控 APISERVER 资源并与 SDK 进程联动,形成一整套的服务发现体系。</p>
-<p>关于使用 Kubernetes 作为注册中心的具体实践案例,请参考 <a href="">Kubernetes Service 部署</a> 一节了解更多细节。</p></description></item><item><title>通信协议</title><link>https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/</guid><description><p>Dubbo 框架提供了自定义的高性能 RPC 通信协议:基于 HTTP/2 的 Triple 协议 和 基于 TCP 的 Dubbo2 协议。除此之外,Dubbo 框架支持任意第三方通信协议,如官方 [...]
+<p>关于使用 Kubernetes 作为注册中心的具体实践案例,请参考 <code>Kubernetes Service 部署</code> 一节了解更多细节。</p></description></item><item><title>通信协议</title><link>https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/</guid><description><p>Dubbo 框架提供了自定义的高性能 RPC 通信协议:基于 HTTP/2 的 Triple 协议 和 基于 TCP 的 Dubbo2 协议。除此之外,Dubbo 框架支持任意第三方通信协议,如官方支持 [...]
<p><strong>Dubbo 框架不绑定任何通信协议,在实现上 Dubbo 对多协议的支持也非常灵活,它可以让你在一个应用内发布多个使用不同协议的服务,并且支持用同一个 port 端口对外发布所有协议。</strong></p>
<p><img src="https://dubbo.apache.org/imgs/v3/feature/protocols/protocol1.png" alt="protocols"></p>
<p>通过 Dubbo 框架的多协议支持,你可以做到:</p>
@@ -21134,12 +21131,12 @@ Dubbo 的信息页地址是 <a href="https://incubator.apache.org/projects/du
<ul>
<li>一种模式是由用户预先设定一个固定的限流值,如 Dubbo 通过集成 Sentinel 等产品实现的限流能力即是这种模式
<ul>
-<li><a href="../../../tasks/rate-limit/sentinel/">Dubbo Sentinel 流量控制</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/sentinel/">Dubbo Sentinel 流量控制</a></li>
</ul>
</li>
<li>另一种方式是 Dubbo 框架自动根据系统或集群负载情况执行限流,相比用户预先设置限流值更加灵活方便,Dubbo 目前内置了自适应限流模式,具体可参见:
<ul>
-<li><a href="../../../mannual/java-sdk/advanced-features-and-usage/performance/adaptive-concurrency-control/">Java 自适应限流使用方式</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/adaptive-concurrency-control">Java 自适应限流使用方式</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/reference/proposals/heuristic-flow-control/">Go 自适应限流使用方式</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/reference/proposals/heuristic-flow-control/">自适应限流设计原理</a></li>
</ul>
@@ -21847,8 +21844,8 @@ SpringMvcServiceRestMetadataResolver
<p>或者,有些产品提供差异化的付费服务,需要根据请求参数中的用户 ID 将请求路由到具有不同服务等级保障的集群,就像接下来我们在示例任务中所做的那样。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>为了增加用户粘性,我们为商城示例系统新增了 VIP 用户服务,现在商城有两类用户:普通用户和 VIP 用户,其中 VIP 用户可以看到比普通用户更低的商品价格。</p>
@@ -21976,8 +21973,8 @@ SpringMvcServiceRestMetadataResolver
<h2 id="基于扩展点的微服务生态">基于扩展点的微服务生态</h2>
<p>众多的扩展点与抽象,是 Dubbo 与众多微服务生态组件对接、实现微服务治理能力的基础。</p>
<ul>
-<li><a href="../../tasks/observability/tracing/">全链路追踪</a></li>
-<li><a href="../../tasks/ecosystem/transaction/">数据一致性</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/">全链路追踪</a></li>
+<li><code>数据一致性</code></li>
<li><a href="../../core-features/traffic/circuit-breaking/">限流降级</a></li>
</ul>
<p>Dubbo 的各语言 sdk 实现都是采用的 &ldquo;微内核+插件&rdquo; 的设计模式,几乎所有流程中的核心节点都被定义为扩展点,官方发布的组件也是以扩展点的实现形式发布,因此 Dubbo 可以平等的对待所有官方与第三方组件扩展。</p>
@@ -22174,7 +22171,7 @@ SpringMvcServiceRestMetadataResolver
<tr>
<td>dubbo.{config-name}.{property}</td>
<td>-Ddubbo.application.name=&ldquo;dubbo-demo&rdquo;<br/><br/>-Ddubbo.registry.address=&ldquo;nacos://host:port&rdquo;<br/><br/>-Ddubbo.protocol.port=&ldquo;20880&rdquo;<br/><br/>&hellip;&hellip;</td>
- <td>Dubbo支持 <a href="aaa">所有的配置项</a> 以JVM参数格式指定。其中<code>config</code> 是指如 application、registry、protocol 等配置项,而<code>property</code>则是指每个配置项中的具体属性。</td>
+ <td>Dubbo支持 <code>所有的配置项</code> 以JVM参数格式指定。其中<code>config</code> 是指如 application、registry、protocol 等配置项,而<code>property</code>则是指每个配置项中的具体属性。</td>
</tr>
<tr>
<td>dubbo.resolve.file</td>
@@ -22356,7 +22353,7 @@ SpringMvcServiceRestMetadataResolver
<tr>
<td>DUBBO_{CONFIG-NAME}.{PROPERTY}</td>
<td>DUBBO_APPLICATION_NAME=&ldquo;dubbo-demo&rdquo;<br/><br/>DUBBO_REGISTRY_ADDRESS=&ldquo;nacos://host:port&rdquo;<br/><br/>DUBBO_PROTOCOL_PORT=&ldquo;20880&rdquo;<br/><br/>&hellip;&hellip;</td>
- <td>Dubbo支持<a href="aaa">所有的配置项</a>以环境变量格式指定。其中<code>CONFIG-NAME</code> 是指如 application、registry、protocol 等配置项,而 <code>PROPERTY</code>则是指每个配置项中的具体属性。</td>
+ <td>Dubbo支持<code>所有的配置项</code>以环境变量格式指定。其中<code>CONFIG-NAME</code> 是指如 application、registry、protocol 等配置项,而 <code>PROPERTY</code>则是指每个配置项中的具体属性。</td>
</tr>
<tr>
<td>DUBBO_DEFAULT_SERIALIZATION</td>
@@ -22514,7 +22511,7 @@ SpringMvcServiceRestMetadataResolver
<h3 id="排查和解决步骤">排查和解决步骤</h3>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心-配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心-配置项参考手册</a></p>
</blockquote></description></item><item><title>2-7 - 条件路由执行异常</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/7/</guid><description><h3 id="可能的原因">可能的原因</h3>
<ul>
<li>条件路由规则未按照规范配置,导致执行条件路由筛选时执行异常。</li>
@@ -22968,15 +22965,15 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<p>Admin 控制台可视化展示了集群中的应用、服务、实例及依赖关系,支持流量治理规则下发,同时还提供如服务测试、mock、文档管理等提升研发测试效率的工具</p>
<p><img src="https://dubbo.apache.org/imgs/v3/feature/observability/admin.jpg" alt="Admin 效果图"></p>
<ul>
-<li><a href="../../tasks/observability/admin/">Admin 部署与效果演示</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/">Admin 部署与效果演示</a></li>
</ul>
<h2 id="metrics">Metrics</h2>
<p>Dubbo 运行时统计了包括 qps、rt、调用总数、成功数、失败数,失败原因统计等在内的核心服务指标,同时,为了更好的监测服务运行状态,Dubbo 还提供了对核心组件状态的监控,如线程池数量、服务健康状态等。</p>
<p>可以通过 Grafana 可视化的查看 Metrics 指标</p>
<p><img src="https://dubbo.apache.org/imgs/v3/feature/observability/provider-stat.png" alt="Grafana 效果图"></p>
<ul>
-<li><a href="../../tasks/observability/grafana/">使用 Grafana 可视化展示 Metrics 指标</a></li>
-<li><a href="../../tasks/observability/prometheus/">如何从 Prometheus 查询特定 Metrics 指标</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/">使用 Grafana 可视化展示 Metrics 指标</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/prometheus/">如何从 Prometheus 查询特定 Metrics 指标</a></li>
</ul>
<h2 id="tracing">Tracing</h2>
<p>全链路追踪对于监测分布式系统运行状态具有非常重要的价值,Dubbo 通过 Filter 拦截器实现了请求运行时的埋点跟踪,通过将跟踪数据导出到一些主流实现如 Zipkin、Skywalking、Jaeger 等,可以实现全链路跟踪数据的分析与可视化展示。</p>
@@ -22997,8 +22994,8 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
</ul>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>示例项目中,我们发布了 Order 服务 v2 版本,并在 v2 版本中优化了下单体验:用户订单创建完成后,显示订单收货地址信息。</p>
@@ -23051,7 +23048,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<code>detail profiler</code> 相较 <code>simple profiler</code> 模式多采集了每个 filter 的处理耗时、协议上的具体耗时等。
在 <code>simple profiler</code> 模式下如果发现 Dubbo 框架内部存在耗时长的情况,可以开启 <code>detail profiler</code> 模式,以便更好地排查问题。</p>
<blockquote>
-<p><a href="../../../advanced-features-and-usage/performance/profiler/">请求耗时采样</a></p>
+<p><code>请求耗时采样</code></p>
</blockquote>
<h3 id="enablesimpleprofiler-命令">enableSimpleProfiler 命令</h3>
<p>开启 <code>simple profiler</code> 模式,默认开启</p>
@@ -23324,8 +23321,8 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<p>服务降级的核心目标就是针对这些弱依赖项。在弱依赖不可用或调用失败时,通过返回降级结果尽可能的维持功能完整性;另外,我们有时也会主动的屏蔽一些非关键弱依赖项的调用,比如在大促流量洪峰之前,通过预先设置一些有效的降级策略来短路部分依赖调用,来有效的提升流量高峰时期系统的整体效率和稳定性。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>正常情况下,商品详情页会展示来自顾客的商品评论信息。</p>
@@ -23356,7 +23353,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
</span></span></code></pre></div><h2 id="清理">清理</h2>
<p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。</p>
<h2 id="其他事项">其他事项</h2>
-<p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <a href="../.././../reference/admin/mock/">Dubbo Admin 服务 Mock</a> 特性的使用方式。</p></description></item><item><title>负载均衡</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/dev/source/loadbalance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo. [...]
+<p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <code>Dubbo Admin 服务 Mock</code> 特性的使用方式。</p></description></item><item><title>负载均衡</title><link>https://dubbo.apache.org/zh-cn/docsv2.7/dev/source/loadbalance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docsv2.7/dev/sour [...]
<p>LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中,一般很难接触到硬件负载均衡。但软件负载均衡还是可以接触到的,比如 Nginx。在 Dubbo 中,也有负载均衡的概念和相应的实现。Dubbo 需要对服务消费者的调用请求进行分配,避免少数服务提供者负载过大。服务提供者负载过大,会导致部分请求超时。因此将负载均衡到每个服务提供者上,是非常必要的。Dubbo 提供了4种负载均衡实现,分别是基于权重随机算法的 RandomLoadBal
ance、基于最少活跃调用数算法的 LeastActiveLoadBalance、基于 hash 一致性的 ConsistentHashLoadBalance,以及基于加权轮询算法的 RoundRobinLoadBalance。这几个负载 [...]
<p>本系列文章在编写之初是基于 Dubbo 2.6.4 的,近期,Dubbo 2.6.5 发布了,其中就有针对对负载均衡部分的优化。因此我们在分析完 2.6.4 版本后的源码后,会另外分析 2.6.5 更新的部分。其他的就不多说了,进入正题吧。</p>
<h2 id="2源码分析">2.源码分析</h2>
@@ -23526,7 +23523,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<li><code>LoadBalance</code> 负责从多个 <code>Invoker</code> 中选出具体的一个用于本次调用,选的过程包含了负载均衡算法,调用失败后,需要重选</li>
</ul>
<h2 id="集群容错模式">集群容错模式</h2>
-<p>可以自行扩展集群容错策略,参见:<a href="../../../dev/impls/cluster">集群扩展</a></p>
+<p>可以自行扩展集群容错策略,参见:<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/description/cluster">集群扩展</a></p>
<h3 id="failover-cluster">Failover Cluster</h3>
<p>失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 <code>retries=&quot;2&quot;</code> 来设置重试次数(不含第一次)。</p>
<p>重试次数配置如下:</p>
@@ -23551,7 +23548,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<h3 id="failsafe-cluster">Failsafe Cluster</h3>
<p>失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。</p></description></item><item><title>路由状态命令</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/</guid><description><p>Dubbo 的很多流量治理能力是基于 Router 进行实现的,在生产环境中,如果出现流量结果不符合预期的情况,可以通过路由状态命令来查看路由的状态,以此来定位可能存 [...]
<blockquote>
-<p><a href="../../../advanced-features-and-usage/performance/router-snapshot/">路由状态采集</a></p>
+<p><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot">路由状态采集</a></p>
</blockquote>
<h3 id="getroutersnapshot-命令">getRouterSnapshot 命令</h3>
<p>获取当前的每层路由的分组状态。(仅支持 StateRouter)</p>
@@ -23628,7 +23625,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
</ol>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心的配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心的配置项参考手册</a></p>
</blockquote></description></item><item><title>2-9 - 增加超时检查任务失败</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/9/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/9/</guid><description><h3 id="可能的原因">可能的原因</h3>
<ul>
<li>Dubbo 框架会对请求调用增加一个超时检查任务,增加超时检查任务失败。</li>
@@ -23974,8 +23971,8 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<p>以上是 Dubbo Proxy Mesh 部署架构图</p></description></item><item><title>将流量点对点引导到一台机器 (如排查问题)</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/</guid><description><p>自动的地址发现和负载均衡机制有很多优势,它让我们构建可伸缩的分布式微服务系统成为可能,但这种动态的流量分配也带来很多复杂性。一个典型问题是我们无法再预测一次请求具体会落到那一台提供者机器上,但有时能预期或控制请求固定的发往某 [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>本任务我们将以 User 服务作为示例,将商城中 Frontend 应用对用户详情方法的调用 <code>UserService#getInfo</code> 全部导流到一台固定实例上去。</p>
@@ -24024,7 +24021,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<p>用户可以在自己的集群里部署我们的demo,集群最好拥有暴露 lb 类型 service 的能力,从而可以在公网访问至集群内的服务,您也可以直接集群内进行请求。针对您的集群,执行:</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-bash" data-lang="bash"><span style="display:flex;"><span>$ kubectl apply -f https://raw.githubusercontent.com/dubbogo/triple-pixiu-demo/master/deploy/pixiu-triple-demo.yml
</span></span></code></pre></div><p>会在 dubbogo-triple-nacos 命名空间下创建如下资源,包含三个 triple-server,一个pixiu网关,一个 nacos server。并通过 Servcie 将服务暴露至公网。</p></description></item><item><title>使用方法</title><link>https://dubbo.apache.org/zh-cn/docs/references/lifecycle/brief/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/lifecycle/brief/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe/">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<code>最新版本</code>)。</p>
</div>
@@ -24358,7 +24355,7 @@ API,利用 OpenAPI 生态可轻松实现跨语言调用。未来会进一步
<p>该错误常与 1-9 错误共同出现。检查是否有多个 Dubbo 进程使用了同一个缓存文件或者是否指定多个注册中心使用同一缓存文件。</p>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心的配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心的配置项参考手册</a></p>
</blockquote></description></item><item><title>2-10 - 调用服务提供方失败</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/2/10/</guid><description><h3 id="可能的原因">可能的原因</h3>
<ul>
<li>Dubbo 调用服务提供方失败,并开始重试。</li>
@@ -25300,7 +25297,7 @@ CallUserStruct参数定义:</p>
<td>元数据管理</td>
<td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/">Zookeeper</a></td>
<td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/">Nacos</a></td>
- <td><a href="../../mannual/java-sdk/reference-manual/metadata-center/redis">Redis</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/">Redis</a></td>
<td>Kubernetes【开发中】</td>
<td><a href="https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-metadata-report-extensions" target="_blank">更多</a></td>
</tr>
@@ -25314,31 +25311,31 @@ CallUserStruct参数定义:</p>
</tr>
<tr>
<td>可视化观测平台</td>
- <td><a href="../../tasks/observability/admin/">Admin</a></td>
- <td><a href="../../tasks/observability/grafana/">Grafana</a></td>
- <td><a href="../../tasks/observability/prometheus/">Prometheus</a></td>
+ <td><code>Admin</code></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/">Grafana</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/prometheus/">Prometheus</a></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>全链路追踪</td>
- <td><a href="../../tasks/observability/tracing/zipkin/">Zipkin</a></td>
- <td><a href="../../tasks/observability/tracing/skywalking/">Skywalking</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/zipkin/">Zipkin</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/skywalking/">Skywalking</a></td>
<td><a href="https://github.com/apache/dubbo-samples/tree/master/4-governance/dubbo-samples-spring-boot3-tracing#2-adding-micrometer-tracing-bridge-to-your-project" target="_blank">OpenTelemetry</a></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>限流降级</td>
- <td><a href="../../tasks/rate-limit/sentinel">Sentinel</a></td>
- <td><a href="../../tasks/rate-limit/resilience4j">Resilience4j</a></td>
- <td><a href="../../tasks/rate-limit/hystrix">Hystrix</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/sentinel">Sentinel</a></td>
+ <td><code>Resilience4j</code></td>
+ <td><code>Hystrix</code></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>分布式事务</td>
- <td><a href="../../tasks/ecosystem/transaction/">Seata</a></td>
+ <td><code>Seata</code></td>
<td>-</td>
<td>-</td>
<td>-</td>
@@ -25347,7 +25344,7 @@ CallUserStruct参数定义:</p>
<tr>
<td>网关</td>
<td><a href="https://dubbo.apache.org/zh-cn/blog/2024/04/01/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-higress-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/">Higress</a></td>
- <td><a href="../../tasks/ecosystem/gateway/">APISIX</a></td>
+ <td><code>APISIX</code></td>
<td><a href="https://dubbo.apache.org/zh-cn/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/">Shenyu</a></td>
<td><a href="https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/dubbo_proxy_filter">Envoy</a></td>
<td>-</td>
@@ -25873,7 +25870,7 @@ CallUserStruct参数定义:</p>
</div></description></item><item><title>更多高级功能</title><link>https://dubbo.apache.org/zh-cn/overview/what/core-features/more/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/core-features/more/</guid><description><p>作为一款与应用开发紧密相关的微服务框架,同时旨在为微服务集群提供企业级服务治理能力,Dubbo 还提供了很多高级功能,涵盖服务调用行为控制、服务诊断与调优、服务治理等。</p>
<p>多种语言 sdk 在功能实现、配置方式上会略有差异,具体功能列表和使用方式可参考如下文档:</p>
<ul>
-<li><a href="../../mannual/java-sdk/advanced-features-and-usage/">Java</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/">Java</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/">Golang</a></li>
</ul>
<h2 id="控制服务调用行为">控制服务调用行为</h2>
@@ -28694,7 +28691,7 @@ CallUserStruct参数定义:</p>
<li>检查属性配置值内容是否过长,具体参考提示信息进行修改。</li>
<li>检查属性配置值内容是否包含特殊字符,如 @#$%^&amp; 等,具体请参考提示信息进行修改。</li>
</ol></description></item><item><title>Protobuf</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/migration-triple/#%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%94%A8%E6%88%B7">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-triple">最新版本</a>。</p>
</div>
@@ -28753,7 +28750,7 @@ CallUserStruct参数定义:</p>
</span></span><span style="display:flex;"><span> <span style="color:#dc322f">string</span> message = <span style="color:#2aa198">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></description></item><item><title>GoogleProtobuf 对象泛化调用</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/pb-generic-reference/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic-reference/#protobuf-%E5%AF%B9%E8%B1%A1%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<code>最新版本</code>。</p>
</div>
@@ -32140,7 +32137,7 @@ CallUserStruct参数定义:</p>
<p>控制某些服务的最大并发请求数,确保其他服务的资源可用性。系统过载和确保系统稳定性。</p>
<p>允许在需求增加时更平滑地扩展服务。</p>
<p>确保服务在高峰使用时间保持可靠和稳定。</p>
-<p>这种方式要求用户准确的预先评估系统能处理的并发数,而准确的评估系统处理能力并不是一件容易的事情,因此 Dubbo 还提供了自适应限流模式,根据系统负载自动识别系统健康程度并进行限流保护,可以在此 <a href="../adaptive-concurrency-control">查看使用文档</a>。</p>
+<p>这种方式要求用户准确的预先评估系统能处理的并发数,而准确的评估系统处理能力并不是一件容易的事情,因此 Dubbo 还提供了自适应限流模式,根据系统负载自动识别系统健康程度并进行限流保护,可以在此 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/adaptive-concurrency-control">查看使用文档</a>。</p>
<h2 id="使用方式">使用方式</h2>
<h3 id="样例一">样例一</h3>
<blockquote>
@@ -32274,7 +32271,7 @@ CallUserStruct参数定义:</p>
<p>允许消费者在提供者接收请求之前向提供者发送请求,消费者等待提供者准备就绪,然后将发送消费者者的请求,当消费者需要连接到提供者,提供者尚未准备好接受请求时,确保在正确的时间发送请求,防止消费者被速度慢或不可用的提供程序阻止。</p>
<h2 id="使用场景-1">使用场景</h2>
<p>粘滞连接用于有状态服务,尽可能让客户端总是向同一提供者发起调用,除非该提供者挂了,再连另一台。</p>
-<p>粘滞连接将自动开启 <a href="../lazy-connect">延迟连接</a>,以减少长连接数。</p>
+<p>粘滞连接将自动开启 <a href="https://dubbo.apache.org/zh-cn/docs/advanced/lazy-connect">延迟连接</a>,以减少长连接数。</p>
<h2 id="使用方式-1">使用方式</h2>
<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:reference</span> id=<span style="color:#2aa198">&#34;xxxService&#34;</span> interface=<span style="color:#2aa198">&#34;com.xxx.XxxService&#34;</span> sticky=< [...]
</span></span></code></pre></div><p>Dubbo 支持方法级别的粘滞连接,如果你想进行更细粒度的控制,还可以这样配置。</p>
@@ -34436,7 +34433,7 @@ FORCE_APPLICATION:只启用新模式下应用级服务发现的注册中心逻
</span></span><span style="display:flex;"><span>float[]
</span></span><span style="display:flex;"><span>double[]
</span></span></code></pre></div><p>由于注册被序列化的类仅仅是出于性能优化的目的,所以即使你忘记注册某些类也没有关系。事实上,即使不注册任何类,Kryo和FST的性能依然普遍优于 hessian 和 dubbo 序列化。</p></description></item><item><title>Netty4 支持</title><link>https://dubbo.apache.org/zh-cn/docs/advanced/netty4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/advanced/netty4/</guid><description><div class="pageinfo pageinfo-primary">
-<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#protocol">最新版本</a>。</p>
+<p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.protocol">最新版本</a>。</p>
</div>
@@ -35814,7 +35811,7 @@ FORCE_APPLICATION:只启用新模式下应用级服务发现的注册中心逻
<li>
<p><strong>全面支持南北向与东西向流量</strong>:Triple X 无缝支持从客户端到服务器的南北向流量及服务间通信的东西向流量,并确保灵活转换,提升通信链路的整体效率。</p></description></item><item><title>如果从接口级服务发现平滑迁移到应用级服务发现</title><link>https://dubbo.apache.org/zh-cn/blog/2024/05/13/%E5%A6%82%E6%9E%9C%E4%BB%8E%E6%8E%A5%E5%8F%A3%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%B9%B3%E6%BB%91%E8%BF%81%E7%A7%BB%E5%88%B0%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</link><pubDate>Mon, 13 May 2024 00:00:00 +0000</pubDa [...]
<blockquote>
-<p>如关心迁移背后工作原理,请参考 <a href="../service-discovery-rule">迁移规则详情与工作原理</a></p>
+<p>如关心迁移背后工作原理,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule">迁移规则详情与工作原理</a></p>
</blockquote>
<h2 id="1-快速升级步骤">1 快速升级步骤</h2>
<p>简单的修改 pom.xml 到最新版本就可以完成升级,如果要迁移到应用级地址,只需要调整开关控制 3.x 版本的默认行为。</p>
@@ -37359,7 +37356,7 @@ Bi-directional Streaming 等通信模型;
<td>timeout</td>
<td>long</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的timeout</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的timeout</td>
<td>性能调优</td>
<td>服务方法调用超时时间(毫秒)</td>
<td>1.0.5以上版本</td>
@@ -37369,7 +37366,7 @@ Bi-directional Streaming 等通信模型;
<td>retries</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的retries</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的retries</td>
<td>性能调优</td>
<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>
<td>2.0.0以上版本</td>
@@ -37379,7 +37376,7 @@ Bi-directional Streaming 等通信模型;
<td>connections</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的connections</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的connections</td>
<td>性能调优</td>
<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>
<td>2.0.0以上版本</td>
@@ -37389,7 +37386,7 @@ Bi-directional Streaming 等通信模型;
<td>loadbalance</td>
<td>string</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的loadbalance</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的loadbalance</td>
<td>性能调优</td>
<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
<td>2.0.0以上版本</td>
@@ -37399,7 +37396,7 @@ Bi-directional Streaming 等通信模型;
<td>async</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的async</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的async</td>
<td>性能调优</td>
<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>
<td>2.0.0以上版本</td>
@@ -37409,7 +37406,7 @@ Bi-directional Streaming 等通信模型;
<td>generic</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的generic</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的generic</td>
<td>服务治理</td>
<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>
<td>2.0.0以上版本</td>
@@ -37419,7 +37416,7 @@ Bi-directional Streaming 等通信模型;
<td>check</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的check</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的check</td>
<td>服务治理</td>
<td>启动时检查提供者是否存在,true报错,false忽略</td>
<td>2.0.0以上版本</td>
@@ -37501,7 +37498,7 @@ Bi-directional Streaming 等通信模型;
<td>可选</td>
<td>缺省将从所有注册中心获服务列表后合并结果</td>
<td>配置关联</td>
- <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<a href="#ZgotmplZ">dubbo:registry</a>的id属性,多个注册中心ID用逗号分隔</td>
+ <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<code>&lt;dubbo:registry&gt;</code>的id属性,多个注册中心ID用逗号分隔</td>
<td>2.0.0以上版本</td>
</tr>
<tr>
@@ -38072,7 +38069,7 @@ exportServiceInternal方法:</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-java" data-lang="java"><span style="display:flex;"><span>.protocol(<span style="color:#719e07">new</span> ProtocolConfig(CommonConstants.DUBBO, <span style="color:#719e07">-</span>1))
</span></span></code></pre></div><h2 id="112--协议的配置相关">11.2 协议的配置相关</h2>
<p>下面的配置来源于官网</p>
-<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <a href="#ZgotmplZ">dubbo:protocol</a> 标签,并在 <a href="#ZgotmplZ">dubbo:service</a> 中通过 protocol 属性指定使用的协议。</p>
+<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <code>&lt;dubbo:protocol&gt;</code> 标签,并在 <code>&lt;dubbo:service&gt;</code> 中通过 protocol 属性指定使用的协议。</p>
<table>
<thead>
<tr>
@@ -38370,12 +38367,12 @@ exportServiceInternal方法:</p>
</tr>
<tr>
<td>address</td>
- <td><a href="#ZgotmplZ">host:port</a></td>
+ <td><code>&lt;host:port&gt; </code></td>
<td>string</td>
<td><strong>必填</strong></td>
<td></td>
<td>服务发现</td>
- <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<a href="#ZgotmplZ">dubbo:registry</a>标签</td>
+ <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<code>&lt;dubbo:registry&gt;</code>标签</td>
<td>1.0.16以上版本</td>
</tr>
<tr>
@@ -40221,10 +40218,10 @@ Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能
<img src="https://dubbo.apache.org/imgs/blog/dubbo-directly.jpg" alt="subscribe-only"></p>
<p>可以通过以下几种配置来指定IP调用</p>
<ul>
-<li>XML 配置: 如果是线上需求需要点对点,可在 <a href="#ZgotmplZ">dubbo:reference</a> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
+<li>XML 配置: 如果是线上需求需要点对点,可在 <code>&lt;dubbo:reference&gt;</code> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
<code>&lt;dubbo:reference id=&quot;xxxService&quot; interface=&quot;com.alibaba.xxx.XxxService&quot; url=&quot;dubbo://localhost:20890&quot; /&gt;</code></li>
<li>通过-D参数指定: 在 JVM 启动参数中加入-D参数映射服务地址,如:<code>java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
-<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <a href="#ZgotmplZ">dubbo:reference</a> 中的配置,如:
+<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <code>&lt;dubbo:reference&gt;</code> 中的配置,如:
<code>java -Ddubbo.resolve.file=xxx.properties</code><br>
然后在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者 URL:<code>com.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
</ul>
@@ -44111,7 +44108,7 @@ Dubbo 中,SPI 主要有两种用法,一种是加载固定的扩展类,另
<li>增加 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#23-ioc-%e6%9c%ba%e5%88%b6">IOC</a>、<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#24-aop-%e6%9c%ba%e5%88%b6">AOP</a> 能力</li>
<li>增加排序能力</li>
<li>增加条件激活能力</li>
-<li>提供了一系列更灵活的 API,如<a href="https://dubbo.apache.org/zh-cn/#21-%e6%8c%89%e5%90%8d%e7%a7%b0%e8%8e%b7%e5%8f%96%e6%8c%87%e5%ae%9a%e6%89%a9%e5%b1%95%e7%b1%bb">获取所有 SPI 扩展实现</a>、<a href="https://dubbo.apache.org/zh-cn/#211-%e8%8e%b7%e5%8f%96%e6%89%80%e6%9c%89%e6%8b%93%e5%b1%95%e7%b1%bb">根据名称查询某个扩展实现</a>、根据类型查询扩展实现、查询匹配条件的扩展实现等。</li>
+<li>提供了一系列更灵活的 API,如<code>获取所有 SPI 扩展实现</code>、<code>根据名称查询某个扩展实现</code>、根据类型查询扩展实现、查询匹配条件的扩展实现等。</li>
</ul>
<h3 id="11-spi定义">1.1 SPI定义</h3>
<p>Dubbo 中的 SPI 插件是标准的 Java Interface 定义,并且必须包含 <code>@org.apache.dubbo.common.extension.SPI</code> 注解:</p>
diff --git a/zh-cn/overview/home/index.html b/zh-cn/overview/home/index.html
index daf8046f2d5..99a9b66cb16 100644
--- a/zh-cn/overview/home/index.html
+++ b/zh-cn/overview/home/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/home/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/home/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https:// [...]
+<!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/home/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/home/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https:// [...]
<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>
@@ -627,7 +627,7 @@
<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 active" aria-curr [...]
+<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 active" aria-curr [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/home?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%2A+Edit+the+%22front+matter%22+section+at+the+to [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%20%e6%96%87%e6%a1%a3" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/overview/mannual/control-plane/index.xml b/zh-cn/overview/mannual/control-plane/index.xml
index a1a7f741b91..3acf244b1a6 100644
--- a/zh-cn/overview/mannual/control-plane/index.xml
+++ b/zh-cn/overview/mannual/control-plane/index.xml
@@ -91,7 +91,7 @@ Zipkin: <a href="https://github.com/openzipkin/zipkin-helm">https://github
<ol>
<li>
<p>启动用例</p>
-<p>可以参考 <a href="../../../mannual/java-sdk/quickstart/">快速开始</a> 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。</p>
+<p>可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/">快速开始</a> 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。</p>
</li>
<li>
<p>查询服务</p>
diff --git a/zh-cn/overview/mannual/control-plane/test/index.html b/zh-cn/overview/mannual/control-plane/test/index.html
index 76458319d67..fdae1908a88 100644
--- a/zh-cn/overview/mannual/control-plane/test/index.html
+++ b/zh-cn/overview/mannual/control-plane/test/index.html
@@ -9,7 +9,7 @@
如果调用失败,会显示详细的失败原因,下面来看一下调用失败的例子:
本例中,先关掉 Dubbo 服务提供者的进程,再执行服务测试,可以看到返回的结果是找不到服务提供者的异常。和普通调用一样,业务和框架的异常都会返回在结果中,方便业务排查。
复合类型参数的填写 考虑 UserService 中的以下方法和类型:
-//org.apache.dubbo.demo.api.UserService Result getUser(String name, UserInfoDO userInfoDO); public class UserInfoDO { private int id; private LocationDO locationDO; private DepartmentDO departmentDO; @Override public String toString() { return "UserInfoDO{" + "id=" + id + ", locationDO=" + locationDO.toString() + ", departmentDO=" + departmentDO.toString() + '}'; } } public class DepartmentDO { private String departName; private LocationDO departLocation; @Override public String [...]
+//org.apache.dubbo.demo.api.UserService Result getUser(String name, UserInfoDO userInfoDO); public class UserInfoDO { private int id; private LocationDO locationDO; private DepartmentDO departmentDO; @Override public String toString() { return "UserInfoDO{" + "id=" + id + ", locationDO=" + locationDO.toString() + ", departmentDO=" + departmentDO.toString() + '}'; } } public class DepartmentDO { private String departName; private LocationDO departLocation; @Override public String [...]
使用方式 准备用例 启动用例
可以参考 快速开始 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。
查询服务
@@ -20,7 +20,7 @@
如果调用失败,会显示详细的失败原因,下面来看一下调用失败的例子:
本例中,先关掉 Dubbo 服务提供者的进程,再执行服务测试,可以看到返回的结果是找不到服务提供者的异常。和普通调用一样,业务和框架的异常都会返回在结果中,方便业务排查。
复合类型参数的填写 考虑 UserService 中的以下方法和类型:
-//org.apache.dubbo.demo.api.UserService Result getUser(String name, UserInfoDO userInfoDO); public class UserInfoDO { private int id; private LocationDO locationDO; private DepartmentDO departmentDO; @Override public String toString() { return "UserInfoDO{" + "id=" + id + ", locationDO=" + locationDO.toString() + ", departmentDO=" + departmentDO.toString() + '}'; } } public class DepartmentDO { private String departName; private LocationDO departLocation; @Override public String [...]
+//org.apache.dubbo.demo.api.UserService Result getUser(String name, UserInfoDO userInfoDO); public class UserInfoDO { private int id; private LocationDO locationDO; private DepartmentDO departmentDO; @Override public String toString() { return "UserInfoDO{" + "id=" + id + ", locationDO=" + locationDO.toString() + ", departmentDO=" + departmentDO.toString() + '}'; } } public class DepartmentDO { private String departName; private LocationDO departLocation; @Override public String [...]
使用方式 准备用例 启动用例
可以参考 快速开始 启动一个简单的 Dubbo 服务,对于服务测试来说,只需要启动 provider 即可。
查询服务
@@ -861,7 +861,7 @@ public class LocationDO {
<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>Result <span style=color:#268bd2>getUser</span>(String name, UserInfoDO userInfoDO);
</span></span></code></pre></div><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><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>UserInfoDO</span> {
</span></span><span style=display:flex><span> <span style=color:#268bd2>private</span> <span style=color:#dc322f>int</span> id;
@@ -978,7 +978,7 @@ public class LocationDO {
</span></span><span style=display:flex><span> ]
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><p>与服务测试相关的就是<code>methods</code>和<code>types</code>所包含的方法和类型信息,Dubbo Admin根据这些信息,将参数渲染到服务测试页面的Json Editor中,由用户来输入每个参数,每个成员变量的值。</p><h3 id=泛化调用>泛化调用</h3><p>有了参数类型,下一个问题就是怎么能够调用到服务端,在传统的Dubbo RPC调用中,客户端需要依赖服务端的API jar包 (参考 <a href=https://github.com/apache/dubbo-samples/tree/master/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-consumer>Quick Start</a> 中的消费端示例,这对于 Dubbo Admin 来说不太可能,因为服务的上下线是动态的,Dubbo Admin 无法动态增加 jar 包依赖,因此需要用到 Dubbo 中的<a hre [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/control-plane/test?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%2A+Edit+the+%22front+matte [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Admin%20%e6%9c%8d%e5%8a%a1%e6%b5%8b%e8%af%95%e5%8a%9f%e8%83%bd%e7%ae%80%e4%bb%8b" 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><nav id=TableOfContents><ul><li><a href=#使用方式>使用方式</a><ul><li><a href=#准备用例>准备用例</a></li><li><a href=#执行服务测试>执行服务测试</a></li><li><a href=#复合类型参数的填写>复合类型参数的填写</a></li></ul></li><li><a href=#原理>原理</a><ul><li><a href=#数据来源>数据来源</a></li><li><a href=#泛化调用>泛化调用</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left [...]
diff --git a/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/index.html b/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/index.html
index f40438c8633..c5d72aa2ced 100644
--- a/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/index.html
+++ b/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/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/quickstart/microservices/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.pu [...]
+<!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/quickstart/microservices/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.pu [...]
<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>
@@ -639,7 +639,7 @@
</span></span></code></pre></div><h3 id=运行-client>运行 client</h3><p>打开一个新的 terminal,运行以下命令,启动 client</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 client.go
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Greeting: Hello world
-</span></span></code></pre></div><p>以上就是一个完整的 dubbo-go 微服务应用工作流程。</p><h2 id=源码讲解>源码讲解</h2><p>关于 <code>dubbo-go-samples/registry/nacos</code> 示例源码,包括服务定义、代码生成、server/client 启动等均与上一篇 <a href>rpc server & rpc client</a> 类似,请点击以上链接查看具体解读。</p><p><strong>开发微服务最大的不同点在于:应用中增加了关于注册中心的配置,如下所示(以 server.go 为例):</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-go data-lang=go><span style=display [...]
+</span></span></code></pre></div><p>以上就是一个完整的 dubbo-go 微服务应用工作流程。</p><h2 id=源码讲解>源码讲解</h2><p>关于 <code>dubbo-go-samples/registry/nacos</code> 示例源码,包括服务定义、代码生成、server/client 启动等均与上一篇 <code>rpc server & rpc client</code> 类似,请点击以上链接查看具体解读。</p><p><strong>开发微服务最大的不同点在于:应用中增加了关于注册中心的配置,如下所示(以 server.go 为例):</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-go data-lang=go><span style=displa [...]
</span></span><span style=display:flex><span> ins, err <span style=color:#719e07>:=</span> dubbo.<span style=color:#268bd2>NewInstance</span>(
</span></span><span style=display:flex><span> dubbo.<span style=color:#268bd2>WithName</span>(<span style=color:#2aa198>"dubbo_registry_nacos_server"</span>),
</span></span><span style=display:flex><span> dubbo.<span style=color:#268bd2>WithRegistry</span>(
@@ -671,8 +671,8 @@
</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> ),
</span></span><span style=display:flex><span>)
-</span></span></code></pre></div><p>然后,才是创建 <code>ins.NewServer()</code> 并为 server 实例注册服务 <code>greet.RegisterGreetServiceHandler(srv, &GreetTripleServer{})</code>,最后通过 <code>srv.Serve()</code> 启动进程。</p><div class="alert alert-info" role=alert><h4 class=alert-heading>关于 dubbo.Insance 说明</h4><ul><li>在开发 dubbo 微服务应用时,我们推荐使用 <code>dubbo.Instance</code> 来设置一些全局性的服务治理能力,如注册中心、协议、应用名、tracing、配置中心等。</li><li><code>ins.NewServer()</code> 可以创建多个,通常当你需要在多个端口 <a href>发布多个协议</a> 时才需要这么做。</li></ul [...]
-<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 [...]
+</span></span></code></pre></div><p>然后,才是创建 <code>ins.NewServer()</code> 并为 server 实例注册服务 <code>greet.RegisterGreetServiceHandler(srv, &GreetTripleServer{})</code>,最后通过 <code>srv.Serve()</code> 启动进程。</p><div class="alert alert-info" role=alert><h4 class=alert-heading>关于 dubbo.Insance 说明</h4><ul><li>在开发 dubbo 微服务应用时,我们推荐使用 <code>dubbo.Instance</code> 来设置一些全局性的服务治理能力,如注册中心、协议、应用名、tracing、配置中心等。</li><li><code>ins.NewServer()</code> 可以创建多个,通常当你需要在多个端口 <code>发布多个协议</code> 时才需要这么做。</li></u [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/golang-sdk/quickstart/microservices?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%2A+Edit+t [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%bc%80%e5%8f%91%e5%be%ae%e6%9c%8d%e5%8a%a1" 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><nav id=TableOfContents><ul><li><a href=#前置条件>前置条件</a></li><li><a href=#快速运行示例>快速运行示例</a><ul><li><a href=#下载示例源码>下载示例源码</a></li><li><a href=#启动-nacos>启动 Nacos</a></li><li><a href=#运行-server>运行 server</a></li><li><a href=#运行-client>运行 client</a></li></ul></li><li><a href=#源码讲解>源码讲解</a></li><li><a href=#更多内容>更多内容</a></li></ul></nav></div></div></div></div><footer><div class=f [...]
diff --git a/zh-cn/overview/mannual/java-sdk/quick-start/index.xml b/zh-cn/overview/mannual/java-sdk/quick-start/index.xml
index de9cb26690f..7ca87e12ba1 100644
--- a/zh-cn/overview/mannual/java-sdk/quick-start/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/quick-start/index.xml
@@ -31,7 +31,7 @@
</div>
-<p>在应用启动成功后,本地进程使用 <a href="overview/mannual/java-sdk/tasks/protocols/triple" target="_blank_">Triple </a>协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</p>
+<p>在应用启动成功后,本地进程使用 Triple 协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</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-text" data-lang="text"><span style="display:flex;"><span>Started QuickStartApplication in 4.38 seconds (process running for 4.629)
</span></span><span style="display:flex;"><span>Receive result ======&gt; Hello world
</span></span></code></pre></div><p>可直接使用 cURL 测试服务是否已经正常运行:</p></description></item><item><title>快速部署Dubbo应用</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/deploy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/deploy/</guid><description><p>在上一篇文章中,我们学习了如何开发基于 Spring Boot 的 Dubbo 应用。接下来,我们将学习部署这个 Dubbo 应用。</p>
diff --git a/zh-cn/overview/mannual/java-sdk/quick-start/starter/index.html b/zh-cn/overview/mannual/java-sdk/quick-start/starter/index.html
index 76964285f17..97373886a0e 100644
--- a/zh-cn/overview/mannual/java-sdk/quick-start/starter/index.html
+++ b/zh-cn/overview/mannual/java-sdk/quick-start/starter/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/java-sdk/quick-start/starter/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/starter/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPage [...]
+<!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/java-sdk/quick-start/starter/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/starter/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPage [...]
<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>
@@ -633,7 +633,7 @@
</span></span></code></pre></div><div class="alert alert-info" role=alert><h4 class=alert-heading>提示</h4>本项目源码在 Dubbo Github 示例仓库中维护 <a href=https://github.com/apache/dubbo-samples/tree/master/11-quickstart>https://github.com/apache/dubbo-samples</a></div><h2 id=本地启动应用>本地启动应用</h2><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-shell data-lang=shell><span styl [...]
</span></span><span style=display:flex><span>./mvnw clean install -DskipTests
</span></span><span style=display:flex><span>./mvnw compile -pl quickstart-service exec:java -Dexec.mainClass<span style=color:#719e07>=</span><span style=color:#2aa198>"org.apache.dubbo.samples.quickstart.QuickStartApplication"</span>
-</span></span></code></pre></div><div class="alert alert-warning" role=alert><h4 class=alert-heading>注意</h4><ul><li>运行示例要求 JDK 17+ 版本。</li><li>由于配置文件中启用了注册中心,您需要首先在本地启动 <a href=/zh-cn/overview/reference/integrations/nacos/ target=_blank_>Nacos</a> 注册中心 server。或者参考下一篇 Kubernetes 部署方式。</li></ul></div><p>在应用启动成功后,本地进程使用 <a href=overview/mannual/java-sdk/tasks/protocols/triple target=_blank_>Triple </a>协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</p><div class=highlight><pre tabindex=0 style=color:#93a [...]
+</span></span></code></pre></div><div class="alert alert-warning" role=alert><h4 class=alert-heading>注意</h4><ul><li>运行示例要求 JDK 17+ 版本。</li><li>由于配置文件中启用了注册中心,您需要首先在本地启动 <a href=/zh-cn/overview/reference/integrations/nacos/ target=_blank_>Nacos</a> 注册中心 server。或者参考下一篇 Kubernetes 部署方式。</li></ul></div><p>在应用启动成功后,本地进程使用 Triple 协议在指定端口发布了服务。同时可以看到消费端持续对提供端发起调用:</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 [...]
</span></span><span style=display:flex><span>Receive result ======> Hello world
</span></span></code></pre></div><p>可直接使用 cURL 测试服务是否已经正常运行:</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>curl <span style=color:#cb4b16>\
</span></span></span><span style=display:flex><span><span style=color:#cb4b16></span> --header <span style=color:#2aa198>"Content-Type: application/json"</span> <span style=color:#cb4b16>\
@@ -704,7 +704,7 @@
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><h2 id=发布服务定义到远端仓库>发布服务定义到远端仓库</h2><p>应用开发完成后,我们需要将服务定义(在此示例中是 DemoService 接口定义)发布到外部公开的或组织内部的 maven 仓库,以便调用这些服务的应用能够加载并使用这些服务定义。</p><p>如之前我们看到的,示例项目包含 api、service 两个模块,切换项目到 api 目录,以下命令即可完成发布动作:</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>mvn clean deploy
</span></span></code></pre></div><h2 id=更多内容>更多内容</h2><ul><li>接下来,可以 <a href=../deploy/>快速部署 Dubbo 应用到微服务集群</a></li><li>Dubbo 内置服务发现、负载均衡、流量管控规则等能力,学习 <a href=/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/>如何配置更多服务治理能力</a></li></ul><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/quick-start/starter?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%2A+Edit+the+%22f [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%88%9b%e5%bb%ba%e5%9f%ba%e4%ba%8eSpring%20Boot%e7%9a%84%e5%be%ae%e6%9c%8d%e5%8a%a1%e5%ba%94%e7%94%a8" 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><nav id=TableOfContents><ul><li><a href=#快速创建应用>快速创建应用</a></li><li><a href=#本地启动应用>本地启动应用</a></li><li><a href=#源码解析>源码解析</a><ul><li><a href=#maven-依赖>Maven 依赖</a></li><li><a href=#服务定义>服务定义</a></li><li><a href=#服务实现>服务实现</a></li><li><a href=#发起服务调用>发起服务调用</a></li><li><a href=#应用入口与配置文件>应用入口与配置文件</a></li></ul></li><li><a href=#发布服务定义到远端仓库>发布服务定义到远端仓库</a></li><li><a href=#更多内 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/index.html
index bf7322e30e9..1628a62bca1 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/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/java-sdk/reference-manual/architecture/dubbo-spi/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
+<!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/java-sdk/reference-manual/architecture/dubbo-spi/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
<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>
@@ -627,7 +627,7 @@
<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><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>Protocol</span> {
</span></span><span style=display:flex><span> <span style=color:#586e75>// ...</span>
</span></span><span style=display:flex><span>}
@@ -1262,7 +1262,7 @@
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%89%a9%e5%b1%95%e7%82%b9%e5%bc%80%e5%8f%91%e6%8c%87%e5%8d%97" 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><nav id=TableOfContents><ul><li><a href=#1-dubbo-spi-扩展简介>1. Dubbo SPI 扩展简介</a><ul><li><a href=#11-spi定义>1.1 SPI定义</a></li><li><a href=#12-spi加载流程>1.2 SPI加载流程</a></li></ul></li><li><a href=#2-dubbo-spi-源码分析>2. Dubbo SPI 源码分析</a><ul><li><a href=#21-按名称获取指定扩展类>2.1 按名称获取指定扩展类</a></li><li><a href=#22-加载自适应扩展类>2.2 加载自适应扩展类</a></li><li><a href=#23-ioc-机制>2.3 IOC 机制</a></li><li><a [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/index.xml
index f424366d3ba..59cab8bc4fe 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/index.xml
@@ -131,7 +131,7 @@ Dubbo协议支持,以及Qos协议支持。这些协议的识别都是由一个
<li>增加 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#23-ioc-%e6%9c%ba%e5%88%b6">IOC</a>、<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#24-aop-%e6%9c%ba%e5%88%b6">AOP</a> 能力</li>
<li>增加排序能力</li>
<li>增加条件激活能力</li>
-<li>提供了一系列更灵活的 API,如<a href="https://dubbo.apache.org/zh-cn/#21-%e6%8c%89%e5%90%8d%e7%a7%b0%e8%8e%b7%e5%8f%96%e6%8c%87%e5%ae%9a%e6%89%a9%e5%b1%95%e7%b1%bb">获取所有 SPI 扩展实现</a>、<a href="https://dubbo.apache.org/zh-cn/#211-%e8%8e%b7%e5%8f%96%e6%89%80%e6%9c%89%e6%8b%93%e5%b1%95%e7%b1%bb">根据名称查询某个扩展实现</a>、根据类型查询扩展实现、查询匹配条件的扩展实现等。</li>
+<li>提供了一系列更灵活的 API,如<code>获取所有 SPI 扩展实现</code>、<code>根据名称查询某个扩展实现</code>、根据类型查询扩展实现、查询匹配条件的扩展实现等。</li>
</ul>
<h3 id="11-spi定义">1.1 SPI定义</h3>
<p>Dubbo 中的 SPI 插件是标准的 Java Interface 定义,并且必须包含 <code>@org.apache.dubbo.common.extension.SPI</code> 注解:</p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.html
index bb95b157c64..f74b6b773bb 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/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/java-sdk/reference-manual/config-center/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/><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/java-sdk/reference-manual/config-center/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/><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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/config-center?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%2A+Ed [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%85%8d%e7%bd%ae%e4%b8%ad%e5%bf%83" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.xml
index a9cd600c96c..05281d154fb 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/index.xml
@@ -9,7 +9,7 @@
<li>namespace - 配置命名空间,默认值 <code>dubbo</code>。命名空间通常用于多租户隔离,即对不同用户、不同环境或完全不关联的一系列配置进行逻辑隔离,区别于物理隔离的点是不同的命名空间使用的还是同一物理集群。</li>
<li>group - 配置分组,默认值 <code>dubbo</code>。<code>group</code> 通常用于归类一组相同类型/目的的配置项,是对 <code>namespace</code> 下配置项的进一步隔离。</li>
</ul>
-<p>参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubboconfig-center">配置说明 - 配置项手册</a> 了解 namespace 和 group 之外 config-center 开放的更多配置项。</p>
+<p>参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.config-center">配置说明 - 配置项手册</a> 了解 namespace 和 group 之外 config-center 开放的更多配置项。</p>
<div class="alert alert-info" role="alert">
@@ -70,9 +70,9 @@
</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-java" data-lang="java"><span style="display:flex;"><span>ConfigCenterConfig configCenter <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ConfigCenterConfig();
</span></span><span style="display:flex;"><span>configCenter.setAddress(<span style="color:#2aa198">&#34;nacos://127.0.0.1:8848&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">Nacos 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>如要开启认证鉴权,请参考 <a href="../../registry/nacos/#31-%E8%AE%A4%E8%AF%81">Nacos 注册中心 - 启用认证鉴权</a></p>
+<p>如要开启认证鉴权,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用认证鉴权</a></p>
<h3 id="31-外部化配置">3.1 外部化配置</h3>
<h4 id="311-全局外部化配置">3.1.1 全局外部化配置</h4>
<p><strong>1. 应用开启 config-center 配置</strong></p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/index.html
index e5e62d8e138..418742adcd2 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/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/java-sdk/reference-manual/config-center/introduction/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDoma [...]
+<!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/java-sdk/reference-manual/config-center/introduction/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/introduction/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDoma [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/config-center/introduction?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.m [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%85%8d%e7%bd%ae%e4%b8%ad%e5%bf%83" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/index.html
index ebfb8175387..f50f80aa213 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/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/java-sdk/reference-manual/config-center/nacos/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.a [...]
+<!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/java-sdk/reference-manual/config-center/nacos/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/nacos/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.a [...]
<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>
@@ -634,7 +634,7 @@
</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-properties data-lang=properties><span style=display:flex><span>dubbo.config-center.address<span style=color:#719e07>=</span><span style=color:#2aa198>nacos://127.0.0.1:8848</span>
</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-java data-lang=java><span style=display:flex><span>ConfigCenterConfig configCenter <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> ConfigCenterConfig();
</span></span><span style=display:flex><span>configCenter.setAddress(<span style=color:#2aa198>"nacos://127.0.0.1:8848"</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos>Nacos 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>如要开启认证鉴权,请参考 <a href=../../registry/nacos/#31-%E8%AE%A4%E8%AF%81>Nacos 注册中心 - 启用认证鉴权</a></p><h3 id=31-外部化配置>3.1 外部化配置</h3><h4 id=311-全局外部化配置>3.1.1 全局外部化配置</h4><p><strong>1. 应用开启 config-center 配置</strong></p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-m [...]
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/>Nacos 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>如要开启认证鉴权,请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/>Nacos 注册中心 - 启用认证鉴权</a></p><h3 id=31-外部化配置>3.1 外部化配置</h3><h4 id=311-全局外部化配置>3.1.1 全局外部化配置</h4><p><strong>1. 应用开启 config-center 配置</strong></p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color [...]
</span></span><span style=display:flex><span> config-center
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: nacos://127.0.0.1:2181
</span></span><span style=display:flex><span> <span style=color:#268bd2>config-file</span>: dubbo.properties <span style=color:#586e75># optional</span>
@@ -647,8 +647,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: zookeeper://127.0.0.1:2181
</span></span><span style=display:flex><span> <span style=color:#268bd2>group</span>: dubbo-cluster1
</span></span><span style=display:flex><span> <span style=color:#268bd2>namespace</span>: dev1
-</span></span></code></pre></div><p>对配置中心而言,<code>group</code> 与 <code>namespace</code> 应该是全公司(集群)统一的,应该避免不同应用使用不同的值。</p><h3 id=33-nacos-扩展配置>3.3 Nacos 扩展配置</h3><p>更多 Nacos sdk/server 支持的参数配置请参见 <a href=../../registry/nacos/#35-%E6%9B%B4%E5%A4%9A%E9%85%8D%E7%BD%AE>Nacos 注册中心 - 更多配置</a></p><h2 id=4-流量治理规则>4 流量治理规则</h2><p>对 Nacos 而言,所有流量治理规则和外部化配置都应该是全局可见的,因此相同逻辑集群内的应用都必须使用相同的 namespace 与 group。其中,namespace 的默认值是 <code>public</code>,group 默认值是 <code>dubbo</code>,应用不得擅自修改 namespace 与 group, [...]
-<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 [...]
+</span></span></code></pre></div><p>对配置中心而言,<code>group</code> 与 <code>namespace</code> 应该是全公司(集群)统一的,应该避免不同应用使用不同的值。</p><h3 id=33-nacos-扩展配置>3.3 Nacos 扩展配置</h3><p>更多 Nacos sdk/server 支持的参数配置请参见 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/>Nacos 注册中心 - 更多配置</a></p><h2 id=4-流量治理规则>4 流量治理规则</h2><p>对 Nacos 而言,所有流量治理规则和外部化配置都应该是全局可见的,因此相同逻辑集群内的应用都必须使用相同的 namespace 与 group。其中,namespace 的默认值是 <code>public</code>,group 默认值是 <code>dubbo</code>,应用不得擅自修改 namespace 与 gr [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/config-center/nacos?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=Nacos" 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><nav id=TableOfContents><ul><li><a href=#1-前置条件>1 前置条件</a></li><li><a href=#2-使用说明>2 使用说明</a><ul><li><a href=#21-增加-maven-依赖>2.1 增加 Maven 依赖</a></li><li><a href=#22-启用-nacos-配置中心>2.2 启用 Nacos 配置中心</a></li></ul></li><li><a href=#3-高级配置>3 高级配置</a><ul><li><a href=#31-外部化配置>3.1 外部化配置</a></li><li><a href=#32-设置-group-与-namespace>3.2 设置 group 与 namespace</a></li><li><a href=#33-n [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/config/index.xml
index bed0313d9d9..27d0678d464 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config/index.xml
@@ -222,7 +222,7 @@
<tr>
<td>dubbo.{config-name}.{property}</td>
<td>-Ddubbo.application.name=&ldquo;dubbo-demo&rdquo;<br/><br/>-Ddubbo.registry.address=&ldquo;nacos://host:port&rdquo;<br/><br/>-Ddubbo.protocol.port=&ldquo;20880&rdquo;<br/><br/>&hellip;&hellip;</td>
- <td>Dubbo支持 <a href="aaa">所有的配置项</a> 以JVM参数格式指定。其中<code>config</code> 是指如 application、registry、protocol 等配置项,而<code>property</code>则是指每个配置项中的具体属性。</td>
+ <td>Dubbo支持 <code>所有的配置项</code> 以JVM参数格式指定。其中<code>config</code> 是指如 application、registry、protocol 等配置项,而<code>property</code>则是指每个配置项中的具体属性。</td>
</tr>
<tr>
<td>dubbo.resolve.file</td>
@@ -404,7 +404,7 @@
<tr>
<td>DUBBO_{CONFIG-NAME}.{PROPERTY}</td>
<td>DUBBO_APPLICATION_NAME=&ldquo;dubbo-demo&rdquo;<br/><br/>DUBBO_REGISTRY_ADDRESS=&ldquo;nacos://host:port&rdquo;<br/><br/>DUBBO_PROTOCOL_PORT=&ldquo;20880&rdquo;<br/><br/>&hellip;&hellip;</td>
- <td>Dubbo支持<a href="aaa">所有的配置项</a>以环境变量格式指定。其中<code>CONFIG-NAME</code> 是指如 application、registry、protocol 等配置项,而 <code>PROPERTY</code>则是指每个配置项中的具体属性。</td>
+ <td>Dubbo支持<code>所有的配置项</code>以环境变量格式指定。其中<code>CONFIG-NAME</code> 是指如 application、registry、protocol 等配置项,而 <code>PROPERTY</code>则是指每个配置项中的具体属性。</td>
</tr>
<tr>
<td>DUBBO_DEFAULT_SERIALIZATION</td>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/index.html
index 2766133274b..28844504bf0 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/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/java-sdk/reference-manual/config/properties/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
+<!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/java-sdk/reference-manual/config/properties/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
<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>
@@ -627,7 +627,7 @@
<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> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"findXxx"</span> timeout=<span style=color:#2aa198>"3000"</span> retries=<span style=color:#2aa198>"2"</span> <span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dubbo:reference></span>
</span></span></code></pre></div><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>name</td><td></td><td>string</td><td><b>必填</b></td><td></td><td>标识</td><td>方法名</td><td>1.0.8以上版本</td></tr><tr><td>timeout</td><td><methodName>.timeout</td><td>int</td><td>可选</td><td>缺省为的timeout</td><td>性能调优</td><td>方法调用超时时间(毫秒)</td><td>1.0.8以上版本</td></tr><tr><td>retries</td><td><methodName>.retries</td><td>in [...]
@@ -638,10 +638,10 @@
</span></span><span style=display:flex><span><span style=color:#268bd2></dubbo:protocol></span>
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"jms"</span> p:queue=<span style=color:#2aa198>"xxx"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><table><thead><tr><th>属性</th><th>对应URL参数</th><th>类型</th><th>是否必填</th><th>缺省值</th><th>作用</th><th>描述</th><th>兼容性</th></tr></thead><tbody><tr><td>key</td><td>key</td><td>string</td><td><b>必填</b></td><td></td><td>服务治理</td><td>路由参数键</td><td>2.0.0以上版本</td></tr><tr><td>value</td><td>value</td><td>string</td><td><b>必填</b></td><td></td><td>服务治理</td><td>路由参数值</td><td>2.0.0以上版本</td></tr></tbody></table><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮 [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/config/properties?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%85%8d%e7%bd%ae%e9%a1%b9%e5%8f%82%e8%80%83%e6%89%8b%e5%86%8c" 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><nav id=TableOfContents><ul><li><a href=#jvm-d-参数>JVM(-D) 参数</a></li><li><a href=#环境变量>环境变量</a></li><li><a href=#配置项手册>配置项手册</a><ul><li><a href=#dubbotracingbaggagecorrelation>dubbo.tracing.baggage.correlation</a></li><li><a href=#dubbotracingtracing-exporterotlp-config>dubbo.tracing.tracing-exporter.otlp-config</a></li><li><a href=#dubbotracingtracing-exporterzipkin-config [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a href=#jvm-d-参数>JVM(-D) 参数</a></li><li><a href=#环境变量>环境变量</a></li><li><a href=#配置项手册>配置项手册</a><ul><li><a href=#dubbotracingbaggagecorrelation>dubbo.tracing.baggage.correlation</a></li><li><a href=#dubbotracingtracing-exporterotlp-config>dubbo.tracing.tracing-exporter.otlp-config</a></li><li><a href=#dubbotracingtracing-exporterzipkin-config [...]
<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/overview/mannual/java-sdk/reference-manual/config/spring/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/index.xml
index 3bd2b46e2a8..50bc643faa2 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/index.xml
@@ -13,18 +13,18 @@
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: nacos://${nacos.address:127.0.0.1}:8848?username=nacos&amp;password=nacos
</span></span></code></pre></div><h3 id="dubbo">dubbo</h3>
<ul>
-<li><a href="../../properties#dubboapplication"><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li>
-<li><a href="../../properties#dubboconfig-center"><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li>
-<li><a href="../../properties#dubboconsumer"><strong>dubbo.consumer</strong> - <code>org.apache.dubbo.config.ConsumerConfig</code></a></li>
-<li><a href="../../properties#dubbometadata-report"><strong>dubbo.metadata-report</strong> - <code>org.apache.dubbo.config.MetadataReportConfig</code></a></li>
-<li><a href="../../properties#dubboprotocol"><strong>dubbo.protocol</strong> - <code>org.apache.dubbo.config.ProtocolConfig</code></a></li>
-<li><a href="../../properties#dubboprovider"><strong>dubbo.provider</strong> - <code>org.apache.dubbo.config.ProviderConfig</code></a></li>
-<li><a href="../../properties#dubboregistry"><strong>dubbo.registry</strong> - <code>org.apache.dubbo.config.RegistryConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.application"><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.config-center"><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.consumer"><strong>dubbo.consumer</strong> - <code>org.apache.dubbo.config.ConsumerConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.metadata-report"><strong>dubbo.metadata-report</strong> - <code>org.apache.dubbo.config.MetadataReportConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.protocol"><strong>dubbo.protocol</strong> - <code>org.apache.dubbo.config.ProtocolConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.provider"><strong>dubbo.provider</strong> - <code>org.apache.dubbo.config.ProviderConfig</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.registry"><strong>dubbo.registry</strong> - <code>org.apache.dubbo.config.RegistryConfig</code></a></li>
<li><a href="../../properties#dubbometrics"><strong>dubbo.metrics</strong> - <code>org.apache.dubbo.config.MetricsConfig</code></a></li>
<li><a href="../../properties#dubbotracing"><strong>dubbo.tracing</strong> - <code>org.apache.dubbo.config.TracingConfig</code></a></li>
<li><a href="../../properties#dubbossl"><strong>dubbo.ssl</strong> - <code>org.apache.dubbo.config.SslConfig</code></a></li>
-<li><del><a href="../../properties#dubbomonitor"><strong>dubbo.monitor</strong> - <code>org.apache.dubbo.config.MonitorConfig</code></a></del></li>
-<li><del><a href="../../properties#dubbomodule"><strong>dubbo.module</strong> - <code>org.apache.dubbo.config.ModuleConfig</code></a></del></li>
+<li><del><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.monitor"><strong>dubbo.monitor</strong> - <code>org.apache.dubbo.config.MonitorConfig</code></a></del></li>
+<li><del><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.module"><strong>dubbo.module</strong> - <code>org.apache.dubbo.config.ModuleConfig</code></a></del></li>
</ul>
<h3 id="dubbometrics">dubbo.metrics</h3>
<ul>
@@ -36,7 +36,7 @@
</ul>
<h3 id="dubbotracing">dubbo.tracing</h3>
<ul>
-<li><a href="../../properties#dubbotracingbaggage.correlation"><strong>dubbo.tracing.baggage.correlation</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig$Correlation</code></a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/"><strong>dubbo.tracing.baggage.correlation</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig$Correlation</code></a></li>
<li><a href="../../properties#dubbotracingtracing-exporterotlp-config"><strong>dubbo.tracing.tracing-exporter.otlp-config</strong> - <code>org.apache.dubbo.config.nested.ExporterConfig$OtlpConfig</code></a></li>
<li><a href="../../properties#dubbotracingtracing-exporterzipkin-config"><strong>dubbo.tracing.tracing-exporter.zipkin-config</strong> - <code>org.apache.dubbo.config.nested.ExporterConfig$ZipkinConfig</code></a></li>
<li><a href="../../properties#dubbotracingbaggage"><strong>dubbo.tracing.baggage</strong> - <code>org.apache.dubbo.config.nested.BaggageConfig</code></a></li>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/index.html
index 9cbff8d8357..a105a74644d 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/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/java-sdk/reference-manual/config/spring/spring-boot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
+<!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/java-sdk/reference-manual/config/spring/spring-boot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/spring-boot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
<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>
@@ -636,8 +636,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>port</span>: <span style=color:#2aa198>50052</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>registry</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos
-</span></span></code></pre></div><h3 id=dubbo>dubbo</h3><ul><li><a href=../../properties#dubboapplication><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li><li><a href=../../properties#dubboconfig-center><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li><li><a href=../../properties#dubboconsumer><strong>dubbo.consumer</strong> - <code>org.apache.dubbo.config.ConsumerConfig</code></a></l [...]
-<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 [...]
+</span></span></code></pre></div><h3 id=dubbo>dubbo</h3><ul><li><a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.application><strong>dubbo.application</strong> - <code>org.apache.dubbo.config.ApplicationConfig</code></a></li><li><a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.config-center><strong>dubbo.config-center</strong> - <code>org.apache.dubbo.config.ConfigCenterConfig</code></a></li><li><a href=/zh-cn/overview/m [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/config/spring/spring-boot?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Spring%20Boot" 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><nav id=TableOfContents><ul><li><a href=#applicationyaml>application.yaml</a><ul><li><a href=#配置示例>配置示例</a></li><li><a href=#dubbo>dubbo</a></li><li><a href=#dubbometrics>dubbo.metrics</a></li><li><a href=#dubbotracing>dubbo.tracing</a></li></ul></li><li><a href=#starter列表>starter列表</a><ul><li><a href=#dubbo-spring-boot-starter>dubbo-spring-boot-starter</a></li><li><a href= [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/index.html
index 123c0d382fe..6580dc8fc9d 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/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/java-sdk/reference-manual/faq/1/10/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push [...]
+<!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/java-sdk/reference-manual/faq/1/10/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push [...]
<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>
@@ -628,8 +628,8 @@
<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 [...]
-<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry>注册中心的配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry>注册中心的配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/faq/1/10?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%2A+Edit+th [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=1-10%20-%20%e8%af%bb%e5%86%99%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e6%9c%8d%e5%8a%a1%e7%bc%93%e5%ad%98%e5%a4%b1%e8%b4%a5" 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><nav id=TableOfContents><ul><li><ul><li><a href=#可能的原因>可能的原因</a></li><li><a href=#排查和解决步骤>排查和解决步骤</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/index.html
index 4d594bf47d3..fd667ceebc3 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/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/java-sdk/reference-manual/faq/1/7/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
+<!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/java-sdk/reference-manual/faq/1/7/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/7/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
<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>
@@ -628,8 +628,8 @@
<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 [...]
-<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry>注册中心-配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry>注册中心-配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/faq/1/7?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%2A+Edit+the [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=1-7%20-%20%e9%80%9a%e7%9f%a5%e6%b3%a8%e5%86%8c%e4%ba%8b%e4%bb%b6%e5%a4%b1%e8%b4%a5" 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><nav id=TableOfContents><ul><li><ul><li><a href=#可能的原因>可能的原因</a></li><li><a href=#排查和解决步骤>排查和解决步骤</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/index.html
index f99f3aa3a90..a9b23004318 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/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/java-sdk/reference-manual/faq/1/9/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
+<!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/java-sdk/reference-manual/faq/1/9/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/9/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
<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>
@@ -630,8 +630,8 @@
<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 [...]
如未指定 <code>dubbo.registry.file</code>,则注册中心服务缓存路径默认为 <code>~/.dubbo</code> 目录
(其中 <code>~</code> 为用户的 HOME 目录)</p></blockquote><h3 id=排查和解决步骤>排查和解决步骤</h3><ol><li>检查 <code>dubbo.registry.file</code> 的值有无拼写错误。</li><li>检查是否有其它进程使用了同一份缓存文件。</li><li>如果指定了 <code>dubbo.registry.file</code>,那么检查下它在文件系统的权限。</li><li>排查是否出现了“两个注册中心使用了同一文件存储” 这一情况,如果出现则调整。</li></ol><blockquote><p>另请参阅
-<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry>注册中心的配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry>注册中心的配置项参考手册</a></p></blockquote><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/faq/1/9?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%2A+Edit+the [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=1-9%20-%20%e8%af%bb%e5%86%99%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e6%9c%8d%e5%8a%a1%e7%bc%93%e5%ad%98%e5%a4%b1%e8%b4%a5" 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><nav id=TableOfContents><ul><li><ul><li><a href=#可能的原因>可能的原因</a></li><li><a href=#排查和解决步骤>排查和解决步骤</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/index.xml
index 99313b28b93..1bcea7c8368 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/index.xml
@@ -45,7 +45,7 @@
<h3 id="排查和解决步骤">排查和解决步骤</h3>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心-配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心-配置项参考手册</a></p>
</blockquote></description></item><item><title>1-8 - 销毁时注销(取消订阅)地址失败</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/8/</guid><description><h3 id="可能的原因">可能的原因</h3>
<ol>
<li>可能是注册中心宕机导致造成的消费者注销或者取消订阅时出现错误。</li>
@@ -81,7 +81,7 @@
</ol>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心的配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心的配置项参考手册</a></p>
</blockquote></description></item><item><title>1-10 - 读写注册中心服务缓存失败</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/10/</guid><description><h3 id="可能的原因">可能的原因</h3>
<ol>
<li>多个 Dubbo 进程使用了同一个缓存文件。</li>
@@ -91,7 +91,7 @@
<p>该错误常与 1-9 错误共同出现。检查是否有多个 Dubbo 进程使用了同一个缓存文件或者是否指定多个注册中心使用同一缓存文件。</p>
<blockquote>
<p>另请参阅
-<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">注册中心的配置项参考手册</a></p>
+<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">注册中心的配置项参考手册</a></p>
</blockquote></description></item><item><title>1-11 - 注册服务实例创建失败</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/faq/1/11/</guid><description><h3 id="可能的原因">可能的原因</h3>
<p>可能是 Registry 的 SPI/IOC 配置出错导致。</p>
<h3 id="排查和解决步骤">排查和解决步骤</h3>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/index.xml
index 0cb55fea05e..663142a6520 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/index.xml
@@ -4,7 +4,7 @@
<li>2 服务运维元数据,用于外围运维系统如可视化控制台进行服务查询、测试等。</li>
</ul>
<h2 id="1-地址发现元数据">1 地址发现元数据</h2>
-<p>Dubbo3 中引入了 <a href="https://dubbo.apache.org/zh-cn/overview/core-features/service-discovery/#%E9%9D%A2%E5%90%91%E7%99%BE%E4%B8%87%E5%AE%9E%E4%BE%8B%E9%9B%86%E7%BE%A4%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E6%9C%BA%E5%88%B6">应用级服务发现机制</a> 用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 时代的接口级服务发现。
+<p>Dubbo3 中引入了 <a href="https://dubbo.apache.org/zh-cn/overview/what/core-features/service-discovery#%E9%9D%A2%E5%90%91%E7%99%BE%E4%B8%87%E5%AE%9E%E4%BE%8B%E9%9B%86%E7%BE%A4%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E6%9C%BA%E5%88%B6">应用级服务发现机制</a> 用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 时代的接口级服务发现。
同时为了保持 Dubbo 面向服务/接口的易用性、服务治理的灵活性,Dubbo 围绕应用级服务发现构建了一套元数据机制,即 <code>接口 - 应用映射关系</code> 与 <code>接口配置元数据</code>。</p>
<h3 id="11-接口---应用映射关系">1.1 接口 - 应用映射关系</h3>
<p>Dubbo 一直以来都能做到精确的地址发现,即只订阅 Consumer 声明要关心的服务及相关的地址列表,相比于拉取/订阅全量地址列表,这样做有很好的性能优势。
@@ -42,9 +42,9 @@
</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-java" data-lang="java"><span style="display:flex;"><span>MetadataReportConfig metadataConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> MetadataReportConfig();
</span></span><span style="display:flex;"><span>metadataConfig.setAddress(<span style="color:#2aa198">&#34;nacos://127.0.0.1:8848&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">Nacos 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/">Nacos 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>完整配置参数请参考 <a href="../../config/properties/#metadata-report-config">metadata-report-config</a>。</p>
+<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.metadata-report">metadata-report-config</a>。</p>
<h2 id="4-工作原理">4 工作原理</h2>
<h3 id="41-服务运维元数据">4.1 <a href="../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE">服务运维元数据</a></h3>
<p>在 Nacos 的控制台上可看到服务提供者、消费者注册的服务运维相关的元数据信息:</p>
@@ -69,9 +69,9 @@
</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-java" data-lang="java"><span style="display:flex;"><span>MetadataReportConfig metadataConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> MetadataReportConfig();
</span></span><span style="display:flex;"><span>metadataConfig.setAddress(<span style="color:#2aa198">&#34;zookeeper://127.0.0.1:2181&#34;</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="../../registry/zookeeper/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-zookeeper">zookeeper 注册中心 - 启用配置</a></p>
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/">zookeeper 注册中心 - 启用配置</a></p>
<h2 id="3-高级配置">3 高级配置</h2>
-<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbometadata-report">metadata-report-config</a>。</p>
+<p>完整配置参数请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.metadata-report">metadata-report-config</a>。</p>
<h2 id="4-工作原理">4 工作原理</h2>
<h3 id="41-服务运维元数据">4.1 <a href="../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE">服务运维元数据</a></h3>
<p>Zookeeper 基于树形结构进行数据存储,它的元数据信息位于以下节点:</p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/index.html
index f566f4443c7..2c46101acd4 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/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/java-sdk/reference-manual/metadata-center/nacos/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dub [...]
+<!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/java-sdk/reference-manual/metadata-center/nacos/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dub [...]
<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>
@@ -634,7 +634,7 @@
</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-properties data-lang=properties><span style=display:flex><span>dubbo.metadata-report.address<span style=color:#719e07>=</span><span style=color:#2aa198>nacos://127.0.0.1:8848</span>
</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-java data-lang=java><span style=display:flex><span>MetadataReportConfig metadataConfig <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> MetadataReportConfig();
</span></span><span style=display:flex><span>metadataConfig.setAddress(<span style=color:#2aa198>"nacos://127.0.0.1:8848"</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=../../registry/nacos/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos>Nacos 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>完整配置参数请参考 <a href=../../config/properties/#metadata-report-config>metadata-report-config</a>。</p><h2 id=4-工作原理>4 工作原理</h2><h3 id=41-服务运维元数据>4.1 <a href=../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE>服务运维元数据</a></h3><p>在 Nacos 的控制台上可看到服务提供者、消费者注册的服务运维相关的元数据信息: [...]
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/>Nacos 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>完整配置参数请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.metadata-report>metadata-report-config</a>。</p><h2 id=4-工作原理>4 工作原理</h2><h3 id=41-服务运维元数据>4.1 <a href=../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE>服务运维元数据</a></h3><p>在 Nacos 的 [...]
</span></span><span style=display:flex><span>Consumer<span style=color:#719e07>:</span> <span style=color:#2aa198>namespace: 'public', dataId: '{service name}:{version}:{group}:consumer:{application name}', group: 'dubbo'</span>
</span></span></code></pre></div><p>当 version 或者 group 不存在时<code>:</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-properties data-lang=properties><span style=display:flex><span>Provider<span style=color:#719e07>:</span> <span style=color:#2aa198>namespace: 'public', dataId: '{service name}:::provider:{application name}', group: 'dubbo'</span>
</span></span><span style=display:flex><span>Consumer<span style=color:#719e07>:</span> <span style=color:#2aa198>namespace: 'public', dataId: '{service name}:::consumer:{application name}', group: 'dubbo'</span>
@@ -644,7 +644,7 @@
</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-properties data-lang=properties><span style=display:flex><span>dubbo.application.metadata-type<span style=color:#719e07>=</span><span style=color:#2aa198>local</span>
</span></span><span style=display:flex><span>dubbo.metadata-report.report-metadata<span style=color:#719e07>=</span><span style=color:#2aa198>true</span>
</span></span></code></pre></div><p>Nacos server 中的元数据信息详情如下:</p><p><img src=/imgs/blog/dubbo-metadata-nacos-2.png alt=image-dubbo-metadata-nacos-2.png></p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/metadata-center/nacos?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% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Nacos" 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><nav id=TableOfContents><ul><li><a href=#1-预备工作>1 预备工作</a></li><li><a href=#2-使用说明>2 使用说明</a><ul><li><a href=#21-增加-maven-依赖>2.1 增加 Maven 依赖</a></li><li><a href=#22-启用-nacos-配置中心>2.2 启用 Nacos 配置中心</a></li></ul></li><li><a href=#3-高级配置>3 高级配置</a></li><li><a href=#4-工作原理>4 工作原理</a><ul><li><a href=#41-服务运维元数据>4.1 服务运维元数据</a></li><li><a href=#42-地址发现---接口-应用映射>4.2 地址发现 - 接口-应用映 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/index.html
index 35d01bc69ca..c8043b69621 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/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/java-sdk/reference-manual/metadata-center/overview/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain", [...]
+<!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/java-sdk/reference-manual/metadata-center/overview/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain", [...]
<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>
@@ -627,7 +627,7 @@
<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 [...]
同时为了保持 Dubbo 面向服务/接口的易用性、服务治理的灵活性,Dubbo 围绕应用级服务发现构建了一套元数据机制,即 <code>接口 - 应用映射关系</code> 与 <code>接口配置元数据</code>。</p><h3 id=11-接口---应用映射关系>1.1 接口 - 应用映射关系</h3><p>Dubbo 一直以来都能做到精确的地址发现,即只订阅 Consumer 声明要关心的服务及相关的地址列表,相比于拉取/订阅全量地址列表,这样做有很好的性能优势。
在应用级服务发现模型中,想做到精确地址订阅并不容易,因为 Dubbo Consumer 只声明了要消费的接口列表,Consumer 需要能够将接口转换为 Provider 应用名才能进行精准服务订阅,</p><p>为此,Dubbo 需要在元数据中心维护这一份 <code>接口名->应用名</code> 的对应关系,Dubbo3 中通过 provider 启动的时候主动向元数据中心上报实现。
接口 (service name) - 应用 (Provider application name) 的映射关系可以是一对多的,即一个 service name 可能会对应多个不同的 application name。</p><p>以 zookeeper 为例,映射关系保存在以下位置:</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>$ ./zkCli.sh
@@ -752,7 +752,7 @@
</span></span><span style=display:flex><span>dubbo.metadata-report.cycle-report<span style=color:#719e07>=</span><span style=color:#2aa198>false ##非必须,default值true</span>
</span></span><span style=display:flex><span>dubbo.metadata-report.sync.report<span style=color:#719e07>=</span><span style=color:#2aa198>false ##非必须,default值为false</span>
</span></span></code></pre></div><blockquote><p>如果元数据地址(dubbo.metadata-report.address)也不进行配置,会判断注册中心的协议是否支持元数据中心,如果支持,会使用注册中心的地址来用作元数据中心。</p></blockquote><p>请参见 <a href=../../spi/description/metadata-report/>metadata-report</a> 了解如何扩展自定义第三方实现。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/metadata-center/overview?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% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%85%83%e6%95%b0%e6%8d%ae%e4%b8%ad%e5%bf%83%e6%a6%82%e8%bf%b0" 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><nav id=TableOfContents><ul><li><a href=#1-地址发现元数据>1 地址发现元数据</a><ul><li><a href=#11-接口---应用映射关系>1.1 接口 - 应用映射关系</a></li><li><a href=#12-接口配置元数据>1.2 接口配置元数据</a></li></ul></li><li><a href=#2-服务运维元数据>2 服务运维元数据</a><ul><li><a href=#21-provider-上报的元数据>2.1 Provider 上报的元数据</a></li></ul></li><li><a href=#3-元数据上报工作机制>3 元数据上报工作机制</a><ul><li><a href=#31-retrytimes-失败重试>3.1 retrytimes 失 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/index.html
index afd88dc63ee..6ef2a26a24a 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/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/java-sdk/reference-manual/metadata-center/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
+<!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/java-sdk/reference-manual/metadata-center/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
<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>
@@ -634,7 +634,7 @@
</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-properties data-lang=properties><span style=display:flex><span>dubbo.metadata-report.address<span style=color:#719e07>=</span><span style=color:#2aa198>zookeeper://127.0.0.1:2181</span>
</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-java data-lang=java><span style=display:flex><span>MetadataReportConfig metadataConfig <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> MetadataReportConfig();
</span></span><span style=display:flex><span>metadataConfig.setAddress(<span style=color:#2aa198>"zookeeper://127.0.0.1:2181"</span>);
-</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=../../registry/zookeeper/#22-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-zookeeper>zookeeper 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>完整配置参数请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbometadata-report>metadata-report-config</a>。</p><h2 id=4-工作原理>4 工作原理</h2><h3 id=41-服务运维元数据>4.1 <a href=../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE>服务运维元数 [...]
+</span></span></code></pre></div><p><code>address</code> 格式请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/>zookeeper 注册中心 - 启用配置</a></p><h2 id=3-高级配置>3 高级配置</h2><p>完整配置参数请参考 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.metadata-report>metadata-report-config</a>。</p><h2 id=4-工作原理>4 工作原理</h2><h3 id=41-服务运维元数据>4.1 <a href=../overview/#2-%E6%9C%8D%E5%8A%A1%E8%BF%90%E7%BB%B4%E5%85%83%E6%95%B0%E6%8D%AE>服务运维元数据</a></h3><p>Zo [...]
</span></span><span style=display:flex><span>Consumer: /dubbo/metadata/{interface name}/{version}/{group}/consumer/{application name}
</span></span></code></pre></div><p>当 version 或者 group 不存在时,version 路径和 group 路径会取消,路径如下:</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-text data-lang=text><span style=display:flex><span>Provider: /dubbo/metadata/{interface name}/provider/{application name}
</span></span><span style=display:flex><span>Consumer: /dubbo/metadata/{interface name}/consumer/{application name}
@@ -697,7 +697,7 @@
</span></span><span style=display:flex><span><span style=color:#268bd2>dataLength</span> <span style=color:#719e07>=</span> <span style=color:#2aa198>1286</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>numChildren</span> <span style=color:#719e07>=</span> <span style=color:#2aa198>0</span>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Zookeeper" 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><nav id=TableOfContents><ul><li><a href=#1-预备工作>1 预备工作</a></li><li><a href=#2-使用说明>2 使用说明</a><ul><li><a href=#21-增加-maven-依赖>2.1 增加 Maven 依赖</a></li><li><a href=#22-启用-zookeeper-配置中心>2.2 启用 Zookeeper 配置中心</a></li></ul></li><li><a href=#3-高级配置>3 高级配置</a></li><li><a href=#4-工作原理>4 工作原理</a><ul><li><a href=#41-服务运维元数据>4.1 服务运维元数据</a></li><li><a href=#42-地址发现---接口-应用名映射>4.2 地址发现 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/index.xml
index 19db761d086..ec3808935c9 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/index.xml
@@ -91,13 +91,13 @@
<h2 id="编程模式">编程模式</h2>
<p>使用 triple 协议时,开发者可以使用 <code>Java Interface</code>、<code>Protobuf(IDL)</code> 两种方式定义 RPC 服务,两种服务定义方式的协议能力是对等的,仅影响开发者的编程体验、序列化方式,具体选用那种开发模式,取决于使用者的业务背景。</p>
<h3 id="java接口">Java接口</h3>
-<p><strong>适合于 Dubbo 老用户、没有跨语言诉求的开发团队,具备学习成本低的优势,<a href="">Dubbo2 老用户可以零成本切换到该协议</a></strong>。</p>
+<p>适合于 Dubbo 老用户、没有跨语言诉求的开发团队,具备学习成本低的优势,<code>Dubbo2 老用户可以零成本切换到该协议</code>。</p>
<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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">DemoService</span> {
</span></span><span style="display:flex;"><span> String <span style="color:#268bd2">sayHello</span>(String name);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>这种模式下,序列化方式可以选用 Hessian、JSON、Kryo、JDK、自定义扩展等任意编码协议。在使用体验上,可以说与老版本 dubbo 协议没有任何区别,只需要改一个 protocol 配置项即可,因此对于 dubbo 协议迁移到 triple 也会更平滑。</p>
-<p>请通过【进阶学习 - 通信协议】查看 <a href="">java Interface + Triple 协议的具体使用示例</a>。</p>
+<p>请通过【进阶学习 - 通信协议】查看 <code>java Interface + Triple 协议的具体使用示例</code>。</p>
<h3 id="protobuf">Protobuf</h3>
<p>使用 Protobuf(IDL) 的方式定义服务,<strong>适合于当前或未来有跨语言诉求的开发团队,同一份 IDL 服务可同时用于 Java/Go/Node.js 等多语言微服务开发,劣势是学习成本较高</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-Protobuf" data-lang="Protobuf"><span style="display:flex;"><span>syntax <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;proto3&#34;</span>;
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/index.html
index 008e146c140..f4a52be97d0 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/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/java-sdk/reference-manual/protocol/overview/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
+<!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/java-sdk/reference-manual/protocol/overview/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/overview/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/protocol/overview?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%8d%8f%e8%ae%ae%e6%a6%82%e8%bf%b0" 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><nav id=TableOfContents><ul><li><a href=#协议选型>协议选型</a></li><li><a href=#多协议扩展>多协议扩展</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseove [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/index.html
index d466e22ad59..e6d8ca94eb9 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/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/java-sdk/reference-manual/protocol/triple/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.or [...]
+<!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/java-sdk/reference-manual/protocol/triple/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.or [...]
<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>
@@ -627,10 +627,10 @@
<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> String <span style=color:#268bd2>sayHello</span>(String name);
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>这种模式下,序列化方式可以选用 Hessian、JSON、Kryo、JDK、自定义扩展等任意编码协议。在使用体验上,可以说与老版本 dubbo 协议没有任何区别,只需要改一个 protocol 配置项即可,因此对于 dubbo 协议迁移到 triple 也会更平滑。</p><p>请通过【进阶学习 - 通信协议】查看 <a href>java Interface + Triple 协议的具体使用示例</a>。</p><h3 id=protobuf>Protobuf</h3><p>使用 Protobuf(IDL) 的方式定义服务,<strong>适合于当前或未来有跨语言诉求的开发团队,同一份 IDL 服务可同时用于 Java/Go/Node.js 等多语言微服务开发,劣势是学习成本较高</strong>。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4 [...]
+</span></span></code></pre></div><p>这种模式下,序列化方式可以选用 Hessian、JSON、Kryo、JDK、自定义扩展等任意编码协议。在使用体验上,可以说与老版本 dubbo 协议没有任何区别,只需要改一个 protocol 配置项即可,因此对于 dubbo 协议迁移到 triple 也会更平滑。</p><p>请通过【进阶学习 - 通信协议】查看 <code>java Interface + Triple 协议的具体使用示例</code>。</p><h3 id=protobuf>Protobuf</h3><p>使用 Protobuf(IDL) 的方式定义服务,<strong>适合于当前或未来有跨语言诉求的开发团队,同一份 IDL 服务可同时用于 Java/Go/Node.js 等多语言微服务开发,劣势是学习成本较高</strong>。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size: [...]
</span></span><span style=display:flex><span><span style=color:#719e07>option</span> java_multiple_files <span style=color:#719e07>=</span> <span style=color:#cb4b16>true</span>;
</span></span><span style=display:flex><span><span style=color:#719e07>package</span> org<span style=color:#719e07>.</span>apache.dubbo.springboot.demo.idl;
</span></span><span style=display:flex><span>
@@ -652,7 +652,7 @@
</span></span><span style=display:flex><span> org.apache.dubbo.springboot.demo.idl.GreeterReply <span style=color:#268bd2>greet</span>(org.apache.dubbo.springboot.demo.idl.GreeterRequest request);
</span></span><span style=display:flex><span> <span style=color:#586e75>// more generated codes here...</span>
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>Protobuf 模式支持序列化方式有 Protobuf Binary、Protobuf JSON 两种模式。最后,请通过【进阶学习 - 通信协议】查看 <a href>Protobuf (IDL) + Triple 协议的具体使用示例</a>。</p><h4 id=3-我该使用哪种编程模式如何选择>3. 我该使用哪种编程模式,如何选择?</h4><table><thead><tr><th></th><th>是</th><th>否</th></tr></thead><tbody><tr><td>公司的业务是否有用 Java 之外的其他语言,跨语言互通的场景是不是普遍?</td><td>Protobuf</td><td>Java 接口</td></tr><tr><td>公司里的开发人员是否熟悉 Protobuf,愿意接受 Protobuf 的额外成本吗?</td><td>Protobuf</td><td>Java 接口</td></tr><tr><td>是否有标准 gRPC 互通诉求?</td><td [...]
+</span></span></code></pre></div><p>Protobuf 模式支持序列化方式有 Protobuf Binary、Protobuf JSON 两种模式。最后,请通过【进阶学习 - 通信协议】查看 <code>Protobuf (IDL) + Triple 协议的具体使用示例</code>。</p><h4 id=3-我该使用哪种编程模式如何选择>3. 我该使用哪种编程模式,如何选择?</h4><table><thead><tr><th></th><th>是</th><th>否</th></tr></thead><tbody><tr><td>公司的业务是否有用 Java 之外的其他语言,跨语言互通的场景是不是普遍?</td><td>Protobuf</td><td>Java 接口</td></tr><tr><td>公司里的开发人员是否熟悉 Protobuf,愿意接受 Protobuf 的额外成本吗?</td><td>Protobuf</td><td>Java 接口</td></tr><tr><td>是否有标准 gRPC 互通诉求?</td><t [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>@RequestMapping</span>(<span style=color:#2aa198>"/demo"</span>)
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>DemoService</span> {
</span></span><span style=display:flex><span> <span style=color:#268bd2>@GetMapping</span>(value <span style=color:#719e07>=</span> <span style=color:#2aa198>"/hello"</span>)
@@ -699,7 +699,7 @@
</span></span><span style=display:flex><span> string avatar <span style=color:#719e07>=</span> 6 <span style=color:#719e07>[</span>json_name<span style=color:#719e07>=</span><span style=color:#2aa198>"avt"</span><span style=color:#719e07>]</span>; <span style=color:#586e75>//用户头像</span>
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><ul><li>生成的java代码</li></ul><p><img src=/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png alt=image></p><h4 id=3-字段默认值>3. 字段默认值</h4><ul><li>对于字符串,默认值为空字符串。</li><li>对于字节,默认值为空字节。</li><li>对于bools,默认值为false。</li><li>对于数字类型,默认值为零。</li><li>对于枚举,默认值为第一个定义的枚举值,它必须为0。</li><li>对于消息字段,未设置字段。 它的确切值是语言相关的。 有关详细信息,请参阅生成的代码指南。</li></ul><h4 id=4-整体结构>4. 整体结构</h4><table><thead><tr><th>Feature</th><th>Java Interface</th><th>Protobuf</ [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/protocol/triple?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%2A+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%8d%8f%e8%ae%ae%e6%a6%82%e8%bf%b0" 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><nav id=TableOfContents><ul><li><a href=#编程模式>编程模式</a><ul><li><a href=#java接口>Java接口</a></li><li><a href=#protobuf>Protobuf</a></li></ul></li><li><a href=#streaming流式通信>Streaming流式通信</a><ul><li></li></ul></li><li><a href=#rest-支持>REST 支持</a><ul><li><a href=#spring-web注解>Spring Web注解</a></li><li><a href=#jax-rs注解>JAX-RS注解</a></li></ul></li><li><a href=#异常类型传递>异常类型传递</a></li> [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/index.xml
index 26d21267753..483fe7b4965 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/index.xml
@@ -109,7 +109,7 @@
<code>detail profiler</code> 相较 <code>simple profiler</code> 模式多采集了每个 filter 的处理耗时、协议上的具体耗时等。
在 <code>simple profiler</code> 模式下如果发现 Dubbo 框架内部存在耗时长的情况,可以开启 <code>detail profiler</code> 模式,以便更好地排查问题。</p>
<blockquote>
-<p><a href="../../../advanced-features-and-usage/performance/profiler/">请求耗时采样</a></p>
+<p><code>请求耗时采样</code></p>
</blockquote>
<h3 id="enablesimpleprofiler-命令">enableSimpleProfiler 命令</h3>
<p>开启 <code>simple profiler</code> 模式,默认开启</p>
@@ -126,7 +126,7 @@
</span></span></code></pre></div><h3 id="enabledetailprofiler-命令">enableDetailProfiler 命令</h3>
<p>开启 <code>detail profiler</code> 模式,默认关闭,需要开启 <code>simple profiler</code> 模式才会真实开启</p></description></item><item><title>路由状态命令</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/</guid><description><p>Dubbo 的 [...]
<blockquote>
-<p><a href="../../../advanced-features-and-usage/performance/router-snapshot/">路由状态采集</a></p>
+<p><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot">路由状态采集</a></p>
</blockquote>
<h3 id="getroutersnapshot-命令">getRouterSnapshot 命令</h3>
<p>获取当前的每层路由的分组状态。(仅支持 StateRouter)</p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/index.html
index 1247334b6d6..cf1c2e3c402 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/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/java-sdk/reference-manual/qos/introduction/profiler/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
+<!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/java-sdk/reference-manual/qos/introduction/profiler/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/profiler/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain [...]
<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>
@@ -629,7 +629,7 @@
<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 [...]
<code>detail profiler</code> 相较 <code>simple profiler</code> 模式多采集了每个 filter 的处理耗时、协议上的具体耗时等。
-在 <code>simple profiler</code> 模式下如果发现 Dubbo 框架内部存在耗时长的情况,可以开启 <code>detail profiler</code> 模式,以便更好地排查问题。</p><blockquote><p><a href=../../../advanced-features-and-usage/performance/profiler/>请求耗时采样</a></p></blockquote><h3 id=enablesimpleprofiler-命令>enableSimpleProfiler 命令</h3><p>开启 <code>simple profiler</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-fallback data-lang=fallba [...]
+在 <code>simple profiler</code> 模式下如果发现 Dubbo 框架内部存在耗时长的情况,可以开启 <code>detail profiler</code> 模式,以便更好地排查问题。</p><blockquote><p><code>请求耗时采样</code></p></blockquote><h3 id=enablesimpleprofiler-命令>enableSimpleProfiler 命令</h3><p>开启 <code>simple profiler</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-fallback data-lang=fallback><span style=display:flex><span>dubbo>enableSimpleProfiler
</span></span><span style=display:flex><span>OK
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>dubbo>
@@ -650,7 +650,7 @@
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>dubbo>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/qos/introduction/profiler?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%80%a7%e8%83%bd%e9%87%87%e6%a0%b7%e5%91%bd%e4%bb%a4" 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><nav id=TableOfContents><ul><li><ul><li><a href=#enablesimpleprofiler-命令>enableSimpleProfiler 命令</a></li><li><a href=#disablesimpleprofiler-命令>disableSimpleProfiler 命令</a></li><li><a href=#enabledetailprofiler-命令>enableDetailProfiler 命令</a></li><li><a href=#disabledetailprofiler-命令>disableDetailProfiler 命令</a></li><li><a href=#setprofilerwarnpercent-命令>setProfilerWarnPercen [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/index.html
index e15b8eb6c3f..8796e2b6afc 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/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/java-sdk/reference-manual/qos/introduction/router-snapshot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["s [...]
+<!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/java-sdk/reference-manual/qos/introduction/router-snapshot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["s [...]
<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>
@@ -627,7 +627,7 @@
<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>com.dubbo.dubbointegration.BackendService@2c2e824a
</span></span><span style=display:flex><span>[ All Invokers:2 ] [ Valid Invokers: 2 ]
</span></span><span style=display:flex><span>
@@ -680,7 +680,7 @@
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>dubbo>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/qos/introduction/router-snapshot?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-sta [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e8%b7%af%e7%94%b1%e7%8a%b6%e6%80%81%e5%91%bd%e4%bb%a4" 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><nav id=TableOfContents><ul><li><ul><li><a href=#getroutersnapshot-命令>getRouterSnapshot 命令</a></li><li><a href=#enableroutersnapshot-命令>enableRouterSnapshot 命令</a></li><li><a href=#disableroutersnapshot-命令>disableRouterSnapshot 命令</a></li><li><a href=#getenabledroutersnapshot-命令>getEnabledRouterSnapshot 命令</a></li><li><a href=#getrecentroutersnapshot-命令>getRecentRouterSnaps [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/index.xml
index ff11b333f04..5ec42005518 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/index.xml
@@ -19,7 +19,7 @@
</div>
-<p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/registry">registry 配置参考手册</a>或通过 parameters 参数进行扩展。</p>
+<p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties#dubbo.registry">registry 配置参考手册</a>或通过 parameters 参数进行扩展。</p>
<h2 id="配置中心与元数据中心">配置中心与元数据中心</h2>
<p>配置中心、元数据中心是实现 Dubbo 高阶服务治理能力会依赖的组件,如流量管控规则等,相比于注册中心通常这两个组件的配置是可选的。</p>
<p>需要注意的是,<strong>对于部分注册中心类型(如 Zookeeper、Nacos 等),Dubbo 会默认同时将其用作元数据中心和配置中心(建议保持默认开启状态)。</strong></p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/overview/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/overview/index.html
index 2801a778dcf..7b8d5d3e85c 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/overview/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/overview/index.html
@@ -9,7 +9,7 @@ address: nacos://localhost:8848?backup=localshot:8846,localshot:8847
配置中心与元数据中心 配置中心、元数据中心是实现 Dubbo 高阶服务治理能力会依赖的组件,如流量管控规则等,相比于注册中心通常这两个组件的配置是可选的。
需要注意的是,对于部分注册中心类型(如 Zookeeper、Nacos 等),Dubbo 会默认同时将其用作元数据中心和配置中心(建议保持默认开启状态)。
dubbo registry address: nacos://localhost:8848 框架解析后的默认行为:
-dubbo registry address: nacos://localhost:8848 config-center address: nacos://localhost:8848 metadata-report address: nacos://localhost:8848 如果您不想使用 nacos 作为配置中心,可以通过以下两个参数来调整或控制默认行为:"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-11T23:45:17+08:00"><meta itemprop=name content="注册中心概述"><meta itemprop=description content="注册中心是 Dubbo 服务治理的核心组件 [...]
+dubbo registry address: nacos://localhost:8848 config-center address: nacos://localhost:8848 metadata-report address: nacos://localhost:8848 如果您不想使用 nacos 作为配置中心,可以通过以下两个参数来调整或控制默认行为:"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="注册中心概述"><meta itemprop=description content="注册中心是 Dubbo 服务治理的核心组件 [...]
基本使用 开发应用时可以指定 Dubbo 注册中心(registry)组件,配置很简单,只需指定注册中心的集群地址即可:
以 Spring Boot 开发为例,在 application.yml 增加 registry 配置项目
dubbo registry address: {protocol}://{cluster-address} 其中,protocol 为选择的配置中心类型,cluster-address 为访问注册中心的集群地址,如
@@ -20,7 +20,7 @@ address: nacos://localhost:8848?backup=localshot:8846,localshot:8847
配置中心与元数据中心 配置中心、元数据中心是实现 Dubbo 高阶服务治理能力会依赖的组件,如流量管控规则等,相比于注册中心通常这两个组件的配置是可选的。
需要注意的是,对于部分注册中心类型(如 Zookeeper、Nacos 等),Dubbo 会默认同时将其用作元数据中心和配置中心(建议保持默认开启状态)。
dubbo registry address: nacos://localhost:8848 框架解析后的默认行为:
-dubbo registry address: nacos://localhost:8848 config-center address: nacos://localhost:8848 metadata-report address: nacos://localhost:8848 如果您不想使用 nacos 作为配置中心,可以通过以下两个参数来调整或控制默认行为:"><meta itemprop=dateModified content="2025-11-11T23:45:17+08:00"><meta itemprop=wordCount content="116"><meta name=twitter:card content="summary"><meta name=twitter:title content="注册中心概述"><meta name=twitter:description content="注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务发现是微服务实现动态扩缩容、负载均衡、、流量治理的基 [...]
+dubbo registry address: nacos://localhost:8848 config-center address: nacos://localhost:8848 metadata-report address: nacos://localhost:8848 如果您不想使用 nacos 作为配置中心,可以通过以下两个参数来调整或控制默认行为:"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="116"><meta name=twitter:card content="summary"><meta name=twitter:title content="注册中心概述"><meta name=twitter:description content="注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务发现是微服务实现动态扩缩容、负载均衡、、流量治理的基 [...]
基本使用 开发应用时可以指定 Dubbo 注册中心(registry)组件,配置很简单,只需指定注册中心的集群地址即可:
以 Spring Boot 开发为例,在 application.yml 增加 registry 配置项目
dubbo registry address: {protocol}://{cluster-address} 其中,protocol 为选择的配置中心类型,cluster-address 为访问注册中心的集群地址,如
@@ -771,7 +771,7 @@ dubbo
<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> registry
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: {protocol}://{cluster-address}
-</span></span></code></pre></div><p>其中,protocol 为选择的配置中心类型,cluster-address 为访问注册中心的集群地址,如</p><p><code>address: nacos://localhost:8848</code></p><p>如需集群格式地址可使用 backup 参数</p><p><code>address: nacos://localhost:8848?backup=localshot:8846,localshot:8847</code></p><div class="alert alert-info" role=alert><h4 class=alert-heading>流的语义保证</h4>3.3.0 及之后的版本可不配置注册中心。而在 3.3.0 版本之前的 Dubbo 应用必须指定注册中心配置,即使不启用注册中心也要配置(可通过设置地址为空 address=‘N/A’ )。</div><p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参 [...]
+</span></span></code></pre></div><p>其中,protocol 为选择的配置中心类型,cluster-address 为访问注册中心的集群地址,如</p><p><code>address: nacos://localhost:8848</code></p><p>如需集群格式地址可使用 backup 参数</p><p><code>address: nacos://localhost:8848?backup=localshot:8846,localshot:8847</code></p><div class="alert alert-info" role=alert><h4 class=alert-heading>流的语义保证</h4>3.3.0 及之后的版本可不配置注册中心。而在 3.3.0 版本之前的 Dubbo 应用必须指定注册中心配置,即使不启用注册中心也要配置(可通过设置地址为空 address=‘N/A’ )。</div><p>每个注册中心组件有自己特有的配置,可以用来控制命名空间、分组、鉴权等,具体可以参 [...]
</span></span><span style=display:flex><span> registry
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: nacos://localhost:8848
</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-yaml data-lang=yaml><span style=display:flex><span>dubbo
@@ -789,7 +789,7 @@ dubbo
</span></span><span style=display:flex><span> config-center
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: apollo://localhost:8848
</span></span></code></pre></div><h2 id=注册中心生态>注册中心生态</h2><p>Dubbo 目前支持的主流注册中心实现包括:</p><ul><li>Zookeeper</li><li>Nacos</li><li>Redis</li><li>Consul</li><li>Etcd</li><li>更多实现</li></ul><p>同时也支持 Kubernetes、Mesh 体系的服务发现,具体请参考 <a href=http://localhost:1313/zh-cn/overview/mannual/java-sdk/tasks/deploy/>使用教程 - kubernetes部署</a></p><p>另外,<a href=https://github.com/apache/dubbo-spi-extensions>Dubbo 扩展生态</a> 还提供了 Consul、Eureka、Etcd 等注册中心扩展实现。也欢迎通过 <a href=../../spi/>registry spi 扩展</a> 贡献更多的注册中心实现到 [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/registry/overview?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e6%a6%82%e8%bf%b0" 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><nav id=TableOfContents><ul><li><a href=#基本使用>基本使用</a></li><li><a href=#配置中心与元数据中心>配置中心与元数据中心</a></li><li><a href=#注册中心生态>注册中心生态</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><butto [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/index.html
index 3529d7acfca..ed952177994 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/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/java-sdk/reference-manual/registry/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apa [...]
+<!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/java-sdk/reference-manual/registry/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apa [...]
<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>
@@ -692,8 +692,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: zookeeper://localhost:2181
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>30</span> * <span style=color:#2aa198>1000</span>* <span style=color:#586e75># 连接超时时间,默认 30s</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>session</span>: <span style=color:#2aa198>60</span> * <span style=color:#2aa198>1000</span>* <span style=color:#586e75># 会话超时时间,默认 60s</span>
-</span></span></code></pre></div><p>Zookeeper 注册中心还支持其他一些控制参数,具体可参见<a href=../../config/properties#registry>Registry 配置项手册</a></p><h2 id=3-工作原理>3 工作原理</h2><p>在前面的一节中,我们讲解了应用级服务发现与接口级服务发现的区别,在 Zookeeper 实现中,它们的存储结构也存在较大差异。总体来说,Zookeeper 注册中心实现支持以下高可用能力:</p><ul><li>当提供者出现断电等异常停机时,注册中心能自动删除提供者信息</li><li>当注册中心重启时,能自动恢复注册数据,以及订阅请求</li><li>当会话过期时,能自动恢复注册数据,以及订阅请求</li><li>当设置 <code>registry.check=false</code> 时,记录失败注册和订阅请求,后台定时重试</li></ul><h3 id=31-接口级节点结构>3.1 接口级节点结构</h3><p><img src=/imgs/user [...]
-<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 [...]
+</span></span></code></pre></div><p>Zookeeper 注册中心还支持其他一些控制参数,具体可参见<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.registry>Registry 配置项手册</a></p><h2 id=3-工作原理>3 工作原理</h2><p>在前面的一节中,我们讲解了应用级服务发现与接口级服务发现的区别,在 Zookeeper 实现中,它们的存储结构也存在较大差异。总体来说,Zookeeper 注册中心实现支持以下高可用能力:</p><ul><li>当提供者出现断电等异常停机时,注册中心能自动删除提供者信息</li><li>当注册中心重启时,能自动恢复注册数据,以及订阅请求</li><li>当会话过期时,能自动恢复注册数据,以及订阅请求</li><li>当设置 <code>registry.check=false</code> 时,记录失败注册和订阅请求,后台定时重试</li></ul><h3 i [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/registry/zookeeper?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=%e4%bd%bf%e7%94%a8%20Zookeeper%20%e4%bd%9c%e4%b8%ba%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e5%ae%9e%e7%8e%b0%e8%87%aa%e5%8a%a8%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0" 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><nav id=TableOfContents><ul><li><a href=#1-基本配置>1 基本配置</a><ul><li><a href=#11-增加-maven-依赖>1.1 增加 Maven 依赖</a></li><li><a href=#12-选择-zookeeper-版本>1.2 选择 Zookeeper 版本</a></li><li><a href=#13-配置并启用-zookeeper>1.3 配置并启用 Zookeeper</a></li></ul></li><li><a href=#2-高级配置>2 高级配置</a><ul><li><a href=#21-认证与鉴权>2.1 认证与鉴权</a></li><li><a href=#22-分组隔离>2.2 分组隔离</a></li><li><a href=#23-其他扩展 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/index.xml
index 0fbe15e3f2c..13e70ff08a9 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/index.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>triple 协议支持的序列化 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/</link><description>Recent content in triple 协议支持的序列化 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-m [...]
-<p><a href="" target="_blank">Protobuf(Protocol Buffers)</a> 是由 Google 开发的一种轻量级、高效的数据交换格式,它被用于结构化数据的序列化、反序列化和传输。 相比于XML 和JSON 等文本格式,Protobuf 具有更小的数据体积、更快的解析速度和更强的可扩展性。</p>
+<p>Protobuf(Protocol Buffers) 是由 Google 开发的一种轻量级、高效的数据交换格式,它被用于结构化数据的序列化、反序列化和传输。 相比于XML 和JSON 等文本格式,Protobuf 具有更小的数据体积、更快的解析速度和更强的可扩展性。</p>
<h2 id="2-使用方式">2 使用方式</h2>
<p><strong>在使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/protocols/triple/idl/">Protobuf(IDL) 开发 triple 通信服务</a> 的时候,dubbo server 将自动启用 protobuf、protobuf-json 序列化模式支持。</strong></p>
<h3 id="21-添加依赖">2.1 添加依赖</h3>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/index.html
index f257833a10c..ee8f7869ec3 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/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/java-sdk/reference-manual/serialization/triple/protobuf/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCook [...]
+<!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/java-sdk/reference-manual/serialization/triple/protobuf/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCook [...]
<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>
@@ -627,7 +627,7 @@
<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> <span style=color:#268bd2><dependency></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><groupId></span>com.google.protobuf<span style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><artifactId></span>protobuf-java<span style=color:#268bd2></artifactId></span>
@@ -666,7 +666,7 @@
</span></span><span style=display:flex><span>dubbo.protocol.name<span style=color:#719e07>=</span><span style=color:#2aa198>tri</span>
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"tri"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/serialization/triple/protobuf?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-starte [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%a6%82%e4%bd%95%e5%9c%a8%20triple%20%e5%8d%8f%e8%ae%ae%e5%9c%ba%e6%99%af%e4%b8%8b%e4%bd%bf%e7%94%a8%20protobuf%e3%80%81json%20%e5%ba%8f%e5%88%97%e5%8c%96" 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><nav id=TableOfContents><ul><li><a href=#1-介绍>1 介绍</a></li><li><a href=#2-使用方式>2 使用方式</a><ul><li><a href=#21-添加依赖>2.1 添加依赖</a></li><li><a href=#22-配置启用>2.2 配置启用</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/index.xml
index 5e60a9dddc1..145244d175f 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/index.xml
@@ -13,7 +13,7 @@
<li><strong><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#25-activate%E6%BF%80%E6%B4%BB%E6%9D%A1%E4%BB%B6">支持插件自动激活</a>。</strong> 通过为插件实现指定激活条件(通过注解参数等),框架可在运行时自动根据当前上下文决策是否激活该插件实现。</li>
<li><strong><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/dubbo-spi/#26-%E6%89%A9%E5%B1%95%E7%82%B9%E6%8E%92%E5%BA%8F">支持插件扩展排序</a>。</strong></li>
</ul></description></item><item><title>Dubbo SPI 插件及详情</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/</guid><description><p>Dubbo 在框架中定义了非常多的扩展点,因此,<strong>当你发现官方库没法满足业务需求,想为 Dubbo 框架提供定制能力时,请优先查阅以下扩展点定义,看是否能通过提供扩展实现的方式无侵入的定制 Dubbo 框架</strong>。</p>
-<p>具体可参见本文下方的 <a href="https://dubbo.apache.org/zh-cn/#%e6%89%a9%e5%b1%95%e7%82%b9%e6%b1%87%e6%80%bb">Dubbo SPI 扩展定义汇总</a>。</p>
+<p>具体可参见本文下方的 <code>Dubbo SPI 扩展定义汇总</code></p>
<img src="https://dubbo.apache.org/imgs/v3/concepts/extension-use.png" style="max-width:600px;height:auto;">
<h2 id="扩展点汇总">扩展点汇总</h2>
<h3 id="生命周期与事件回调">生命周期与事件回调</h3>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/index.html
index fe883b67e4a..6538a15fc25 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/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/java-sdk/reference-manual/spi/spi-list/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/><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/java-sdk/reference-manual/spi/spi-list/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/spi-list/><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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/spi/spi-list?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%2A+Edi [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%20SPI%20%e6%8f%92%e4%bb%b6%e5%8f%8a%e8%af%a6%e6%83%85" 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><nav id=TableOfContents><ul><li><a href=#扩展点汇总>扩展点汇总</a><ul><li><a href=#生命周期与事件回调>生命周期与事件回调</a></li><li><a href=#配置相关>配置相关</a></li><li><a href=#服务发现>服务发现</a></li><li><a href=#rpc与流量管控>RPC与流量管控</a></li><li><a href=#服务治理>服务治理</a></li><li><a href=#协议与传输层实现>协议与传输层实现</a></li><li><a href=#框架内部实现>框架内部实现</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=foote [...]
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/index.xml b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/index.xml
index 43da805d8e6..fbf7ca278d4 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/index.xml
@@ -84,7 +84,7 @@
<h4 class="alert-heading">请注意</h4>
<ul>
-<li>本文档内容并不是升级 Dubbo3 必须的,您完全可以只升级框架并使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/#%E5%90%AF%E7%94%A8%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0">框架的服务发现默认行为</a>。</li>
+<li>本文档内容并不是升级 Dubbo3 必须的,您完全可以只升级框架并使用 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery#enable-application-level-service-discovery">框架的服务发现默认行为</a>。</li>
<li>本文档更适用于 Dubbo2 老用户,用于了解在升级到 Dubbo3 版本后,框架中的服务发现模型切换过程与工作原理。新用户请直接 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/nacos/#13-%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%90%AF%E7%94%A8-nacos">配置启用应用级服务发现</a>。</li>
</ul>
@@ -112,7 +112,7 @@
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">registry</span>:
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: nacos://localhost:8848
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">register-mode</span>: interface <span style="color:#586e75">#表示继续使用老版本服务发现模型,可选值 interface、instance、all</span>
-</span></span></code></pre></div><h2 id="启用应用级服务发现默认">启用应用级服务发现(默认)</h2>
+</span></span></code></pre></div><h2 id="enable-application-level-service-discovery">启用应用级服务发现(默认)</h2>
<p>对于老用户而言,如果要启用应用级服务发现,就需要一个平滑迁移的过程。这时需要让新升级的 Dubbo3 应用进行双注册双订阅(当前框架默认行为,因此用户无需修改任何配置,以下内容均会自行发生,注意:未来版本可能切换为应用级单注册单订阅),以确保新老服务发现模型都能兼顾。</p>
diff --git a/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/index.html
index c8bc4cc5a5f..82b4e71f3b8 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/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/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",docume [...]
+<!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/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",docume [...]
<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>
@@ -627,7 +627,7 @@
<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></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-yaml data-lang=yaml><span style=display:flex><span><span style=color:#268bd2>dubbo</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>application</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>name</span>: xxx
@@ -637,11 +637,11 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>registry</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: nacos://localhost:8848
</span></span><span style=display:flex><span> <span style=color:#268bd2>register-mode</span>: interface <span style=color:#586e75>#表示继续使用老版本服务发现模型,可选值 interface、instance、all</span>
-</span></span></code></pre></div><h2 id=启用应用级服务发现默认>启用应用级服务发现(默认)</h2><p>对于老用户而言,如果要启用应用级服务发现,就需要一个平滑迁移的过程。这时需要让新升级的 Dubbo3 应用进行双注册双订阅(当前框架默认行为,因此用户无需修改任何配置,以下内容均会自行发生,注意:未来版本可能切换为应用级单注册单订阅),以确保新老服务发现模型都能兼顾。</p><div class="alert alert-warning" role=alert><h4 class=alert-heading>请注意</h4>对于新用户而言,可以直接配置 <code>dubbo.application.register-mode=instance</code>,即在一开始就配置仅使用应用级服务发现。</div><h3 id=提供者端注册行为>提供者端注册行为</h3><p>在默认情况下,Dubbo3 框架会同时注册接口级、应用级两种服务发现地址,因此,集群中的新老应用都能够正常的发现改应用地址,并正常�
��起调用。如下图所示:</p [...]
-<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 [...]
+</span></span></code></pre></div><h2 id=enable-application-level-service-discovery>启用应用级服务发现(默认)</h2><p>对于老用户而言,如果要启用应用级服务发现,就需要一个平滑迁移的过程。这时需要让新升级的 Dubbo3 应用进行双注册双订阅(当前框架默认行为,因此用户无需修改任何配置,以下内容均会自行发生,注意:未来版本可能切换为应用级单注册单订阅),以确保新老服务发现模型都能兼顾。</p><div class="alert alert-warning" role=alert><h4 class=alert-heading>请注意</h4>对于新用户而言,可以直接配置 <code>dubbo.application.register-mode=instance</code>,即在一开始就配置仅使用应用级服务发现。</div><h3 id=提供者端注册行为>提供者端注册行为</h3><p>在默认情况下,Dubbo3 框架会同时注册接口级、应用级两种服务发现地址,因此,集群中的新老应用 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration-service-discovery?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%8d%87%e7%ba%a7%e5%88%b0%e5%ba%94%e7%94%a8%e7%ba%a7%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0" 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><nav id=TableOfContents><ul><li><a href=#继续使用接口级服务发现>继续使用接口级服务发现</a></li><li><a href=#启用应用级服务发现默认>启用应用级服务发现(默认)</a><ul><li><a href=#提供者端注册行为>提供者端注册行为</a></li><li><a href=#消费者端订阅行为>消费者端订阅行为</a></li><li><a href=#状态收敛>状态收敛</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-t [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a href=#继续使用接口级服务发现>继续使用接口级服务发现</a></li><li><a href=#enable-application-level-service-discovery>启用应用级服务发现(默认)</a><ul><li><a href=#提供者端注册行为>提供者端注册行为</a></li><li><a href=#消费者端订阅行为>消费者端订阅行为</a></li><li><a href=#状态收敛>状态收敛</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><di [...]
<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/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/index.html b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/index.html
index 5990b937067..2c56884f675 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/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/java-sdk/reference-manual/upgrades-and-compatibility/migration/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq. [...]
+<!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/java-sdk/reference-manual/upgrades-and-compatibility/migration/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq. [...]
<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>
@@ -708,8 +708,8 @@ Dubbo 3 升级对于发布流程没有做特殊限制,按照正常业务发布
</span></span><span style=display:flex><span> <span style=color:#268bd2><artifactId></span>dubbo-spring-boot-starter<span style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2></dependency></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dependencies></span>
-</span></span></code></pre></div><h3 id=步骤二升级其它组件依赖-1>步骤二:升级其它组件依赖</h3><p>您需要升级注册中心(Nacos、Zookeeper或其它)等第三方组件,具体升级方法和目标版本请参考本文前面一节的 <a href=/zh-cn/#%e6%ad%a5%e9%aa%a4%e4%ba%8c%e5%8d%87%e7%ba%a7%e5%85%b6%e5%ae%83%e7%bb%84%e4%bb%b6%e4%be%9d%e8%b5%96>2.7.x 版本升级到 Dubbo3</a> 中的详细说明,两者操作方法完全一样。</p><div class="alert alert-info" role=alert><h4 class=alert-heading>请务必注意第三方组件的版本</h4><ul><li>对于很多 Dubbo 2.6.x 及以下的老用户来说,可能用到的组件(如注册中心)都是比较老的版本,这时升级到 Dubbo3 之前请仔细分析一下都有哪些功能和核心依赖组件,以评估组件升级到的目标版本。</li><li [...]
-<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 [...]
+</span></span></code></pre></div><h3 id=步骤二升级其它组件依赖-1>步骤二:升级其它组件依赖</h3><p>您需要升级注册中心(Nacos、Zookeeper或其它)等第三方组件,具体升级方法和目标版本请参考本文前面一节的 <code>2.7.x 版本升级到 Dubbo3</code> 中的详细说明,两者操作方法完全一样。</p><div class="alert alert-info" role=alert><h4 class=alert-heading>请务必注意第三方组件的版本</h4><ul><li>对于很多 Dubbo 2.6.x 及以下的老用户来说,可能用到的组件(如注册中心)都是比较老的版本,这时升级到 Dubbo3 之前请仔细分析一下都有哪些功能和核心依赖组件,以评估组件升级到的目标版本。</li><li>对于部分 Zookeeper 用户而言,如果 Zookeeper 版本较老,建议先升级 Zookeeper Server 到 3.8.x 及以上版本,再使用 Dubbo3 的 <code>dubbo-zookee [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/upgrades-and-compatibility/migration?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bb%8e%20dubbo2%20%e5%8d%87%e7%ba%a7%e5%88%b0%20dubbo3%ef%bc%88%e6%b6%b5%e7%9b%96%202.5.x%e3%80%812.6.x%e3%80%812.7.x%20%e7%ad%89%e7%89%88%e6%9c%ac%ef%bc%89" 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><nav id=TableOfContents><ul><li><a href=#27x-升级-dubbo3>2.7.x 升级 Dubbo3</a><ul><li><a href=#步骤一升级核心依赖>步骤一:升级核心依赖</a></li><li><a href=#步骤二升级其它组件依赖>步骤二:升级其它组件依赖</a></li><li><a href=#步骤三兼容性检查>步骤三:兼容性检查</a></li><li><a href=#步骤四上线验证>步骤四:上线验证</a></li></ul></li><li><a href=#26x-及以下版本升级-dubbo3>2.6.x 及以下版本升级 Dubbo3</a><ul><li><a href=#步骤一升级核心依赖-1>步骤一:升级核心依赖</a></li><li><a href=#步骤二升级 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/index.html b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/index.html
index 0cfd81eef77..6dce309a46e 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/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/java-sdk/tasks/deploy/deploy-on-kubernetes-service/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain", [...]
+<!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/java-sdk/tasks/deploy/deploy-on-kubernetes-service/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain", [...]
<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>
@@ -627,7 +627,7 @@
<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></code></pre></div><h2 id=部署应用>部署应用</h2><h3 id=打包镜像>打包镜像</h3><h3 id=定义-yaml>定义 YAML</h3><p>请查看 dubbo-samples 了解示例</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>kind</span>: service
</span></span></code></pre></div><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>kind</span>: deployment
</span></span></code></pre></div><h3 id=优雅上下线>优雅上下线</h3><p>配置 probe
@@ -650,7 +650,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>30</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
</span></span></code></pre></div><blockquote><p>QOS 当计算节点检测到内存压力时,kuberentes 会 BestEffort -> Burstable -> Guaranteed 依次驱逐 Pod。</p></blockquote><p>目前三种探针均有对应的接口,路径为 QOS 中的命令,端口信息请根据 QOS 配置进行对应修改(默认端口为 22222)。其他参数请参考 <a href=https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/>Kubernetes官方文档说明</a>。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service?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% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%83%a8%e7%bd%b2%20Dubbo%20%e5%ba%94%e7%94%a8%e5%88%b0%e8%99%9a%e6%8b%9f%e6%9c%ba%e7%8e%af%e5%a2%83" 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><nav id=TableOfContents><ul><li><a href=#安装-control-plane>安装 Control Plane</a></li><li><a href=#部署应用>部署应用</a><ul><li><a href=#打包镜像>打包镜像</a></li><li><a href=#定义-yaml>定义 YAML</a></li><li><a href=#优雅上下线>优雅上下线</a></li><li><a href=#观测服务状态>观测服务状态</a></li></ul></li><li><a href=#与-service-mesh-的区别>与 Service Mesh 的区别</a></li><li><a href=#特性说明>特性说明</a></li><li><a href=#使用场景>使用场景</a>< [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/index.html b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/index.html
index 40ea3ff7d27..08080492101 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/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/java-sdk/tasks/deploy/deploy-on-kubernetes/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache. [...]
+<!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/java-sdk/tasks/deploy/deploy-on-kubernetes/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache. [...]
<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>
@@ -628,18 +628,18 @@
<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 [...]
-</span></span></code></pre></div><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4><ol><li>请查看 dubboctl 了解更多细节</li><li>您也可以在此了解 Nacos 官方提供的 Kubernetes 集群安装方案</li></ol></div><h2 id=部署应用>部署应用</h2><p>我们仍然以 <a href>快速开始</a> 中的项目为例,演示应用打包部署的具体步骤。</p><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-shell data-lang=shell><span style=display:flex><span>$ git [...]
+</span></span></code></pre></div><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4><ol><li>请查看 dubboctl 了解更多细节</li><li>您也可以在此了解 Nacos 官方提供的 Kubernetes 集群安装方案</li></ol></div><h2 id=部署应用>部署应用</h2><p>我们仍然以 <code>快速开始</code> 中的项目为例,演示应用打包部署的具体步骤。</p><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-shell data-lang=shell><span style=display:flex><span>$ gi [...]
</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-shell data-lang=shell><span style=display:flex><span>$ <span style=color:#b58900>cd</span> dubbo-samples/11-quickstart
</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-shell data-lang=shell><span style=display:flex><span>$ dubboctl build
</span></span><span style=display:flex><span><span style=color:#586e75># 具体写一下推送到 docker 仓库</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-shell data-lang=shell><span style=display:flex><span>$ dubboctl deploy
</span></span></code></pre></div><p>以下是生成的完整 Kubernetes manifests:</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></code></pre></div><p>执行以下命令,将应用部署到 Kubernetes 集群:</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>$ kubec [...]
</span></span></code></pre></div><h3 id=查看部署状态>查看部署状态</h3><p>如果之前已经使用 <code>dubboctl</code> 安装 dubbo-control-plane,则可以通过以下方式查看服务部署情况:</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>$ kubectl port-forward
-</span></span></code></pre></div><p>访问 <code>http://xxx</code> 查看服务部署详情。</p><h3 id=优雅上下线>优雅上下线</h3><p>如上面的架构图所示,我们仍然使用 Nacos 作为注册中心,因此,与传统 Linux 部署模式类似,控制实例发布到注册中心、实例从注册中心摘除的时机,是我们实现优雅上下线的关键:</p><ol><li>上线阶段,通过 <a href>延迟发布</a> 机制控制实例注册到注册中心的时机,通过开启 <a href>消费端预热</a> 确保流量缓慢的被转发到新节点上。</li><li>下线阶段,通过配置 <code>prestop</code> 确保先从注册中心摘除实例注册信息,之后再进入进程销毁过程。</li></ol><p>优雅下线摘除实例的示例配置:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-siz [...]
+</span></span></code></pre></div><p>访问 <code>http://xxx</code> 查看服务部署详情。</p><h3 id=优雅上下线>优雅上下线</h3><p>如上面的架构图所示,我们仍然使用 Nacos 作为注册中心,因此,与传统 Linux 部署模式类似,控制实例发布到注册中心、实例从注册中心摘除的时机,是我们实现优雅上下线的关键:</p><ol><li>上线阶段,通过 <code>延迟发布</code> 机制控制实例注册到注册中心的时机,通过开启 <code>消费端预热</code> 确保流量缓慢的被转发到新节点上。</li><li>下线阶段,通过配置 <code>prestop</code> 确保先从注册中心摘除实例注册信息,之后再进入进程销毁过程。</li></ol><p>优雅下线摘除实例的示例配置:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-s [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>exec</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>command</span>: [<span style=color:#2aa198>"/bin/sh"</span>,<span style=color:#2aa198>"-c"</span>,<span style=color:#2aa198>"curl /offline; sleep 10"</span>]
</span></span></code></pre></div><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4>在这个模式下,由于 Dubbo 服务的发布与注销与注册中心强关联,因此与 Kubernetes 中的 liveness、readiness 关联并不大。在下一篇文档中,我们会讲到 Kubernetes Service 部署模式下如何配置 liveness、readiness。</div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes?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%2A [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%83%a8%e7%bd%b2%20Dubbo%20%e5%ba%94%e7%94%a8%e5%88%b0%20Kubernetes%20%e7%8e%af%e5%a2%83" 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><nav id=TableOfContents><ul><li><a href=#安装-nacos>安装 Nacos</a></li><li><a href=#部署应用>部署应用</a><ul><li><a href=#打包镜像>打包镜像</a></li><li><a href=#部署>部署</a></li><li><a href=#查看部署状态>查看部署状态</a></li><li><a href=#优雅上下线>优雅上下线</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title> [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/index.html b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/index.html
index 8ef6b06695e..cdc42c26ff2 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/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/java-sdk/tasks/deploy/deploy-on-vm/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push [...]
+<!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/java-sdk/tasks/deploy/deploy-on-vm/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-vm/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push [...]
<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>
@@ -627,7 +627,7 @@
<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></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-shell data-lang=shell><span style=display:flex><span>$ <span style=color:#b58900>cd</span> dubbo-samples/11-quickstart
</span></span></code></pre></div><p>以下是两种打包部署模式:</p><h3 id=方式一本地进程>方式一:本地进程</h3><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-shell data-lang=shell><span style=display:flex><span>$ mvn clean package
</span></span></code></pre></div><p>启动 Dubbo 进程:</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>$ java -jar ./quickstart-service/target/quickstart-service-0.0.1-SNAPSHOT.jar
@@ -638,11 +638,11 @@
dubbo 支持多协议,如果一个应用同时暴露多个不同协议服务,且需要为每个服务单独指定 ip 或 port,请分别在以上属性前加协议前缀。 如:</p><ul><li><strong>HESSIAN_DUBBO_PORT_TO_BIND</strong>:hessian 协议绑定的 port</li><li><strong>DUBBO_DUBBO_PORT_TO_BIND</strong>:dubbo 协议绑定的 port</li><li><strong>HESSIAN_DUBBO_IP_TO_REGISTRY</strong>:hessian 协议注册的 ip</li><li><strong>DUBBO_DUBBO_IP_TO_REGISTRY</strong>:dubbo 协议注册的 ip</li></ul><p>PORT_TO_REGISTRY 或 IP_TO_REGISTRY 不会用作默认 PORT_TO_BIND 或 IP_TO_BIND,但是反过来是成立的。如:</p><ul><li>设置 <code>PORT_TO_REGISTRY=20881</code [...]
</span></span><span style=display:flex><span>$ <span style=color:#b58900>cd</span> dubbo-<span style=color:#268bd2>$version</span>/bin
</span></span></code></pre></div></li><li><p>运行以下命令,启动 dubbo-control-plane 进程</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>$ ./dubbo-cp run
-</span></span></code></pre></div></li></ol><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4>为了 dubbo-control-plane 正常运行,请修改 <code>conf/dubbo-cp.yml</code> 以确保其指向你想要的注册中心。</div><p>访问 <code>http://xxx</code> 查看服务部署详情。</p><h3 id=优雅上下线>优雅上下线</h3><p>在使用传统注册中心的情况下,我们需要控制实例发布到注册中心、实例从注册中心摘除的时机,以实现优雅上下线:</p><ol><li>上线阶段,通过 <a href>延迟发布</a> 机制控制实例注册到注册中心的时机,通过开启 <a href>消费端预热</a> 确保流量缓慢的被转发到新节点上。</li><li>下线阶段,通过配置 <code>prestop</code> 确保先从注册中心摘除实例注册信息,之后再进入进程销毁过程。</li></ [...]
+</span></span></code></pre></div></li></ol><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4>为了 dubbo-control-plane 正常运行,请修改 <code>conf/dubbo-cp.yml</code> 以确保其指向你想要的注册中心。</div><p>访问 <code>http://xxx</code> 查看服务部署详情。</p><h3 id=优雅上下线>优雅上下线</h3><p>在使用传统注册中心的情况下,我们需要控制实例发布到注册中心、实例从注册中心摘除的时机,以实现优雅上下线:</p><ol><li>上线阶段,通过 <code>延迟发布</code> 机制控制实例注册到注册中心的时机,通过开启 <code>消费端预热</code> 确保流量缓慢的被转发到新节点上。</li><li>下线阶段,通过配置 <code>prestop</code> 确保先从注册中心摘除实例注册信息,之后再进入进程销毁过程。</li> [...]
</span></span><span style=display:flex><span>$ sleep <span style=color:#2aa198>10</span>
</span></span><span style=display:flex><span>$ <span style=color:#b58900>kill</span> dubbo-pid
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/deploy/deploy-on-vm?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%2A+Edit+th [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bc%a0%e7%bb%9f%e5%9f%ba%e4%ba%8e%20Zookeeper%e3%80%81Nacos%20%e7%9a%84%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e9%83%a8%e7%bd%b2%e6%9e%b6%e6%9e%84%ef%bc%8c%e9%83%a8%e7%bd%b2%20Dubbo%20%e5%ba%94%e7%94%a8%e5%88%b0%e8%99%9a%e6%8b%9f%e6%9c%ba%e7%8e%af%e5%a2%83" 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><nav id=TableOfContents><ul><li><a href=#安装-nacos>安装 Nacos</a></li><li><a href=#部署应用>部署应用</a><ul><li><a href=#方式一本地进程>方式一:本地进程</a></li><li><a href=#方式二docker容器>方式二:docker容器</a></li><li><a href=#查看部署状态>查看部署状态</a></li><li><a href=#优雅上下线>优雅上下线</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=fo [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/deploy/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/deploy/index.xml
index e1919498762..1c37f7a2f5d 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/deploy/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/deploy/index.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>打包并部署应用 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/</link><description>Recent content in 打包并部署应用 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/index.xml" rel="self" type="application [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes.png" style="max-width:650px;height:auto;" />
<h2 id="安装-nacos">安装 Nacos</h2>
-<p>请参考以下文档了解如何在本地 <a href="">安装 Nacos</a>。</p>
+<p>请参考以下文档了解如何在本地 <code>安装 Nacos</code>。</p>
<h2 id="部署应用">部署应用</h2>
-<p>我们仍然以 <a href="">快速开始</a> 中的项目为例,演示应用打包部署的具体步骤。</p>
+<p>我们仍然以 <code>快速开始</code> 中的项目为例,演示应用打包部署的具体步骤。</p>
<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-shell" data-lang="shell"><span style="display:flex;"><span>$ git clone -b master --depth <span style="color:#2aa198">1</span> https://github.com/apache/dubbo-samples
</span></span></code></pre></div><p>切换到示例目录:</p>
@@ -32,8 +32,7 @@
<div class="alert alert-primary" role="alert">
<h4 class="alert-heading">提示</h4>
- <p>Docker 容器环境下,不同容器间用于网络通信的地址需要特别关注,因此你可能需要设置 Dubbo 进程监听或者注册到注册中心的地址,请参考以下链接了解更多内容。</p>
-<p>见 <a href="https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-docker">dubbo 通过环境变量设置 host</a></p></description></item><item><title>部署 Dubbo 应用到 Kubernetes 环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/</guid><description>< [...]
+ <p>Docker 容器环境下,不同容器间用于网络通信的地址需要特别关注,因此你可能需要设置 Dubbo 进程监听或者注册到注册中心的地址,请参考以下链接了解更多内容。</p></description></item><item><title>部署 Dubbo 应用到 Kubernetes 环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes/</guid><description><p>这种模式与传统的非 Kubernetes 部署并无太大差异,如下图所示,仍然使用 Na [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes.png" style="max-width:650px;height:auto;" />
<h2 id="安装-nacos">安装 Nacos</h2>
<p>在 Kubernetes 模式下,我们推荐使用 <code>dubboctl</code> 快速安装 Nacos、dubbo-control-plane、prometheus 等组件:</p>
@@ -52,7 +51,7 @@
</div>
<h2 id="部署应用">部署应用</h2>
-<p>我们仍然以 <a href="">快速开始</a> 中的项目为例,演示应用打包部署的具体步骤。</p>
+<p>我们仍然以 <code>快速开始</code> 中的项目为例,演示应用打包部署的具体步骤。</p>
<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-shell" data-lang="shell"><span style="display:flex;"><span>$ git clone -b master --depth <span style="color:#2aa198">1</span> https://github.com/apache/dubbo-samples
</span></span></code></pre></div><p>切换到示例目录:</p>
@@ -66,7 +65,7 @@
<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"></code></pre></div><p>执行以下命令,将应用部署到 Kubernetes 集群:</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>$ kubectl apply -f xxx.yml
</span></span></code></pre></div><h3 id="查看部署状态">查看部署状态</h3>
-<p>如果之前已经使用 <code>dubboctl</code> 安装 dubbo-control-plane,则可以通过以下方式查看服务部署情况:</p></description></item><item><title>部署 Dubbo 应用到虚拟机环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</guid><description><p>这种模式将 Dubbo Service 与 <a target [...]
+<p>如果之前已经使用 <code>dubboctl</code> 安装 dubbo-control-plane,则可以通过以下方式查看服务部署情况:</p></description></item><item><title>部署 Dubbo 应用到虚拟机环境</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/deploy/deploy-on-kubernetes-service/</guid><description><p>这种模式将 Dubbo Service 与 <code> [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes-service.png" style="max-width:650px;height:auto;" />
<h2 id="安装-control-plane">安装 Control Plane</h2>
<p>在这个模式下,我们需要安装 <code>dubbo-control-plane</code></p>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/index.html b/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/index.html
index a7ac2fd0c87..09058fb366a 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/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/java-sdk/tasks/develop/springboot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
+<!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/java-sdk/tasks/develop/springboot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push([ [...]
<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>
@@ -709,11 +709,11 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> service;
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><h4 id=通过-dubboproperties-补充配置>通过 dubbo.properties 补充配置</h4><p>对于使用 <code>DubboService</code> 或 <code>DubboReference</code> 的场景,可以通过在项目 resources 目录下增加 dubbo.properties 文件作为配置补充,<a href=../principle/#1-%E9%85%8D%E7%BD%AE%E6%A0%BC%E5%BC%8F>具体格式</a>这里有更详细解释。</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:fle [...]
+</span></span></code></pre></div><h4 id=通过-dubboproperties-补充配置>通过 dubbo.properties 补充配置</h4><p>对于使用 <code>DubboService</code> 或 <code>DubboReference</code> 的场景,可以通过在项目 resources 目录下增加 dubbo.properties 文件作为配置补充,<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/principle>具体格式</a>这里有更详细解释。</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 sty [...]
</span></span><span style=display:flex><span>dubbo.service.org.apache.dubbo.springboot.demo.DemoService.parameters<span style=color:#719e07>=</span><span style=color:#2aa198>[{myKey:myValue},{anotherKey:anotherValue}]</span>
</span></span><span style=display:flex><span>dubbo.reference.org.apache.dubbo.springboot.demo.DemoService.timeout<span style=color:#719e07>=</span><span style=color:#2aa198>6000</span>
</span></span></code></pre></div><blockquote><p>properties 格式配置目前结构性不太强,比如体现在 key 字段冗余较多,后续会考虑提供对于 yaml 格式的支持。</p></blockquote><h2 id=更多微服务开发模式>更多微服务开发模式</h2><ul><li><a href=../api/>纯 API 开发模式</a></li><li>其他 Spring 开发模式<ul><li><a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/spring/xml/>Spring XML</a></li></ul></li></ul><h2 id=dubbo-与-spring-cloud-的关系>Dubbo 与 Spring Cloud 的关系</h2><p>Dubbo 与 Spring Cloud 是两套平行的微服务开发与解决方案,两者都提供了微服务定义、发布、治理的相关能力,对于微服务开发者来说,我们建议在开发之初就确定好 Apac [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/develop/springboot?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%2A+Edit+the [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Spring%20Boot" 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><nav id=TableOfContents><ul><li><a href=#创建项目>创建项目</a></li><li><a href=#dubbo-spring-boot-starter>dubbo-spring-boot-starter</a><ul><li><a href=#maven-依赖>Maven 依赖</a></li><li><a href=#applicationyml-配置文件>application.yml 配置文件</a></li><li><a href=#dubbo-注解>Dubbo 注解</a></li></ul></li><li><a href=#更多微服务开发模式>更多微服务开发模式</a></li><li><a href=#dubbo-与-spring-cloud-的关系>Dubbo 与 Spring C [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/index.html
index 4cc38978ffb..87beb73a656 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/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/java-sdk/tasks/framework/fault-tolerent-strategy/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
+<!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/java-sdk/tasks/framework/fault-tolerent-strategy/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
<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>
@@ -627,7 +627,7 @@
<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></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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> retries=<span style=color:#2aa198>"2"</span> <span style=color:#268bd2>/></span>
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"findFoo"</span> retries=<span style=color:#2aa198>"2"</span> <span style=color:#268bd2>/></span>
@@ -639,7 +639,7 @@ broadcast.fail.percent 只是控制的当失败后是否继续调用其他节点
</span></span></code></pre></div><div class="alert alert-primary" role=alert><h4 class=alert-heading>提示</h4><code>2.1.0</code> 开始支持</div><h3 id=集群模式配置>集群模式配置</h3><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><dubbo:service</span> cluster=<span style=color:#2aa198>"failsafe"</spa [...]
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> cluster=<span style=color:#2aa198>"failsafe"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/fault-tolerent-strategy?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%9b%86%e7%be%a4%e5%ae%b9%e9%94%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><nav id=TableOfContents><ul><li><a href=#背景>背景</a></li><li><a href=#集群容错模式>集群容错模式</a><ul><li><a href=#failover-cluster>Failover Cluster</a></li><li><a href=#failfast-cluster>Failfast Cluster</a></li><li><a href=#failsafe-cluster>Failsafe Cluster</a></li><li><a href=#failback-cluster>Failback Cluster</a></li><li><a href=#forking-cluster>Forking Cluster</a></li><li><a href=#b [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/index.html
index b144dafdaef..7823c3e2d09 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/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/java-sdk/tasks/framework/filter/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["tra [...]
+<!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/java-sdk/tasks/framework/filter/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/filter/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["tra [...]
<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>
@@ -629,7 +629,7 @@
<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 [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>Filter</span> <span style=color:#268bd2>extends</span> BaseFilter {}
-</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <a href>SPI 扩展 Activate 介绍</a>。</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-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>@Activate</span>(group <sp [...]
+</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <code>SPI 扩展 Activate 介绍</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-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>@Activate</span>(group <s [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>AccessLogFilter</span> <span style=color:#268bd2>implements</span> Filter {}
</span></span></code></pre></div><h3 id=关闭自动加载>关闭自动加载</h3><p>如想关闭某个 filter 加载,在不修改 Filter 定义的情况下,可通过以下几种配置关闭。</p><p>全局关闭 filter,所有 rpc 调用均不启用 filter</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>dubbo</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>consumer</span>:
@@ -673,8 +673,8 @@
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>Filter</span> <span style=color:#268bd2>extends</span> BaseFilter {}
</span></span></code></pre></div><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><span style=color:#268bd2>@SPI</span>(scope <span style=color:#719e07>=</span> ExtensionScope.MODULE)
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>ClusterFilter</span> <span style=color:#268bd2>extends</span> BaseFilter {}
-</span></span></code></pre></div><h3 id=扩展filter>扩展Filter</h3><p>可参考 <a href>使用教程 - 自定义扩展</a> 学习具体示例。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+</span></span></code></pre></div><h3 id=扩展filter>扩展Filter</h3><p>可参考 <code>使用教程 - 自定义扩展</code> 学习具体示例。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/filter?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%2A+Edit+the+% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8%20Filter%20%e8%bf%87%e6%bb%a4%e5%99%a8%e5%8a%a8%e6%80%81%e6%8b%a6%e6%88%aa%e8%af%b7%e6%b1%82%ef%bc%88request%ef%bc%89%e6%88%96%e5%93%8d%e5%ba%94%ef%bc%88response%ef%bc%89" 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><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></li><li><a href=#具体定义>具体定义</a><ul><li><a href=#filter定义>Filter定义</a></li><li><a href=#扩展filter>扩展Filter</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer- [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/framework/index.xml
index 35764300f6d..90df73d27e2 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/index.xml
@@ -98,7 +98,7 @@
<p>如上图所示,Dubbo 代理会自动加载 Filter 实现并将它们组装到调用链路。Filter 是一个标准的 SPI 定义,框架按照一定的激活规则自动加载 Filter 实现。</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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@SPI</span>(scope <span style="color:#719e07">=</span> ExtensionScope.MODULE)
</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">Filter</span> <span style="color:#268bd2">extends</span> BaseFilter {}
-</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <a href="">SPI 扩展 Activate 介绍</a>。</p>
+</span></span></code></pre></div><p>Filter 的默认激活状态可在定义中通过 <code>@Activate</code> 注解设置,如以下定义表示该 Filter 在提供者端执行 RPC 请求时自动开启(在消费端不开启)。<code>@Activate</code> 支持多种条件控制,包括 classpath 下有某个类的定义时开启,URL 中有哪个参数值时开启等,具体可参见 <code>SPI 扩展 Activate 介绍</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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@Activate</span>(group <span style="color:#719e07">=</span> PROVIDER)
</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">AccessLogFilter</span> <span style="color:#268bd2">implements</span> Filter {}
</span></span></code></pre></div><h3 id="关闭自动加载">关闭自动加载</h3>
@@ -308,7 +308,7 @@
<li><code>LoadBalance</code> 负责从多个 <code>Invoker</code> 中选出具体的一个用于本次调用,选的过程包含了负载均衡算法,调用失败后,需要重选</li>
</ul>
<h2 id="集群容错模式">集群容错模式</h2>
-<p>可以自行扩展集群容错策略,参见:<a href="../../../dev/impls/cluster">集群扩展</a></p>
+<p>可以自行扩展集群容错策略,参见:<a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/description/cluster">集群扩展</a></p>
<h3 id="failover-cluster">Failover Cluster</h3>
<p>失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 <code>retries=&quot;2&quot;</code> 来设置重试次数(不含第一次)。</p>
<p>重试次数配置如下:</p>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/index.html
index ff0a85d61ae..dd2a6944885 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/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/java-sdk/tasks/framework/lightweight-rpc/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/><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/java-sdk/tasks/framework/lightweight-rpc/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/><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>
@@ -676,8 +676,8 @@
</span></span><span style=display:flex><span> System.out.println(message);
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>恭喜您, 以上即是 Dubbo Java RPC 通信的基本使用方式! 🎉</p><h2 id=更多内容>更多内容</h2><ul><li>Triple 协议完全兼容 gRPC,您可以参考这里了解如何 <a href=/zh-cn/overview/mannual/java-sdk/quick-start/>使用 IDL 编写 gRPC 兼容的服务</a>,或者 <a href>使用其他通信协议</a></li><li>作为 RPC 框架,Dubbo 支持异步调用、连接管理、context上下文等,请参考 <a href>RPC 框架核心功能</a></li><li>您可以继续 <a href>使用 API 为应用添加更多微服务治理能力</a>,但我们更推进您使用 <a href=../../microservice/develop/>Dubbo Spring Boot 开发微服务应用</a></li></ul><div id=pre-footer><h2>反馈</h2><p class=feedb [...]
-<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 [...]
+</span></span></code></pre></div><p>恭喜您, 以上即是 Dubbo Java RPC 通信的基本使用方式! 🎉</p><h2 id=更多内容>更多内容</h2><ul><li>Triple 协议完全兼容 gRPC,您可以参考这里了解如何 <a href=/zh-cn/overview/mannual/java-sdk/quick-start/>使用 IDL 编写 gRPC 兼容的服务</a>,或者 <code>使用其他通信协议</code></li><li>作为 RPC 框架,Dubbo 支持异步调用、连接管理、context上下文等,请参考 <code>RPC 框架核心功能</code></li><li>您可以继续 <code>使用 API 为应用添加更多微服务治理能力</code>,但我们更推进您使用 <a href=/zh-cn/overview/mannual/java-sdk/reference-manual/architecture/multi-instance/develop>Dubbo Spring Boot 开发微服 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/lightweight-rpc?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%2A+E [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8%e8%bd%bb%e9%87%8f%e7%9a%84%20Java%20SDK%20%e5%bc%80%e5%8f%91%20RPC%20Server%20%e5%92%8c%20Client" 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><nav id=TableOfContents><ul><li><a href=#maven-依赖>Maven 依赖</a></li><li><a href=#定义服务>定义服务</a></li><li><a href=#注册服务并启动-server>注册服务并启动 Server</a></li><li><a href=#访问服务>访问服务</a></li><li><a href=#更多内容>更多内容</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=f [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/index.html
index 251840c28a1..2af533032a2 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/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/java-sdk/tasks/framework/more/concurrency-control/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","* [...]
+<!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/java-sdk/tasks/framework/more/concurrency-control/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/concurrency-control/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","* [...]
<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>
@@ -627,7 +627,7 @@
<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></code></pre></div><h3 id=样例二>样例二</h3><blockquote><p>限制 <code>com.foo.BarService</code> 的 <code>sayHello</code> 方法,服务器端并发执行(或占用线程池线程数)不能超过 10 个</p></blockquote><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><dubbo:service</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span><sp [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"sayHello"</span> executes=<span style=color:#2aa198>"10"</span> <span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dubbo:service></span>
@@ -642,7 +642,7 @@
</span></span></code></pre></div><blockquote><p>如果 <code><dubbo:service></code> 和 <code><dubbo:reference></code> 都配了actives,<code><dubbo:reference></code> 优先,参见:<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/principle/>配置的覆盖策略</a>。</p></blockquote><h3 id=load-balance-均衡>Load Balance 均衡</h3><p>配置服务的客户端的 <code>loadbalance</code> 属性为 <code>leastactive</code>,此 Loadbalance 会调用并发数最小的 Provider(Consumer端并发数)。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1 [...]
</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><dubbo:service</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span> loadbalance=<span style=color:#2aa198>"leastactive"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/more/concurrency-control?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=%e5%b9%b6%e5%8f%91%e6%8e%a7%e5%88%b6" 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><nav id=TableOfContents><ul><li><a href=#功能说明>功能说明</a></li><li><a href=#使用场景>使用场景</a></li><li><a href=#使用方式>使用方式</a><ul><li><a href=#样例一>样例一</a></li><li><a href=#样例二>样例二</a></li><li><a href=#样例三>样例三</a></li><li><a href=#样例四>样例四</a></li><li><a href=#load-balance-均衡>Load Balance 均衡</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div c [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/index.html
index f9969c3e4dd..0ce8a27ab08 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/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/java-sdk/tasks/framework/more/config-connections/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
+<!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/java-sdk/tasks/framework/more/config-connections/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/config-connections/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d [...]
<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>
@@ -631,13 +631,13 @@
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"dubbo"</span> accepts=<span style=color:#2aa198>"10"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><h3 id=客户端连接控制>客户端连接控制</h3><p>限制客户端服务使用连接不能超过 10 个 <sup id=fnref:2><a href=#fn:2 class=footnote-ref role=doc-noteref>2</a></sup>:</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><dubbo:reference</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span> connecti [...]
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:service</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span> connections=<span style=color:#2aa198>"10"</span> <span style=color:#268bd2>/></span>
-</span></span></code></pre></div><p>如果 <code><dubbo:service></code> 和 <code><dubbo:reference></code> 都配了 connections,<code><dubbo:reference></code> 优先,参见:<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/principle/>配置的覆盖策略</a></p><h2 id=功能说明-1>功能说明</h2><p>允许消费者在提供者接收请求之前向提供者发送请求,消费者等待提供者准备就绪,然后将发送消费者者的请求,当消费者需要连接到提供者,提供者尚未准备好接受请求时,确保在正确的时间发送请求,防止消费者被速度慢或不可用的提供程序阻止。</p><h2 id=使用场景-1>使用场景</h2><p>粘滞连接用于有状态服务,尽可能让客户端总是向同一提供者发起调用,除非该提供者挂了,再连另一台。</p><p>粘滞连接将自动开启 <a href [...]
+</span></span></code></pre></div><p>如果 <code><dubbo:service></code> 和 <code><dubbo:reference></code> 都配了 connections,<code><dubbo:reference></code> 优先,参见:<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/principle/>配置的覆盖策略</a></p><h2 id=功能说明-1>功能说明</h2><p>允许消费者在提供者接收请求之前向提供者发送请求,消费者等待提供者准备就绪,然后将发送消费者者的请求,当消费者需要连接到提供者,提供者尚未准备好接受请求时,确保在正确的时间发送请求,防止消费者被速度慢或不可用的提供程序阻止。</p><h2 id=使用场景-1>使用场景</h2><p>粘滞连接用于有状态服务,尽可能让客户端总是向同一提供者发起调用,除非该提供者挂了,再连另一台。</p><p>粘滞连接将自动开启 <a href [...]
</span></span></code></pre></div><p>Dubbo 支持方法级别的粘滞连接,如果你想进行更细粒度的控制,还可以这样配置。</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><dubbo:reference</span> id=<span style=color:#2aa198>"xxxService"</span> interface=<span style=color:#2aa198>"com.xxx.XxxService"</span><span style=color:#268bd2>></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"sayHello"</span> sticky=<span style=color:#2aa198>"true"</span> <span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></dubbo:reference></span>
</span></span></code></pre></div><h2 id=功能说明-2>功能说明</h2><p>当消费者请求服务时,实际使用服务时才建立真正的连接,避免不必要的连接来减少延迟并提高系统稳定性。</p><h2 id=使用场景-2>使用场景</h2><p>延迟连接用于减少长连接数。当有调用发起时,再创建长连接。</p><h2 id=使用方式-2>使用方式</h2><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><dubbo:protocol</span> name=<span style=color:#2aa198>"dubbo"</span> l [...]
</span></span></code></pre></div><blockquote><p>该配置只对使用长连接的 dubbo 协议生效。</p></blockquote><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>因为连接在 Server上,所以配置在 Provider 上 <a href=#fnref:1 class=footnote-backref role=doc-backlink>↩︎</a></p></li><li id=fn:2><p>如果是长连接,比如 Dubbo 协议,connections 表示该服务对每个提供者建立的长连接数 <a href=#fnref:2 class=footnote-backref role=doc-backlink>↩︎</a></p></li></ol></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prom [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/more/config-connections?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 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e8%bf%9e%e6%8e%a5%e6%8e%a7%e5%88%b6" 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><nav id=TableOfContents><ul><li><a href=#功能说明>功能说明</a></li><li><a href=#使用场景>使用场景</a></li><li><a href=#使用方式>使用方式</a><ul><li><a href=#服务端连接控制>服务端连接控制</a></li><li><a href=#客户端连接控制>客户端连接控制</a></li></ul></li><li><a href=#功能说明-1>功能说明</a></li><li><a href=#使用场景-1>使用场景</a></li><li><a href=#使用方式-1>使用方式</a></li><li><a href=#功能说明-2>功能说明</a></li><li><a href=#使用场景-2>使用场景</a></li><li><a [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/index.xml
index 844bcb0a5ac..fa16e942851 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/index.xml
@@ -395,7 +395,7 @@ echo 测试是验证 Dubbo 服务基本功能的一种简单有效的方法,
<p>控制某些服务的最大并发请求数,确保其他服务的资源可用性。系统过载和确保系统稳定性。</p>
<p>允许在需求增加时更平滑地扩展服务。</p>
<p>确保服务在高峰使用时间保持可靠和稳定。</p>
-<p>这种方式要求用户准确的预先评估系统能处理的并发数,而准确的评估系统处理能力并不是一件容易的事情,因此 Dubbo 还提供了自适应限流模式,根据系统负载自动识别系统健康程度并进行限流保护,可以在此 <a href="../adaptive-concurrency-control">查看使用文档</a>。</p>
+<p>这种方式要求用户准确的预先评估系统能处理的并发数,而准确的评估系统处理能力并不是一件容易的事情,因此 Dubbo 还提供了自适应限流模式,根据系统负载自动识别系统健康程度并进行限流保护,可以在此 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/adaptive-concurrency-control">查看使用文档</a>。</p>
<h2 id="使用方式">使用方式</h2>
<h3 id="样例一">样例一</h3>
<blockquote>
@@ -453,7 +453,7 @@ echo 测试是验证 Dubbo 服务基本功能的一种简单有效的方法,
<p>允许消费者在提供者接收请求之前向提供者发送请求,消费者等待提供者准备就绪,然后将发送消费者者的请求,当消费者需要连接到提供者,提供者尚未准备好接受请求时,确保在正确的时间发送请求,防止消费者被速度慢或不可用的提供程序阻止。</p>
<h2 id="使用场景-1">使用场景</h2>
<p>粘滞连接用于有状态服务,尽可能让客户端总是向同一提供者发起调用,除非该提供者挂了,再连另一台。</p>
-<p>粘滞连接将自动开启 <a href="../lazy-connect">延迟连接</a>,以减少长连接数。</p>
+<p>粘滞连接将自动开启 <a href="https://dubbo.apache.org/zh-cn/docs/advanced/lazy-connect">延迟连接</a>,以减少长连接数。</p>
<h2 id="使用方式-1">使用方式</h2>
<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:reference</span> id=<span style="color:#2aa198">&#34;xxxService&#34;</span> interface=<span style="color:#2aa198">&#34;com.xxx.XxxService&#34;</span> sticky=< [...]
</span></span></code></pre></div><p>Dubbo 支持方法级别的粘滞连接,如果你想进行更细粒度的控制,还可以这样配置。</p>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/index.html
index 97c80afe847..407b6636af1 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/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/java-sdk/tasks/framework/more/router-snapshot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.a [...]
+<!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/java-sdk/tasks/framework/more/router-snapshot/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.a [...]
<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>
@@ -657,8 +657,8 @@
</span></span><span style=display:flex><span>···
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>dubbo>
-</span></span></code></pre></div><h4 id=注意-1>注意:</h4><p>由于日志框架不匹配导致的日志为空可以参考<a href=../../others/logger-management/>日志框架适配及运行时管理</a>动态修改日志输出框架。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+</span></span></code></pre></div><h4 id=注意-1>注意:</h4><p>由于日志框架不匹配导致的日志为空可以参考<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/logger-management>日志框架适配及运行时管理</a>动态修改日志输出框架。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/more/router-snapshot?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%e7%8a%b6%e6%80%81%e9%87%87%e9%9b%86" 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><nav id=TableOfContents><ul><li><a href=#功能说明>功能说明</a></li><li><a href=#使用场景>使用场景</a></li><li><a href=#使用方式>使用方式</a><ul><li><a href=#查看路由缓存状态>查看路由缓存状态</a></li><li><a href=#查看实际请求的路由计算结果>查看实际请求的路由计算结果</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/framework/version_group/index.html b/zh-cn/overview/mannual/java-sdk/tasks/framework/version_group/index.html
index dab50b6831e..6b0e876028b 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/framework/version_group/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/framework/version_group/index.html
@@ -5,14 +5,14 @@ dubbo-samples-group dubbo-samples-version dubbo-samples-merge 使用方式 使
public interface DevelopService { String invoke(String param); } 接口实现1:
@DubboService(group = "group1", version = "1.0") public class DevelopProviderServiceV1 implements DevelopService{ @Override public String invoke(String param) { StringBuilder s = new StringBuilder(); s.append("ServiceV1 param:").append(param); return s.toString(); } } 接口实现2:
@DubboService(group = "group2", version = "2.0") public class DevelopProviderServiceV2 implements DevelopService{ @Override public String invoke(String param) { StringBuilder s = new StringBuilder(); s.append("ServiceV2 param:").append(param); return s.toString(); } } 客户端接口调用:
-使用 @DubboReference 注解,添加 group 参数和 version 参数'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="版本与分组"><meta itemprop=description content='Dubbo服务中,接口并不能唯一确定一个服务,只有 接口+分组+版本号 的三元组才能唯一确定一个服务。
+使用 @DubboReference 注解,添加 group 参数和 version 参数'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="版本与分组"><meta itemprop=description content='Dubbo服务中,接口并不能唯一确定一个服务,只有 接口+分组+版本号 的三元组才能唯一确定一个服务。
当同一个接口针对不同的业务场景、不同的使用需求或者不同的功能模块等场景,可使用服务分组来区分不同的实现方式。同时,这些不同实现所提供的服务是可并存的,也支持互相调用。 当接口实现需要升级又要保留原有实现的情况下,即出现不兼容升级时,我们可以使用不同版本号进行区分。 本文示例完整源码可在以下链接查看:
dubbo-samples-group dubbo-samples-version dubbo-samples-merge 使用方式 使用 @DubboService 注解,配置 group 参数和 version 参数:
接口定义:
public interface DevelopService { String invoke(String param); } 接口实现1:
@DubboService(group = "group1", version = "1.0") public class DevelopProviderServiceV1 implements DevelopService{ @Override public String invoke(String param) { StringBuilder s = new StringBuilder(); s.append("ServiceV1 param:").append(param); return s.toString(); } } 接口实现2:
@DubboService(group = "group2", version = "2.0") public class DevelopProviderServiceV2 implements DevelopService{ @Override public String invoke(String param) { StringBuilder s = new StringBuilder(); s.append("ServiceV2 param:").append(param); return s.toString(); } } 客户端接口调用:
-使用 @DubboReference 注解,添加 group 参数和 version 参数'><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="430"><meta name=twitter:card content="summary"><meta name=twitter:title content="版本与分组"><meta name=twitter:description content='Dubbo服务中,接口并不能唯一确定一个服务,只有 接口+分组+版本号 的三元组才能唯一确定一个服务。
+使用 @DubboReference 注解,添加 group 参数和 version 参数'><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="430"><meta name=twitter:card content="summary"><meta name=twitter:title content="版本与分组"><meta name=twitter:description content='Dubbo服务中,接口并不能唯一确定一个服务,只有 接口+分组+版本号 的三元组才能唯一确定一个服务。
当同一个接口针对不同的业务场景、不同的使用需求或者不同的功能模块等场景,可使用服务分组来区分不同的实现方式。同时,这些不同实现所提供的服务是可并存的,也支持互相调用。 当接口实现需要升级又要保留原有实现的情况下,即出现不兼容升级时,我们可以使用不同版本号进行区分。 本文示例完整源码可在以下链接查看:
dubbo-samples-group dubbo-samples-version dubbo-samples-merge 使用方式 使用 @DubboService 注解,配置 group 参数和 version 参数:
接口定义:
@@ -823,7 +823,7 @@ public class DevelopProviderServiceV2 implements DevelopService{
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:service</span> interface=<span style=color:#2aa198>"org.apache.dubbo.example.service.DemoService"</span> group=<span style=color:#2aa198>"demo2"</span><span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span>...
</span></span><span style=display:flex><span><span style=color:#268bd2></beans></span>
-</span></span></code></pre></div><p>启动 Dubbo 服务,可在注册中心看到相同服务名不同分组的服务,以 Nacos 作为注册中心为例,显示如下内容:</p><p><img src=/imgs/blog/service-group-1.png alt=image-service-group-1.png></p><h4 id=服务消费端-xml-配置>服务消费端( xml 配置)</h4><p>使用 <a href=#ZgotmplZ>dubbo:reference/</a> 注解,添加 group 参数</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:#719e [...]
+</span></span></code></pre></div><p>启动 Dubbo 服务,可在注册中心看到相同服务名不同分组的服务,以 Nacos 作为注册中心为例,显示如下内容:</p><p><img src=/imgs/blog/service-group-1.png alt=image-service-group-1.png></p><h4 id=服务消费端-xml-配置>服务消费端( xml 配置)</h4><p>使用 <code><dubbo:reference/></code> 注解,添加 group 参数</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:#719e07>& [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><beans</span> xmlns=<span style=color:#2aa198>"http://www.springframework.org/schema/beans"</span>
</span></span><span style=display:flex><span> xmlns:xsi=<span style=color:#2aa198>"http://www.w3.org/2001/XMLSchema-instance"</span>
</span></span><span style=display:flex><span> xmlns:dubbo=<span style=color:#2aa198>"http://dubbo.apache.org/schema/dubbo"</span>
@@ -890,7 +890,7 @@ public class DevelopProviderServiceV2 implements DevelopService{
</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"barService"</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span> version=<span style=color:#2aa198>"2.0.0"</span> <span styl [...]
</span></span></code></pre></div><h3 id=不区分版本>不区分版本</h3><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><dubbo:reference</span> id=<span style=color:#2aa198>"barService"</span> interface=<span style=color:#2aa198>"com.foo.BarService"</span> version=<span style=color:#2aa198 [...]
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/framework/version_group?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%2A+Edi [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e7%89%88%e6%9c%ac%e4%b8%8e%e5%88%86%e7%bb%84" 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><nav id=TableOfContents><ul><li><a href=#使用方式>使用方式</a><ul><li></li></ul></li><li><a href=#分组聚合>分组聚合</a><ul><li><a href=#搜索所有分组>搜索所有分组</a></li><li><a href=#合并指定分组>合并指定分组</a></li><li><a href=#指定方法合并>指定方法合并</a></li><li><a href=#某个方法不合并>某个方法不合并</a></li><li><a href=#指定合并策略>指定合并策略</a></li><li><a href=#指定合并方法>指定合并方法</a></li></ul></li><li><a href=#跨版本升级>跨版本升级</a><ul><li></li><li><a [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/index.html b/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/index.html
index 594416d35bf..386e395ec27 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/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/java-sdk/tasks/gateway/architecture/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.pu [...]
+<!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/java-sdk/tasks/gateway/architecture/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.pu [...]
"><meta property="og:description" content="本文讲述前端 http 流量接入后端 Dubbo 微服务的的基本架构,包括移动端、浏览器、桌面应用、异构的微服务体系等。
"><meta name=twitter:description content="本文讲述前端 http 流量接入后端 Dubbo 微服务的的基本架构,包括移动端、浏览器、桌面应用、异构的微服务体系等。
"><meta property="og:url" content="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture/"><meta property="og:title" content="前端 http 流量接入 Dubbo 后端微服务体系的基础架构"><meta name=twitter:title content="前端 http 流量接入 Dubbo 后端微服务体系的基础架构"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script><link href=/css/community.css rel=sty [...]
@@ -630,8 +630,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/gateway/architecture?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%2A+Edit+t [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%89%8d%e7%ab%af%20http%20%e6%b5%81%e9%87%8f%e6%8e%a5%e5%85%a5%20Dubbo%20%e5%90%8e%e7%ab%af%e5%be%ae%e6%9c%8d%e5%8a%a1%e4%bd%93%e7%b3%bb%e7%9a%84%e5%9f%ba%e7%a1%80%e6%9e%b6%e6%9e%84" 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><nav id=TableOfContents><ul><li><a href=#中心化接入方式>中心化接入方式</a></li><li><a href=#去中心化接入方式>去中心化接入方式</a></li><li><a href=#总结>总结</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button clas [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/gateway/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/gateway/index.xml
index b3cd4151f21..179a1c63b34 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/gateway/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/gateway/index.xml
@@ -15,7 +15,7 @@
<p><code>dubbo</code>、<code>triple</code> 协议都支持这种接入架构。另外,在配置 BFF 应用调用 dubbo 服务时,可以使用普通的 dubbo 配置方式,也可以使用泛化调用等方式:</p>
<ul>
-<li>配置接入 dubbo 协议时,使用 <a href="">泛化调用</a> 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
+<li>配置接入 dubbo 协议时,使用 <code>泛化调用</code> 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
<li>配置接入 triple 协议时,可以使用 http 调用方式,同样可避免对服务二进制包的依赖,实现配置动态生效的效果。</li>
</ul>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/mesh/migration/proxyless/index.html b/zh-cn/overview/mannual/java-sdk/tasks/mesh/migration/proxyless/index.html
index a497e6a6c10..d3adf49cc03 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/mesh/migration/proxyless/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/mesh/migration/proxyless/index.html
@@ -4,13 +4,13 @@
1. 接口定义 为了示例足够简单,这里使用了一个简单的接口定义,仅对参数做拼接进行返回。
public interface GreetingService { String sayHello(String name); } 2. 接口实现 @DubboService(version = "1.0.0") public class AnnotatedGreetingService implements GreetingService { @Override public String sayHello(String name) { System.out.println("greeting service received: " + name); return "hello, " + name + "! from host: " + NetUtils.getLocalHost(); } } 3. 客户端订阅方式 由于原生 xDS 协议无法支持获取从接口到应用名的映射,因此需要配置 providedBy 参数来标记此服务来自哪个应用。
未来我们将基于 Dubbo Mesh 的控制面实现自动的服务映射关系获取,届时将不需要独立配置参数即可将 Dubbo 运行在 Mesh 体系下,敬请期待。
-@Component("annotatedConsumer") public class GreetingServiceConsumer { @DubboReference(version = "1.0.0", providedBy = "dubbo-samples-xds-provider") private GreetingService greetingService; public String doSayHello(String name) { return greetingService.sayHello(name); } } 4. 服务端配置 服务端配置注册中心为 istio 的地址,协议为 xds。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" co [...]
+@Component("annotatedConsumer") public class GreetingServiceConsumer { @DubboReference(version = "1.0.0", providedBy = "dubbo-samples-xds-provider") private GreetingService greetingService; public String doSayHello(String name) { return greetingService.sayHello(name); } } 4. 服务端配置 服务端配置注册中心为 istio 的地址,协议为 xds。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" co [...]
示例地址
代码架构 本小节中主要介绍本文所使用的示例的代码架构,通过模仿本示例中的相关配置改造已有的项目代码可以使已有的项目快速跑在 Proxyless Mesh 模式下。
1. 接口定义 为了示例足够简单,这里使用了一个简单的接口定义,仅对参数做拼接进行返回。
public interface GreetingService { String sayHello(String name); } 2. 接口实现 @DubboService(version = "1.0.0") public class AnnotatedGreetingService implements GreetingService { @Override public String sayHello(String name) { System.out.println("greeting service received: " + name); return "hello, " + name + "! from host: " + NetUtils.getLocalHost(); } } 3. 客户端订阅方式 由于原生 xDS 协议无法支持获取从接口到应用名的映射,因此需要配置 providedBy 参数来标记此服务来自哪个应用。
未来我们将基于 Dubbo Mesh 的控制面实现自动的服务映射关系获取,届时将不需要独立配置参数即可将 Dubbo 运行在 Mesh 体系下,敬请期待。
-@Component("annotatedConsumer") public class GreetingServiceConsumer { @DubboReference(version = "1.0.0", providedBy = "dubbo-samples-xds-provider") private GreetingService greetingService; public String doSayHello(String name) { return greetingService.sayHello(name); } } 4. 服务端配置 服务端配置注册中心为 istio 的地址,协议为 xds。'><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="511"><meta name=twitter:card content="summary"><meta name=twitter:title content=" [...]
+@Component("annotatedConsumer") public class GreetingServiceConsumer { @DubboReference(version = "1.0.0", providedBy = "dubbo-samples-xds-provider") private GreetingService greetingService; public String doSayHello(String name) { return greetingService.sayHello(name); } } 4. 服务端配置 服务端配置注册中心为 istio 的地址,协议为 xds。'><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="511"><meta name=twitter:card content="summary"><meta name=twitter:title content=" [...]
示例地址
代码架构 本小节中主要介绍本文所使用的示例的代码架构,通过模仿本示例中的相关配置改造已有的项目代码可以使已有的项目快速跑在 Proxyless Mesh 模式下。
1. 接口定义 为了示例足够简单,这里使用了一个简单的接口定义,仅对参数做拼接进行返回。
@@ -758,7 +758,7 @@ public class GreetingServiceConsumer {
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> greetingService.sayHello(name);
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><h3 id=4-服务端配置>4. 服务端配置</h3><p>服务端配置注册中心为 istio 的地址,协议为 xds。</p><p>我们建议将 <code>protocol</code> 配置为 tri 协议(全面兼容 grpc 协议),以获得在 istio 体系下更好的体验。</p><p>为了使 Kubernetes 感知到应用的状态,需要配置 <code>qosAcceptForeignIp</code> 参数,以便 Kubernetes 可以获得正确的应用状态,<a href=/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe/>对齐生命周期</a>。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-si [...]
+</span></span></code></pre></div><h3 id=4-服务端配置>4. 服务端配置</h3><p>服务端配置注册中心为 istio 的地址,协议为 xds。</p><p>我们建议将 <code>protocol</code> 配置为 tri 协议(全面兼容 grpc 协议),以获得在 istio 体系下更好的体验。</p><p>为了使 Kubernetes 感知到应用的状态,需要配置 <code>qosAcceptForeignIp</code> 参数,以便 Kubernetes 可以获得正确的应用状态,<code>对齐生命周期</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-properties data-lang=properties><span style=display:fl [...]
</span></span><span style=display:flex><span>dubbo.application.metadataServicePort<span style=color:#719e07>=</span><span style=color:#2aa198>20885</span>
</span></span><span style=display:flex><span>dubbo.registry.address<span style=color:#719e07>=</span><span style=color:#2aa198>xds://istiod.istio-system.svc:15012</span>
</span></span><span style=display:flex><span>dubbo.protocol.name<span style=color:#719e07>=</span><span style=color:#2aa198>tri</span>
@@ -840,7 +840,7 @@ public class GreetingServiceConsumer {
</span></span></code></pre></div><p>未来我们将基于 Dubbo Mesh 的控制面实现自动的<a href=/zh-cn/overview/mannual/java-sdk/concepts-and-architecture/service-discovery/>服务元数据</a>获取,届时将不需要独立配置参数即可将 Dubbo 运行在 Mesh 体系下,敬请期待。</p><ol start=6><li>qosAcceptForeignIp</li></ol><p>由于 Kubernetes probe 探活机制的工作原理限制,探活请求的发起方不是 <code>localhost</code>,所以需要配置 <code>qosAcceptForeignIp</code> 参数开启允许全局访问。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-siz [...]
</span></span></code></pre></div><p>注:qos 端口存在危险命令,请先评估网络的安全性。即使 qos 不开放也仅影响 Kubernetes 无法获取 Dubbo 的生命周期状态。</p><ol start=7><li>不需要开启注入</li></ol><p>Proxyless 模式下 pod 不需要再开启 envoy 注入,请确认 namespace 中没有 <code>istio-injection=enabled</code> 的标签。</p><ol start=8><li>明文连接istiod</li></ol><p>Proxyless 模式下默认通过ssl方式连接istiod,同时也支持通过明文的方式连接istiod。</p><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=la [...]
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/mesh/migration/proxyless?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%2A+Ed [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%85%b6%e4%bb%96%e9%97%ae%e9%a2%98%ef%bc%9f" 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><nav id=TableOfContents><ul><li><a href=#代码架构>代码架构</a><ul><li><a href=#1-接口定义>1. 接口定义</a></li><li><a href=#2-接口实现>2. 接口实现</a></li><li><a href=#3-客户端订阅方式>3. 客户端订阅方式</a></li><li><a href=#4-服务端配置>4. 服务端配置</a></li><li><a href=#5-客户端配置>5. 客户端配置</a></li></ul></li><li><a href=#快速开始>快速开始</a><ul><li><a href=#step-1-搭建-kubernetes-环境>Step 1: 搭建 Kubernetes 环境</a></li><li><a href=#step- [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/observability/console/index.html b/zh-cn/overview/mannual/java-sdk/tasks/observability/console/index.html
index 2971fca486e..9a49d6b1c7b 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/observability/console/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/observability/console/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/java-sdk/tasks/observability/console/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq. [...]
+<!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/java-sdk/tasks/observability/console/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq. [...]
<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>
@@ -627,13 +627,13 @@
<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>
</span></span><span style=display:flex><span><span style=color:#b58900>cd</span> dubbo-<span style=color:#268bd2>$version</span>
</span></span><span style=display:flex><span><span style=color:#b58900>export</span> <span style=color:#268bd2>PATH</span><span style=color:#719e07>=</span><span style=color:#268bd2>$PWD</span>/bin:<span style=color:#268bd2>$PATH</span>
</span></span></code></pre></div></li><li>安装<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>dubbo-cp run --mode universal --config conf/dubbo.yml
</span></span></code></pre></div>注意,<code>conf/dubbo.yml</code> 配置需要按需调整,指向你要连接的注册中心等后台服务,具体请查看 dubbo-control-plane 架构中依赖的后台服务。</li><li>访问 <code>http://xxx</code> 即可打开控制台页面。
-<img src alt=页面截图></li></ol><div class="alert alert-info" role=alert><h4 class=alert-heading>注意</h4><ul><li>请查看文档了解 dubbo-control-plane 详细安装步骤,包括多个平台的安装方法与配置指导。</li><li>对于 Kubernetes 环境下的 Dubbo 服务开发(包括 dubbo-control-plane 安装),我们有专门的章节说明,对于 Kubernetes 环境下的开发者可以去参考。</li></ul></div><h2 id=功能介绍>功能介绍</h2><p>Admin 控制台提供了从开发、测试到流量治理等不同层面的丰富功能,功能总体上可分为以下几类:</p><ul><li>服务状态与依赖关系查询</li><li>服务在线测试与文档管理</li><li>集群状态监控</li><li>实例诊断</li><li>流量管控</li></ul><h3 id=服务状态与依赖关系查询>服务状态与依赖关系查询</h3><p>服务状态查询以接口 [...]
+<code>页面截图</code></li></ol><div class="alert alert-info" role=alert><h4 class=alert-heading>注意</h4><ul><li>请查看文档了解 dubbo-control-plane 详细安装步骤,包括多个平台的安装方法与配置指导。</li><li>对于 Kubernetes 环境下的 Dubbo 服务开发(包括 dubbo-control-plane 安装),我们有专门的章节说明,对于 Kubernetes 环境下的开发者可以去参考。</li></ul></div><h2 id=功能介绍>功能介绍</h2><p>Admin 控制台提供了从开发、测试到流量治理等不同层面的丰富功能,功能总体上可分为以下几类:</p><ul><li>服务状态与依赖关系查询</li><li>服务在线测试与文档管理</li><li>集群状态监控</li><li>实例诊断</li><li>流量管控</li></ul><h3 id=服务状态与依赖关系查询>服务状态与依赖关系查询</h3><p>服务状态查询以接口为 [...]
只需要以下两步,即可享受服务Mock功能带来的便捷:</p><p>第一步:
Consumer应用引入服务Mock依赖,添加JVM启动参数-Denable.dubbo.admin.mock=true开启服务Mock功能。</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><denpendency></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><groupId></span>org.apache.dubbo.extensions<span style=color:#268bd2></groupId></span>
@@ -641,7 +641,7 @@ Consumer应用引入服务Mock依赖,添加JVM启动参数-Denable.dubbo.admin
</span></span><span style=display:flex><span> <span style=color:#268bd2><version></span>${version}<span style=color:#268bd2></version></span>
</span></span><span style=display:flex><span><span style=color:#268bd2></denpendency></span>
</span></span></code></pre></div><p>第二步:在Dubbo Admin中配置对应的Mock数据。</p><p><img src=/imgs/v3/tasks/observability/admin/2-service-mock.png alt=img></p><h4 id=服务文档管理>服务文档管理</h4><p>Admin 提供的接口文档,相当于 swagger 对于 RESTful 风格的 Web 服务的作用。使用该功能可以有效的管理 Dubbo 接口文档。</p><p><img src=/imgs/v3/tasks/observability/admin/2-service-doc.png alt=img></p><h3 id=集群状态监控>集群状态监控</h3><h4 id=首页大盘>首页大盘</h4><p>TBD</p><h4 id=grafana>Grafana</h4><p><img src=/imgs/v3/tasks/observability/admin/3-grafana.png alt=img></p><h4 i [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/observability/console?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%2A+Edit+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%8f%af%e8%a7%82%e6%b5%8b%e6%80%a7" 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><nav id=TableOfContents><ul><li><a href=#安装控制台>安装控制台</a></li><li><a href=#功能介绍>功能介绍</a><ul><li><a href=#服务状态与依赖关系查询>服务状态与依赖关系查询</a></li><li><a href=#服务在线测试与文档管理>服务在线测试与文档管理</a></li><li><a href=#集群状态监控>集群状态监控</a></li><li><a href=#流量管控>流量管控</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=foot [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/index.html b/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/index.html
index 59c6c62bbd0..11c6b4d04c3 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/index.html
@@ -2,11 +2,11 @@
在您开始之前 一个可以访问的 Kubernetes 集群 正确安装并配置 普罗米修斯服务 安装 Grafana 部署 示例应用 并开启指标采集 确认组件正常运行 Kubernetes 确保 Prometheus 正常运行
$ kubectl -n dubbo-system get svc prometheus NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus ClusterIP 10.0.250.230 <none> 9090/TCP 180s 确保 Grafana 正常运行
$ kubectl -n dubbo-system get svc grafana NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana ClusterIP 10.0.244.130 <none> 3000/TCP 180s 部署示例 kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/4-governance/dubbo-samples-metrics-spring-boot/Deployment.yml 等待示例应用正常运行,通过以下命令确认应用状态:
-kubectl -n dubbo-demo get deployments 查看 Grafana 可视化面板 示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="使用 Grafana 可视化查看集群 Metrics 指标"><meta itemprop=description content="指标可视化页面目前推荐的方式是使用 Grafana 来配置 Dubbo 的可观测性监控大盘。
+kubectl -n dubbo-demo get deployments 查看 Grafana 可视化面板 示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="使用 Grafana 可视化查看集群 Metrics 指标"><meta itemprop=description content="指标可视化页面目前推荐的方式是使用 Grafana 来配置 Dubbo 的可观测性监控大盘。
在您开始之前 一个可以访问的 Kubernetes 集群 正确安装并配置 普罗米修斯服务 安装 Grafana 部署 示例应用 并开启指标采集 确认组件正常运行 Kubernetes 确保 Prometheus 正常运行
$ kubectl -n dubbo-system get svc prometheus NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus ClusterIP 10.0.250.230 <none> 9090/TCP 180s 确保 Grafana 正常运行
$ kubectl -n dubbo-system get svc grafana NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana ClusterIP 10.0.244.130 <none> 3000/TCP 180s 部署示例 kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/4-governance/dubbo-samples-metrics-spring-boot/Deployment.yml 等待示例应用正常运行,通过以下命令确认应用状态:
-kubectl -n dubbo-demo get deployments 查看 Grafana 可视化面板 示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="131"><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 Grafana 可视化查看集群 Metrics 指标"><meta name=twitter:description content="指标可视化页面目前推荐的方式是使用 Grafana 来配置 Dubbo 的可观测性监控大盘。
+kubectl -n dubbo-demo get deployments 查看 Grafana 可视化面板 示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="131"><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 Grafana 可视化查看集群 Metrics 指标"><meta name=twitter:description content="指标可视化页面目前推荐的方式是使用 Grafana 来配置 Dubbo 的可观测性监控大盘。
在您开始之前 一个可以访问的 Kubernetes 集群 正确安装并配置 普罗米修斯服务 安装 Grafana 部署 示例应用 并开启指标采集 确认组件正常运行 Kubernetes 确保 Prometheus 正常运行
$ kubectl -n dubbo-system get svc prometheus NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus ClusterIP 10.0.250.230 <none> 9090/TCP 180s 确保 Grafana 正常运行
$ kubectl -n dubbo-system get svc grafana NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana ClusterIP 10.0.244.130 <none> 3000/TCP 180s 部署示例 kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/4-governance/dubbo-samples-metrics-spring-boot/Deployment.yml 等待示例应用正常运行,通过以下命令确认应用状态:
@@ -716,9 +716,9 @@ kubectl -n dubbo-demo get deployments
</span></span><span style=display:flex><span>grafana ClusterIP 10.0.244.130 <none> 3000/TCP 180s
</span></span></code></pre></div><h2 id=部署示例>部署示例</h2><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>kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/4-governance/dubbo-samples-metrics-spring-boot/Deployment.yml
</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-yaml data-lang=yaml><span style=display:flex><span>kubectl -n dubbo-demo get deployments
-</span></span></code></pre></div><h2 id=查看-grafana-可视化面板>查看 Grafana 可视化面板</h2><p>示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。</p><ol><li><p>如果是通过 <a href=../../../reference/admin/architecture/>Dubbo 控制面</a> 安装的 Grafana,则可以访问 Admin 控制台并在左侧菜单中找到 Grafana 可视化监控入口</p></li><li><p>如果是独立安装的 Grafana 组件,则可以直接访问 Grafana 可视化控制台地址:</p></li></ol><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 da [...]
+</span></span></code></pre></div><h2 id=查看-grafana-可视化面板>查看 Grafana 可视化面板</h2><p>示例程序启动后会自动模拟服务调用,只需等待一会能在 Grafana 中可视化的看到 Metrics 指标。</p><ol><li><p>如果是通过 <code>Dubbo 控制面</code> 安装的 Grafana,则可以访问 Admin 控制台并在左侧菜单中找到 Grafana 可视化监控入口</p></li><li><p>如果是独立安装的 Grafana 组件,则可以直接访问 Grafana 可视化控制台地址:</p></li></ol><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 data-lang=sh><span style=display:flex><s [...]
</span></span></code></pre></div><p>在浏览器打开 Grafana 控制台:http://localhost:3000</p><h3 id=服务统计视图>服务统计视图</h3><p>支持基于应用、实例粒度的统计视图,同时对于每一种指标统计粒度,你还可以进一步查看:</p><ol><li>提供者流量视图</li></ol><p><img src=/imgs/v3/advantages/grafana-dashboard-1.png alt=grafana-dashboard-1.png></p><ol start=2><li>消费者流量视图</li></ol><p><img src=/imgs/v3/advantages/grafana-dashboard-1.png alt=grafana-dashboard-1.png></p><ol start=3><li>注册中心视图</li></ol><p>TBD</p><ol start=4><li>配置中心视图</li></ol><p>TBD</p><h3 id=jvm-实例视图>JVM 实 [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/observability/grafana?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%2A+Edit+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8%20Grafana%20%e5%8f%af%e8%a7%86%e5%8c%96%e6%9f%a5%e7%9c%8b%e9%9b%86%e7%be%a4%20Metrics%20%e6%8c%87%e6%a0%87" 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><nav id=TableOfContents><ul><li><a href=#在您开始之前>在您开始之前</a></li><li><a href=#确认组件正常运行>确认组件正常运行</a><ul><li><a href=#kubernetes>Kubernetes</a></li></ul></li><li><a href=#部署示例>部署示例</a></li><li><a href=#查看-grafana-可视化面板>查看 Grafana 可视化面板</a><ul><li><a href=#服务统计视图>服务统计视图</a></li><li><a href=#jvm-实例视图>JVM 实例视图</a></li><li><a href=#关于-dubbo-官方提供的-grafana-dashboard>关于 Dubbo 官方提供的 Gr [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml
index 37338590953..0178530e2dc 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>观测服务 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/</link><description>Recent content in 观测服务 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml" rel="self" type="app [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>观测服务 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/</link><description>Recent content in 观测服务 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/index.xml" rel="self" type="app [...]
<p><strong><code>dubbo-control-plane</code> 支持可视化的展示、监控集群状态,还支持实时下发流量管控规则。</strong></p>
<h2 id="安装控制台">安装控制台</h2>
<p>为了体验效果,我们首先需要安装 dubbo-control-plane,以下是在 Linux 环境下安装 dubbo-control-plane 的具体步骤:</p>
@@ -13,7 +13,7 @@
<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>dubbo-cp run --mode universal --config conf/dubbo.yml
</span></span></code></pre></div>注意,<code>conf/dubbo.yml</code> 配置需要按需调整,指向你要连接的注册中心等后台服务,具体请查看 dubbo-control-plane 架构中依赖的后台服务。</li>
<li>访问 <code>http://xxx</code> 即可打开控制台页面。
-<img src="" alt="页面截图"></li>
+<code>页面截图</code></li>
</ol>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/index.xml
index 04563c6ba45..7114e4740f4 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/index.xml
@@ -214,4 +214,4 @@
</span></span></code></pre></div><p>或</p></description></item><item><title>基于 Kubernetes Service 的服务发现</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/</guid><description><p>上面两节我们分别讲解了 Nacos、Zookeeper 两种注册中心模式,它们更像是传统的注册中心解决方案。在 Ku [...]
<img src="https://dubbo.apache.org/imgs/v3/manual/java/tutorial/kubernetes/kubernetes-service.png" style="max-width:650px;height:auto;" />
<p>在这种模式下,服务发现与用户的部署运维操作形成统一,用户定义标准的 Kubernetes Service、Deployment,并将其部署到 Kubernetes,之后 Control Plane 通过监控 APISERVER 资源并与 SDK 进程联动,形成一整套的服务发现体系。</p>
-<p>关于使用 Kubernetes 作为注册中心的具体实践案例,请参考 <a href="">Kubernetes Service 部署</a> 一节了解更多细节。</p></description></item></channel></rss>
\ No newline at end of file
+<p>关于使用 Kubernetes 作为注册中心的具体实践案例,请参考 <code>Kubernetes Service 部署</code> 一节了解更多细节。</p></description></item></channel></rss>
\ No newline at end of file
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/index.html b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/index.html
index 0fe0c614264..c1772ddc0f9 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/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/java-sdk/tasks/service-discovery/kubernetes/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
+<!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/java-sdk/tasks/service-discovery/kubernetes/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/kubernetes/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apach [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/service-discovery/kubernetes?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%9f%ba%e4%ba%8e%20Kubernetes%20Service%20%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0" 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></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-qr")' onmouseout='hideQRCode("wechat-qr")'>微信<div class=qr-code id=wechat-qr styl [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/index.html b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/index.html
index a7e5e2a555a..d148a436fdf 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/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/java-sdk/tasks/service-discovery/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache. [...]
+<!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/java-sdk/tasks/service-discovery/zookeeper/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/service-discovery/zookeeper/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache. [...]
<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>
@@ -698,8 +698,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>register-mode</span>: instance <span style=color:#586e75># 新用户请设置此值,表示启用应用级服务发现,可选值 interface、instance、all</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>30</span> * <span style=color:#2aa198>1000</span>* <span style=color:#586e75># 连接超时时间,默认 30s</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>session</span>: <span style=color:#2aa198>60</span> * <span style=color:#2aa198>1000</span>* <span style=color:#586e75># 会话超时时间,默认 60s</span>
-</span></span></code></pre></div><p>Zookeeper 注册中心还支持其他一些控制参数,具体可参见<a href=../../config/properties#registry>Registry 配置项手册</a></p><h2 id=3-工作原理>3 工作原理</h2><p>在前面的一节中,我们讲解了应用级服务发现与接口级服务发现的区别,在 Zookeeper 实现中,它们的存储结构也存在较大差异。总体来说,Zookeeper 注册中心实现支持以下高可用能力:</p><ul><li>当提供者出现断电等异常停机时,注册中心能自动删除提供者信息</li><li>当注册中心重启时,能自动恢复注册数据,以及订阅请求</li><li>当会话过期时,能自动恢复注册数据,以及订阅请求</li><li>当设置 <code>registry.check=false</code> 时,记录失败注册和订阅请求,后台定时重试</li></ul><h3 id=31-接口级节点结构>3.1 接口级节点结构</h3><p><img src=/imgs/user [...]
-<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 [...]
+</span></span></code></pre></div><p>Zookeeper 注册中心还支持其他一些控制参数,具体可参见<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/config/properties/#dubbo.registry>Registry 配置项手册</a></p><h2 id=3-工作原理>3 工作原理</h2><p>在前面的一节中,我们讲解了应用级服务发现与接口级服务发现的区别,在 Zookeeper 实现中,它们的存储结构也存在较大差异。总体来说,Zookeeper 注册中心实现支持以下高可用能力:</p><ul><li>当提供者出现断电等异常停机时,注册中心能自动删除提供者信息</li><li>当注册中心重启时,能自动恢复注册数据,以及订阅请求</li><li>当会话过期时,能自动恢复注册数据,以及订阅请求</li><li>当设置 <code>registry.check=false</code> 时,记录失败注册和订阅请求,后台定时重试</li></ul><h3 i [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/service-discovery/zookeeper?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%2A [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8%20Zookeeper%20%e4%bd%9c%e4%b8%ba%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e5%ae%9e%e7%8e%b0%e8%87%aa%e5%8a%a8%e6%9c%8d%e5%8a%a1%e5%8f%91%e7%8e%b0" 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><nav id=TableOfContents><ul><li><a href=#1-基本配置>1 基本配置</a><ul><li><a href=#11-增加-maven-依赖>1.1 增加 Maven 依赖</a></li><li><a href=#12-选择-zookeeper-版本>1.2 选择 Zookeeper 版本</a></li><li><a href=#13-配置并启用-zookeeper>1.3 配置并启用 Zookeeper</a></li></ul></li><li><a href=#2-高级配置>2 高级配置</a><ul><li><a href=#21-认证与鉴权>2.1 认证与鉴权</a></li><li><a href=#22-分组隔离>2.2 分组隔离</a></li><li><a href=#23-其他扩展 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/index.html
index 3fce0cbaff9..5d2e8cc6f9a 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/index.html
@@ -2,11 +2,11 @@
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 商城的所有用户服务都由 User 应用的 UserService 提供,通过这个任务,我们为 User 应用的某一台或几台机器开启访问日志,以便观察用户服务的整体访问情况。
动态开启访问日志 Dubbo 通过 accesslog 标记识别访问日志的开启状态,我们可以指定日志文件的输出位置,也可以单独打开某台机器的访问日志。
操作步骤 打开 Dubbo Admin 控制台 在左侧导航栏选择【服务治理】>【动态配置】 点击 “创建”,输入应用名 shop-user 并勾选 “开启访问日志”(此时访问日志将和普通日志打印在一起)。 再次访问登录页面,登录到 User 应用的任意一台机器,可以看到如下格式的访问日志。
-[2022-12-30 12:36:31.15900] -> [2022-12-30 12:36:31.16000] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService login(java.lang.String,java.lang.String) ["test",""], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103 [2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 19 [...]
+[2022-12-30 12:36:31.15900] -> [2022-12-30 12:36:31.16000] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService login(java.lang.String,java.lang.String) ["test",""], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103 [2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 19 [...]
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 商城的所有用户服务都由 User 应用的 UserService 提供,通过这个任务,我们为 User 应用的某一台或几台机器开启访问日志,以便观察用户服务的整体访问情况。
动态开启访问日志 Dubbo 通过 accesslog 标记识别访问日志的开启状态,我们可以指定日志文件的输出位置,也可以单独打开某台机器的访问日志。
操作步骤 打开 Dubbo Admin 控制台 在左侧导航栏选择【服务治理】>【动态配置】 点击 “创建”,输入应用名 shop-user 并勾选 “开启访问日志”(此时访问日志将和普通日志打印在一起)。 再次访问登录页面,登录到 User 应用的任意一台机器,可以看到如下格式的访问日志。
-[2022-12-30 12:36:31.15900] -> [2022-12-30 12:36:31.16000] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService login(java.lang.String,java.lang.String) ["test",""], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103 [2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 19 [...]
+[2022-12-30 12:36:31.15900] -> [2022-12-30 12:36:31.16000] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService login(java.lang.String,java.lang.String) ["test",""], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103 [2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 19 [...]
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 商城的所有用户服务都由 User 应用的 UserService 提供,通过这个任务,我们为 User 应用的某一台或几台机器开启访问日志,以便观察用户服务的整体访问情况。
动态开启访问日志 Dubbo 通过 accesslog 标记识别访问日志的开启状态,我们可以指定日志文件的输出位置,也可以单独打开某台机器的访问日志。
操作步骤 打开 Dubbo Admin 控制台 在左侧导航栏选择【服务治理】>【动态配置】 点击 “创建”,输入应用名 shop-user 并勾选 “开启访问日志”(此时访问日志将和普通日志打印在一起)。 再次访问登录页面,登录到 User 应用的任意一台机器,可以看到如下格式的访问日志。
@@ -708,7 +708,7 @@ Dubbo 通过 accesslog 标记识别访问日志的开启状态,我们可以指
<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>[2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103
</span></span><span style=display:flex><span>[2022-12-30 12:36:31.93500] -> [2022-12-30 12:36:34.93600] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103
</span></span></code></pre></div><h4 id=规则详解>规则详解</h4><p><strong>规则 key :</strong> shop-user</p><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-yaml data-lang=yaml><span style=display:flex><span><span style=color:#268bd2>configVersion</span>: v3.0
@@ -730,7 +730,7 @@ Dubbo 通过 accesslog 标记识别访问日志的开启状态,我们可以指
</span></span><span style=display:flex><span> <span style=color:#268bd2>parameters</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>accesslog</span>: <span style=color:#cb4b16>true</span>
</span></span></code></pre></div><p>其中,<code>{ip}</code> 替换为具体的机器地址即可。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/accesslog?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%80%9a%e8%bf%87%e5%8a%a8%e6%80%81%e5%bc%80%e5%90%af%e8%ae%bf%e9%97%ae%e6%97%a5%e5%bf%97%e8%b7%9f%e8%b8%aa%e6%9c%8d%e5%8a%a1%e8%b0%83%e7%94%a8%e6%83%85%e5%86%b5" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#动态开启访问日志>动态开启访问日志</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><butt [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/arguments/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/arguments/index.html
index 720080b170d..49808e9e882 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/arguments/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/arguments/index.html
@@ -4,13 +4,13 @@
回到商城登录页面,我们以 VIP 用户 dubbo 登录系统,是否看到如下图所示的 VIP 专属商品价格,多刷新几次商品页面那?
哦,是不是价格忽高忽低?!这是因为在当前部署的示例系统中,只有 detail v2 版本才能识别 VIP 用户并提供特价服务,因此,我们要确保 dubbo 用户始终访问 detail v2 实例,以便享受稳定的 VIP 服务。
为 VIP 用户提供稳定的特价商品服务 Detail v2 版本能够识别 VIP 用户并在商品详情中展示特价。商品详情服务由 Detail 应用中的 org.apache.dubbo.samples.DetailService 服务提供,DetailService 显示商品详情的 getItem 方法定义如下,第二个参数为用户名。
-public interface DetailService { Item getItem(long sku, String username); } 因此,接下来我们就为 DetailService 服务的 getItem 方法增加参数路由规则,如果用户参数是 dubbo 就转发到 v2 版本的服务。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="根据请求参数引导流量分布"><meta itemprop=description content="根据请求参数值转发流量,是一种非常灵活且实用的流量管控策略。比如微服务实践中,根据参数(如用 [...]
+public interface DetailService { Item getItem(long sku, String username); } 因此,接下来我们就为 DetailService 服务的 getItem 方法增加参数路由规则,如果用户参数是 dubbo 就转发到 v2 版本的服务。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="根据请求参数引导流量分布"><meta itemprop=description content="根据请求参数值转发流量,是一种非常灵活且实用的流量管控策略。比如微服务实践中,根据参数(如用 [...]
或者,有些产品提供差异化的付费服务,需要根据请求参数中的用户 ID 将请求路由到具有不同服务等级保障的集群,就像接下来我们在示例任务中所做的那样。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 为了增加用户粘性,我们为商城示例系统新增了 VIP 用户服务,现在商城有两类用户:普通用户和 VIP 用户,其中 VIP 用户可以看到比普通用户更低的商品价格。
回到商城登录页面,我们以 VIP 用户 dubbo 登录系统,是否看到如下图所示的 VIP 专属商品价格,多刷新几次商品页面那?
哦,是不是价格忽高忽低?!这是因为在当前部署的示例系统中,只有 detail v2 版本才能识别 VIP 用户并提供特价服务,因此,我们要确保 dubbo 用户始终访问 detail v2 实例,以便享受稳定的 VIP 服务。
为 VIP 用户提供稳定的特价商品服务 Detail v2 版本能够识别 VIP 用户并在商品详情中展示特价。商品详情服务由 Detail 应用中的 org.apache.dubbo.samples.DetailService 服务提供,DetailService 显示商品详情的 getItem 方法定义如下,第二个参数为用户名。
-public interface DetailService { Item getItem(long sku, String username); } 因此,接下来我们就为 DetailService 服务的 getItem 方法增加参数路由规则,如果用户参数是 dubbo 就转发到 v2 版本的服务。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="156"><meta name=twitter:card content="summary"><meta name=twitter:title content="根据请求参数引导流量分布"><meta name=twitter:description content="根据请求参数值转发流量,是一种非常灵活且实用的流量管控策略。比如微服务实践中,根据参数(如用户 ID)路由流量,将一小部分用户请求转发到最新发布的产品版本,以验证新版本的稳定性、获取用户的产品体验反馈等,是生产 [...]
+public interface DetailService { Item getItem(long sku, String username); } 因此,接下来我们就为 DetailService 服务的 getItem 方法增加参数路由规则,如果用户参数是 dubbo 就转发到 v2 版本的服务。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="156"><meta name=twitter:card content="summary"><meta name=twitter:title content="根据请求参数引导流量分布"><meta name=twitter:description content="根据请求参数值转发流量,是一种非常灵活且实用的流量管控策略。比如微服务实践中,根据参数(如用户 ID)路由流量,将一小部分用户请求转发到最新发布的产品版本,以验证新版本的稳定性、获取用户的产品体验反馈等,是生产 [...]
或者,有些产品提供差异化的付费服务,需要根据请求参数中的用户 ID 将请求路由到具有不同服务等级保障的集群,就像接下来我们在示例任务中所做的那样。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 为了增加用户粘性,我们为商城示例系统新增了 VIP 用户服务,现在商城有两类用户:普通用户和 VIP 用户,其中 VIP 用户可以看到比普通用户更低的商品价格。
回到商城登录页面,我们以 VIP 用户 dubbo 登录系统,是否看到如下图所示的 VIP 专属商品价格,多刷新几次商品页面那?
@@ -699,7 +699,7 @@ public interface DetailService {
<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> Item <span style=color:#268bd2>getItem</span>(<span style=color:#dc322f>long</span> sku, String username);
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><p>因此,接下来我们就为 <code>DetailService</code> 服务的 <code>getItem</code> 方法增加参数路由规则,如果用户参数是 <code>dubbo</code> 就转发到 v2 版本的服务。</p><h4 id=操作步骤>操作步骤</h4><ol><li>打开 Dubbo Admin 控制台</li><li>在左侧导航栏选择【服务治理】 > 【参数路由】</li><li>点击 “创建” 按钮,输入。</li></ol><p><img src=/imgs/v3/tasks/arguments/arguments_admin.png alt="Admin 参数路由设置截图"></p><p>方法参数的索引从 <code>0</code> 开始,我们上面填入 <code>1</code> 表示根据第二个参数进行流量转发。</p><h4 id=规则详解>规则详解</h4><p><strong>规则 key</strong> :<code>org. [...]
@@ -713,7 +713,7 @@ public interface DetailService {
</span></span></code></pre></div><ul><li><code>method=getItem & arguments[1]=dubbo</code> 表示流量规则匹配 <code>getItem</code> 方法调用的第二个参数,当参数值为 <code>dubbo</code> 时做进一步的地址子集筛选。</li><li><code>detailVersion=v2</code> 将过滤出所有带有 <code>detailVersion=v2</code> 标识的 URL 地址子集(在示例部署中,我们所有 detail v2 的实例都已经打上了 <code>detailVersion=v2</code> 标签)。</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-yaml data-la [...]
</span></span><span style=display:flex><span> - method=getItem & arguments[1]=dubbo => detailVersion=v2
</span></span></code></pre></div><p><code>force: false</code> 表示如果没有 <code>detailVersion=v2</code> 的地址,则随机访问所有可用地址。</p><h2 id=其他事项>其他事项</h2><p>本示例只是 Dubbo 条件路由的一种使用场景,除了根据方法名、参数匹配进行流量转发,条件路由还可以根据附加参数 Attachments、URL 中的数据等进行流量转发,同时匹配条件也支持范围、通配符等,比如:</p><ul><li>attachments[key]=hello*</li><li>arguments[0]=1~100</li><li>url_key=value</li></ul><p>更为灵活的是,条件路由的匹配条件支持扩展,用户可以自定义匹配条件的来源和格式,具体可参见 <a href=/zh-cn/overview/core-features/traffic/condition-rule/>条件路由规则说明</a>。</p><div id=pre-footer><h2> [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/arguments?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%a0%b9%e6%8d%ae%e8%af%b7%e6%b1%82%e5%8f%82%e6%95%b0%e5%bc%95%e5%af%bc%e6%b5%81%e9%87%8f%e5%88%86%e5%b8%83" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#为-vip-用户提供稳定的特价商品服务>为 VIP 用户提供稳定的特价商品服务</a></li></ul></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/index.html
index df7dd7eb11d..a845fc5566e 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/index.html
@@ -5,14 +5,14 @@ $ kubectl get pods -n dubbo-demo # list result here 为 org.apache.dubbo.samples
操作步骤 打开 Dubbo Admin 控制台 在左侧导航栏选择【服务治理】>【条件路由】 点击 “创建”,输入服务 org.apache.dubbo.samples.UserService 。 打开机器日志,刷新页面多触发机器用户详情服务调用,可以看到只有规则中指定的实例中在持续刷新以下日志:
Received getInfo request...... 规则详解 规则 key :org.apache.dubbo.samples.UserService
规则体
-configVersion: v3.0 enabled: true force: false conditions: - 'method=getInfo => host = {your ip address}' 替换 {your ip address} 为 User 实际的部署地址。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="将流量点对点引导到一台机器 (如排查问题)"><meta itemprop=description content="自动的地址发现和负载均衡机制有很多优势,它让我们构建可伸缩的分布式微服务系统成为可能,但这种动 [...]
+configVersion: v3.0 enabled: true force: false conditions: - 'method=getInfo => host = {your ip address}' 替换 {your ip address} 为 User 实际的部署地址。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="将流量点对点引导到一台机器 (如排查问题)"><meta itemprop=description content="自动的地址发现和负载均衡机制有很多优势,它让我们构建可伸缩的分布式微服务系统成为可能,但这种动 [...]
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 本任务我们将以 User 服务作为示例,将商城中 Frontend 应用对用户详情方法的调用 UserService#getInfo 全部导流到一台固定实例上去。
将用户详情服务调用导流到一台固定机器 首先,确定部署 User 应用的实际机器列表
$ kubectl get pods -n dubbo-demo # list result here 为 org.apache.dubbo.samples.UserService 服务的 getInfo 方法调用设置条件路由规则,所有这个方法的调用全部转发到一台指定机器。
操作步骤 打开 Dubbo Admin 控制台 在左侧导航栏选择【服务治理】>【条件路由】 点击 “创建”,输入服务 org.apache.dubbo.samples.UserService 。 打开机器日志,刷新页面多触发机器用户详情服务调用,可以看到只有规则中指定的实例中在持续刷新以下日志:
Received getInfo request...... 规则详解 规则 key :org.apache.dubbo.samples.UserService
规则体
-configVersion: v3.0 enabled: true force: false conditions: - 'method=getInfo => host = {your ip address}' 替换 {your ip address} 为 User 实际的部署地址。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="87"><meta name=twitter:card content="summary"><meta name=twitter:title content="将流量点对点引导到一台机器 (如排查问题)"><meta name=twitter:description content="自动的地址发现和负载均衡机制有很多优势,它让我们构建可伸缩的分布式微服务系统成为可能,但这种动态的流量分配也带来很多复杂性。一个典型问题是我们无法再预测一次请求具体会落到那一台提供者机器上,但有时能预期或控制请求固 [...]
+configVersion: v3.0 enabled: true force: false conditions: - 'method=getInfo => host = {your ip address}' 替换 {your ip address} 为 User 实际的部署地址。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="87"><meta name=twitter:card content="summary"><meta name=twitter:title content="将流量点对点引导到一台机器 (如排查问题)"><meta name=twitter:description content="自动的地址发现和负载均衡机制有很多优势,它让我们构建可伸缩的分布式微服务系统成为可能,但这种动态的流量分配也带来很多复杂性。一个典型问题是我们无法再预测一次请求具体会落到那一台提供者机器上,但有时能预期或控制请求固 [...]
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 本任务我们将以 User 服务作为示例,将商城中 Frontend 应用对用户详情方法的调用 UserService#getInfo 全部导流到一台固定实例上去。
将用户详情服务调用导流到一台固定机器 首先,确定部署 User 应用的实际机器列表
$ kubectl get pods -n dubbo-demo # list result here 为 org.apache.dubbo.samples.UserService 服务的 getInfo 方法调用设置条件路由规则,所有这个方法的调用全部转发到一台指定机器。
@@ -741,7 +741,7 @@ conditions:
<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><span style=color:#586e75># list result here</span>
</span></span></code></pre></div><p>为 <code>org.apache.dubbo.samples.UserService</code> 服务的 <code>getInfo</code> 方法调用设置条件路由规则,所有这个方法的调用全部转发到一台指定机器。</p><h4 id=操作步骤>操作步骤</h4><ol><li>打开 Dubbo Admin 控制台</li><li>在左侧导航栏选择【服务治理】>【条件路由】</li><li>点击 “创建”,输入服务 <code>org.apache.dubbo.samples.UserService</code> 。</li></ol><p><img src=/imgs/v3/tasks/host/host_admin.png alt="Admin 指定机器导流配置截图"></p><p>打开机器日志,刷新页面多触发机器用户详情服务调用,可以看到只有规则中指定的实例中在持续刷新以下日志:</p><div class=highlight><pre tabindex=0 s [...]
</span></span></code></pre></div><h4 id=规则详解>规则详解</h4><p><strong>规则 key</strong> :<code>org.apache.dubbo.samples.UserService</code></p><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-yaml data-lang=yaml><span style=display:flex><span><span style=color:#268bd2>configVersion</span>: v3.0
@@ -750,7 +750,7 @@ conditions:
</span></span><span style=display:flex><span><span style=color:#268bd2>conditions</span>:
</span></span><span style=display:flex><span> - <span style=color:#2aa198>'method=getInfo => host = {your ip address}'</span>
</span></span></code></pre></div><p>替换 <code>{your ip address}</code> 为 User 实际的部署地址。</p><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的条件路由规则。</p><h2 id=其他事项>其他事项</h2><p>在生产环境中引导流量到固定机器要做好安全性评估,避免单机负载过高影响系统稳定性,另外,云原生背景下的 IP 地址的变化更加频繁,IP 地址可能随时会失效,要注意及时清理绑定特定 IP 的路由规则。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/host?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%2A+Edi [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%b0%86%e6%b5%81%e9%87%8f%e7%82%b9%e5%af%b9%e7%82%b9%e5%bc%95%e5%af%bc%e5%88%b0%e4%b8%80%e5%8f%b0%e6%9c%ba%e5%99%a8%20%28%e5%a6%82%e6%8e%92%e6%9f%a5%e9%97%ae%e9%a2%98%29" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#将用户详情服务调用导流到一台固定机器>将用户详情服务调用导流到一台固定机器</a></li></ul></li><li><a href=#清理>清理</a></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div cl [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/index.xml b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/index.xml
index 5b6960d5ce6..d819ee03aa9 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/index.xml
@@ -39,8 +39,8 @@
</span></span></code></pre></div><p>为了保障系统完整性,除了商城相关的几个微服务应用,示例还在后台拉起了 Nacos 注册配置中心、Dubbo Admin 控制台 和 Skywalking 全链路追踪系统。</p></description></item><item><title>动态调整服务超时时间</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/</guid><description>< [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>商城项目通过 <code>org.apache.dubbo.samples.UserService</code> 提供用户信息管理服务,访问 <code>http://localhost:8080/</code> 打开商城并输入任意账号密码,点击 <code>Login</code> 即可以正常登录到系统。</p>
@@ -69,14 +69,11 @@
</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">side</span>: provider
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">parameters</span>:
</span></span><span style="display:flex;"><span> <span style="color:#268bd2">timeout</span>: <span style="color:#2aa198">2000</span>
-</span></span></code></pre></div><p>从 <code>UserService</code> 服务提供者视角,将超时时间总体调整为 2s。</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">parameters</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">timeout</span>: <span style="color:#2aa198">2000</span>
-</span></span></code></pre></div><p><code>side: provider</code> 配置会将规则发送到服务提供方实例,所有 <code>UserService</code> 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。</p></description></item><item><title>通过重试提高服务调用成功率</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/ta [...]
+</span></span></code></pre></div><p>从 <code>UserService</code> 服务提供者视角,将超时时间总体调整为 2s。</p></description></item><item><title>通过重试提高服务调用成功率</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/</guid><description><p>在服务初次调用失败后,通过重试能有效的提 [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>成功登录商城项目后,商城会默认在首页展示当前登录用户的详细信息。</p>
@@ -114,8 +111,8 @@
<p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。</p></description></item><item><title>通过动态开启访问日志跟踪服务调用情况</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/accesslog/</guid><description><p>访问日志可以很好的记录某台机器在某段时间内处理的所有服务请求信息,包括请求接收时间、远端 IP、请求参数、响应结果等,运行态动态的开启访问日志对于排查问题非常有帮助。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>商城的所有用户服务都由 <code>User</code> 应用的 UserService 提供,通过这个任务,我们为 <code>User</code> 应用的某一台或几台机器开启访问日志,以便观察用户服务的整体访问情况。</p>
@@ -138,8 +135,8 @@
<p>当应用部署在多个不同机房/区域的时候,应用之间相互调用就会出现跨区域的情况,而跨区域调用会增加响应时间,影响用户体验。同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者,避免了跨区域带来的网络延时,从而减少了调用的响应时间。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>Detail 应用和 Comment 应用都有双区域部署,其中 Detail v1 与 Comment v1 部署在区域 Beijing,Detail v2 与 Comment v2 部署在区域 Hangzhou 区域。为了保证服务调用的响应速度,我们需要增加同区域优先的调用规则,确保 Beijing 区域内的 Detail v1 始终默认调用 Comment v1,Hangzhou 区域内的 Detail v2 始终调用 Comment v2。</p>
@@ -171,8 +168,8 @@
</blockquote>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>我们决定为商城系统建立一套完整的线上灰度验证环境,灰度环境和线上环境共享一套物理集群,需要我们通过 Dubbo 标签路由从逻辑上完全隔离出一套环境,做到灰度流量和线上流量互不干扰。</p>
@@ -262,18 +259,18 @@
<li>匹配这个条件的流量,转发到这一批机器</li>
<li>匹配另一个条件的流量,转发到另一批机器</li>
</ul>
-<p><img src="" alt="画一张流量匹配和转发的图"></p>
+<p><code>画一张流量匹配和转发的图</code></p>
<p>这在 Dubbo 中就是用 条件路由 来实现的,关于其详细工作原理我们在介绍中有详细讲解。
在以上示例中,xxx 代表;yyy 代表</p>
<p>我们需要把规则下发到运行中的dubbo sdk,在 dubbo 体系中这是如下如下工作的。</p>
-<p><img src="" alt="路由规则的分发与生效原理图"></p>
+<p><code>路由规则的分发与生效原理图</code></p>
<p>一个 zk/nacos、下发一条规则,dubbo实例接收到规则推送,rpc调用过程中应用规则筛选,选出地址子集调用</p>
<div class="alert alert-info" role="alert">
<h4 class="alert-heading">注意</h4>
- 传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <a href="">Kubernetes 最佳实践</a>。
+ 传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <code>Kubernetes 最佳实践</code>。
</div>
@@ -281,8 +278,8 @@
<p>或者,有些产品提供差异化的付费服务,需要根据请求参数中的用户 ID 将请求路由到具有不同服务等级保障的集群,就像接下来我们在示例任务中所做的那样。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>为了增加用户粘性,我们为商城示例系统新增了 VIP 用户服务,现在商城有两类用户:普通用户和 VIP 用户,其中 VIP 用户可以看到比普通用户更低的商品价格。</p>
@@ -304,8 +301,8 @@
</ul>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>示例项目中,我们发布了 Order 服务 v2 版本,并在 v2 版本中优化了下单体验:用户订单创建完成后,显示订单收货地址信息。</p>
@@ -318,8 +315,8 @@
<p>服务降级的核心目标就是针对这些弱依赖项。在弱依赖不可用或调用失败时,通过返回降级结果尽可能的维持功能完整性;另外,我们有时也会主动的屏蔽一些非关键弱依赖项的调用,比如在大促流量洪峰之前,通过预先设置一些有效的降级策略来短路部分依赖调用,来有效的提升流量高峰时期系统的整体效率和稳定性。</p>
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>正常情况下,商品详情页会展示来自顾客的商品评论信息。</p>
@@ -350,11 +347,11 @@
</span></span></code></pre></div><h2 id="清理">清理</h2>
<p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。</p>
<h2 id="其他事项">其他事项</h2>
-<p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <a href="../.././../reference/admin/mock/">Dubbo Admin 服务 Mock</a> 特性的使用方式。</p></description></item><item><title>将流量点对点引导到一台机器 (如排查问题)</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/</link><pubDate>Mon, 01 Jan 0001 00: [...]
+<p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <code>Dubbo Admin 服务 Mock</code> 特性的使用方式。</p></description></item><item><title>将流量点对点引导到一台机器 (如排查问题)</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/host/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https:/ [...]
<h2 id="开始之前">开始之前</h2>
<ul>
-<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/#%e9%83%a8%e7%bd%b2%e5%95%86%e5%9c%ba%e7%b3%bb%e7%bb%9f">部署 Shop 商城项目</a></li>
-<li>部署并打开 <a href="../.././../reference/admin/architecture/">Dubbo Admin</a></li>
+<li><code>部署 Shop 商城项目</code></li>
+<li>部署并打开 <code>Dubbo Admin</code></li>
</ul>
<h2 id="任务详情">任务详情</h2>
<p>本任务我们将以 User 服务作为示例,将商城中 Frontend 应用对用户详情方法的调用 <code>UserService#getInfo</code> 全部导流到一台固定实例上去。</p>
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation/index.html
index 0443cc345bc..6dee56541df 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation/index.html
@@ -5,14 +5,14 @@
为商城搭建一套完全隔离的灰度环境 首先,为 User、Detail、Comment、Order 几个应用都部署灰度环境实例,我们为这部分实例都带有 env=gray 的环境标。部署可以通过以下命令快速完成
kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/Gray.yml 如何为机器或实例打标? 方法一:通过 dubbo.labels 或 DUBBO_LABELS 指定需要增加到 URL 中的键值对。
# JVM 参数 -Ddubbo.labels = "tag1=value1; tag2=value2" # 环境变量 DUBBO_LABELS = "tag1=value1; tag2=value2" 最终生成的 URL 会包含 tag1、tag2 两个 key: dubbo://xxx?tag1=value1&tag2=value2
-方法二:通过 dubbo.env.keys 或 DUBBO_ENV_KEYS 指定要加载的环境变量,Dubbo 会尝试从环境变量加载每个 key。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="通过标签实现流量隔离环境(灰度、多套开发环境等)"><meta itemprop=description content='无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。
+方法二:通过 dubbo.env.keys 或 DUBBO_ENV_KEYS 指定要加载的环境变量,Dubbo 会尝试从环境变量加载每个 key。'><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="通过标签实现流量隔离环境(灰度、多套开发环境等)"><meta itemprop=description content='无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。
在日常开发中,为了避免开发测试过程中互相干扰,我们有搭建多套独立测试环境的需求,但通过搭建物理集群的方式成本非常高且不够灵活 在生产发布过程中,为了保障新版本得到充分的验证,我们需要搭建一套完全隔离的线上灰度环境用来部署新版本服务,线上灰度环境能完全模拟生产运行情况,但只有固定的带有特定标记的线上流量会被导流到灰度环境,充分验证新版本的同时将线上变更风险降到最低。 利用 Dubbo 提供的标签路由能力,可以非常灵活的实现流量隔离能力。可以单独为集群中的某一个或多个应用划分隔离环境,也可以为整个微服务集群划分隔离环境;可以在部署态静态的标记隔离环境,也可以在运行态通过规则动态的隔离出一部分机器环境。
注意:标签路由是一套严格隔离的流量体系,对于同一个应用而言,一旦打了标签则这部分地址子集就被隔离出来,只有带有对应标签的请求流量可以访问这个地址子集,这部分地址不再接收没有标签或者具有不同标签的流量。举个例子,如果我们将一个应用进行打标,打标后划分为 tag-a、tag-b、无 tag 三个地址子集,则访问这个应用的流量,要么路由到 tag-a (当请求上下文 dubbo.tag=tag-a),要么路由到 tag-b (dubbo.tag=tag-b),或者路由到无 tag 的地址子集 (dubbo.tag 未设置),不会出现混调的情况。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 我们决定为商城系统建立一套完整的线上灰度验证环境,灰度环境和线上环境共享一套物理集群,需要我们通过 Dubbo 标签路由从逻辑上完全隔离出一套环境,做到灰度流量和线上流量互不干扰。
为商城搭建一套完全隔离的灰度环境 首先,为 User、Detail、Comment、Order 几个应用都部署灰度环境实例,我们为这部分实例都带有 env=gray 的环境标。部署可以通过以下命令快速完成
kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/Gray.yml 如何为机器或实例打标? 方法一:通过 dubbo.labels 或 DUBBO_LABELS 指定需要增加到 URL 中的键值对。
# JVM 参数 -Ddubbo.labels = "tag1=value1; tag2=value2" # 环境变量 DUBBO_LABELS = "tag1=value1; tag2=value2" 最终生成的 URL 会包含 tag1、tag2 两个 key: dubbo://xxx?tag1=value1&tag2=value2
-方法二:通过 dubbo.env.keys 或 DUBBO_ENV_KEYS 指定要加载的环境变量,Dubbo 会尝试从环境变量加载每个 key。'><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="通过标签实现流量隔离环境(灰度、多套开发环境等)"><meta name=twitter:description content='无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。
+方法二:通过 dubbo.env.keys 或 DUBBO_ENV_KEYS 指定要加载的环境变量,Dubbo 会尝试从环境变量加载每个 key。'><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="通过标签实现流量隔离环境(灰度、多套开发环境等)"><meta name=twitter:description content='无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。
在日常开发中,为了避免开发测试过程中互相干扰,我们有搭建多套独立测试环境的需求,但通过搭建物理集群的方式成本非常高且不够灵活 在生产发布过程中,为了保障新版本得到充分的验证,我们需要搭建一套完全隔离的线上灰度环境用来部署新版本服务,线上灰度环境能完全模拟生产运行情况,但只有固定的带有特定标记的线上流量会被导流到灰度环境,充分验证新版本的同时将线上变更风险降到最低。 利用 Dubbo 提供的标签路由能力,可以非常灵活的实现流量隔离能力。可以单独为集群中的某一个或多个应用划分隔离环境,也可以为整个微服务集群划分隔离环境;可以在部署态静态的标记隔离环境,也可以在运行态通过规则动态的隔离出一部分机器环境。
注意:标签路由是一套严格隔离的流量体系,对于同一个应用而言,一旦打了标签则这部分地址子集就被隔离出来,只有带有对应标签的请求流量可以访问这个地址子集,这部分地址不再接收没有标签或者具有不同标签的流量。举个例子,如果我们将一个应用进行打标,打标后划分为 tag-a、tag-b、无 tag 三个地址子集,则访问这个应用的流量,要么路由到 tag-a (当请求上下文 dubbo.tag=tag-a),要么路由到 tag-b (dubbo.tag=tag-b),或者路由到无 tag 的地址子集 (dubbo.tag 未设置),不会出现混调的情况。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 我们决定为商城系统建立一套完整的线上灰度验证环境,灰度环境和线上环境共享一套物理集群,需要我们通过 Dubbo 标签路由从逻辑上完全隔离出一套环境,做到灰度流量和线上流量互不干扰。
@@ -744,7 +744,7 @@ DUBBO_LABELS = "tag1=value1; tag2=value2"
<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></code></pre></div><div class="alert alert-info" role=alert><h4 class=alert-heading>如何为机器或实例打标?</h4><p><strong>方法一:通过 <code>dubbo.labels</code> 或 <code>DUBBO_LABELS</code> 指定需要增加到 URL 中的键值对。</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><span style=color:#586e75># JVM 参数</span>
</span></span><span style=display:flex><span>-Ddubbo.labels <span style=color:#719e07>=</span> <span style=color:#2aa198>"tag1=value1; tag2=value2"</span>
</span></span><span style=display:flex><span>
@@ -772,7 +772,7 @@ DUBBO_LABELS = "tag1=value1; tag2=value2"
</span></span><span style=display:flex><span> <span style=color:#268bd2>exact</span>: gray
</span></span></code></pre></div><p><code>force</code> 指定了是否允许流量跳出灰度隔离环境,这决定了某个服务发现灰度隔离环境没有可用地址时的行为,默认值为 <code>false</code> 表示会 fallback 到不属于任何隔离环境 (不带标签) 的普通地址集(不会 fallback 到任何已经归属其他隔离环境的 ip 地址)。示例中设置 <code>froce: true</code> 表示当灰度环境地址子集为空时,服务调用失败(No provider exception)。</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:#26 [...]
</span></span></code></pre></div><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的流量隔离规则。</p><h2 id=其他事项>其他事项</h2><p>除了示例中演示的动态环境划分,也可以在部署态指定实例所属流量标签(通过一个特殊的 key <code>dubbo.provider.tag</code> 实现),这样当实例启动成功后就已经被自动圈定在某个流量环境,具体配置方式可参见 <a href=/zh-cn/overview/core-features/traffic/tag-rule/>标签路由</a> 说明。</p><p>通常,<code>dubbo.tag</code> 流量标的传递需要依赖全链路追踪工具的帮助,Dubbo 只会负责 A-B 的点对点标签传递,示例中也是通过在每次点对点 RPC 调用前重复设置达成的传递效果,在实践中,全链路灰度往往从 tag 设置进全链路上下文后自动启动,我们只需要扩展 Dubbo Filter 将全链路工具上下文中的 tag 标签读取并设 [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/isolation?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%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%80%9a%e8%bf%87%e6%a0%87%e7%ad%be%e5%ae%9e%e7%8e%b0%e6%b5%81%e9%87%8f%e9%9a%94%e7%a6%bb%e7%8e%af%e5%a2%83%ef%bc%88%e7%81%b0%e5%ba%a6%e3%80%81%e5%a4%9a%e5%a5%97%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e7%ad%89%ef%bc%89" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#为商城搭建一套完全隔离的灰度环境>为商城搭建一套完全隔离的灰度环境</a></li></ul></li><li><a href=#清理>清理</a></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class= [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/mock/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/mock/index.html
index 5c6d2a3a0be..e545a4b072b 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/mock/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/mock/index.html
@@ -8,7 +8,7 @@
规则详解 规则 key :org.apache.dubbo.samples.CommentService
规则体
configVersion: v3.0 enabled: true configs: - side: consumer parameters: mock: force:return Mock Comment 清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。
-其他事项 服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 Dubbo Admin 服务 Mock 特性的使用方式。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="在大促之前对弱依赖调用进行服务降级"><m [...]
+其他事项 服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 Dubbo Admin 服务 Mock 特性的使用方式。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="在大促之前对弱依赖调用进行服务降级"><m [...]
服务降级的核心目标就是针对这些弱依赖项。在弱依赖不可用或调用失败时,通过返回降级结果尽可能的维持功能完整性;另外,我们有时也会主动的屏蔽一些非关键弱依赖项的调用,比如在大促流量洪峰之前,通过预先设置一些有效的降级策略来短路部分依赖调用,来有效的提升流量高峰时期系统的整体效率和稳定性。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 正常情况下,商品详情页会展示来自顾客的商品评论信息。
评论信息的缺失在很多时候并不会影响用户浏览和购买商品,因此,我们定义评论信息属于商品详情页面的弱依赖。接下来,我们就模拟在大促前夕常用的一个策略,通过服务降级提前关闭商品详情页对于评论服务的调用(返回一些本地预先准备好的历史评论数据),来降低集群整体负载水位并提高响应速度。
@@ -18,7 +18,7 @@ configVersion: v3.0 enabled: true configs: - side: consumer parameters: mock: fo
规则详解 规则 key :org.apache.dubbo.samples.CommentService
规则体
configVersion: v3.0 enabled: true configs: - side: consumer parameters: mock: force:return Mock Comment 清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。
-其他事项 服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 Dubbo Admin 服务 Mock 特性的使用方式。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="79"><meta name=twitter:card content="summary"><meta name=twitter:title content="在大促之前对弱依赖调用进行服务降级"><meta name=twitter:description content="由于微服务系统的分布式特性,一个服务往往需要依赖非常 [...]
+其他事项 服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 Dubbo Admin 服务 Mock 特性的使用方式。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="79"><meta name=twitter:card content="summary"><meta name=twitter:title content="在大促之前对弱依赖调用进行服务降级"><meta name=twitter:description content="由于微服务系统的分布式特性,一个服务往往需要依赖非常 [...]
服务降级的核心目标就是针对这些弱依赖项。在弱依赖不可用或调用失败时,通过返回降级结果尽可能的维持功能完整性;另外,我们有时也会主动的屏蔽一些非关键弱依赖项的调用,比如在大促流量洪峰之前,通过预先设置一些有效的降级策略来短路部分依赖调用,来有效的提升流量高峰时期系统的整体效率和稳定性。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 正常情况下,商品详情页会展示来自顾客的商品评论信息。
评论信息的缺失在很多时候并不会影响用户浏览和购买商品,因此,我们定义评论信息属于商品详情页面的弱依赖。接下来,我们就模拟在大促前夕常用的一个策略,通过服务降级提前关闭商品详情页对于评论服务的调用(返回一些本地预先准备好的历史评论数据),来降低集群整体负载水位并提高响应速度。
@@ -765,14 +765,14 @@ configs:
<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><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>configs</span>:
</span></span><span style=display:flex><span> - <span style=color:#268bd2>side</span>: consumer
</span></span><span style=display:flex><span> <span style=color:#268bd2>parameters</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>mock</span>: force:return Mock Comment
-</span></span></code></pre></div><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。</p><h2 id=其他事项>其他事项</h2><p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <a href=../.././../reference/admin/mock/>Dubbo Admin 服务 Mock</a> 特性的使用方式。</p><p>Dubbo 的降级规则用来设置发生降级时的行为和返回值,而对于何时应该执行限流降级动作,即限�
��降级时机的判断并没有过多涉猎,这一点 Dubbo 通过集成更专业的限流降级产品如 Sentinel 进行了 [...]
-<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 [...]
+</span></span></code></pre></div><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的降级规则。</p><h2 id=其他事项>其他事项</h2><p>服务降级功能也可以用于开发测试环境,由于微服务分布式的特点,不同的服务或应用之间都有相互依赖关系,因此,一个服务或应用很难不依赖其他服务而独立部署工作。但测试环境下并不是所有服务都是随时就绪的状态,这对于微服务强调的服务独立演进是一个很大的障碍,通过服务降级这个功能,我们可以模拟或短路应用对其他服务的依赖,从而可以让应用按照自己预期的行为 Mock 外部服务调用的返回结果。具体可参见 <code>Dubbo Admin 服务 Mock</code> 特性的使用方式。</p><p>Dubbo 的降级规则用来设置发生降级时的行为和返回值,而对于何时应该执行限流降级动作,即限流降级时机的判断并没有
过多涉猎,这一点 Dubbo 通过集成更专业的限流降级产品如 Sentinel 进行了补全,可以配合 Dubbo 降级规则一起使用,具体可参见 <a [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/mock?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%2A+Edi [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%9c%a8%e5%a4%a7%e4%bf%83%e4%b9%8b%e5%89%8d%e5%af%b9%e5%bc%b1%e4%be%9d%e8%b5%96%e8%b0%83%e7%94%a8%e8%bf%9b%e8%a1%8c%e6%9c%8d%e5%8a%a1%e9%99%8d%e7%ba%a7" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#通过降级规则短路-comment-评论服务调用>通过降级规则短路 Comment 评论服务调用</a></li></ul></li><li><a href=#清理>清理</a></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</d [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/index.html
index 11631d6e6da..81f296e11df 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/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/java-sdk/tasks/traffic-management/region/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/><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/java-sdk/tasks/traffic-management/region/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/region/><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>
@@ -627,7 +627,7 @@
<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><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</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>key</span>: org.apache.dubbo.samples.CommentService
@@ -636,7 +636,7 @@
</span></span></code></pre></div><p>这里使用的是条件路由,<code>region</code> 为我们示例中的区域标识,会自动的识别当前发起调用的一方所在的区域值,当请求到达 <code>hangzhou</code> 区域部署的 Detail 后,从 Detail 发出的请求自动筛选 URL 地址中带有 <code>region=hangzhou</code> 标识的 Comment 地址,如果发现有可用的地址子集则将请求发出,如果没有匹配条件的地址,则随机发往任意可用区地址。</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>condit [...]
</span></span><span style=display:flex><span> - <span style=color:#2aa198>'=> region = $region'</span>
</span></span></code></pre></div><p><code>force: false</code> 也是关键,这允许在同区域无有效地址时,可以跨区域调用服务。</p><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的同区域流量规则。</p><h2 id=其他事项>其他事项</h2><p>我们上面的示例并未纳入多区域之间注册中心的复杂性,如果每个区域部署有独立的注册中心,则多区域间的地址同步就是一个需要考虑的问题。对于这种场景,Dubbo 通过多注册&多订阅机制也提供了同区域优先的支持,具体可以参见<a href=/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/multi-registry/>多注册&多订阅</a>相关文档。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn [...]
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/region?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%2A+E [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%90%8c%e6%9c%ba%e6%88%bf/%e5%8c%ba%e5%9f%9f%e4%bc%98%e5%85%88" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#配置-detail-访问同区域部署的-comment-服务>配置 <code>Detail</code> 访问同区域部署的 <code>Comment</code> 服务</a></li></ul></li><li><a href=#清理>清理</a></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div cla [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/index.html
index 85c4b98e84b..9a4c93433f0 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/retry/index.html
@@ -9,7 +9,7 @@
规则体
configVersion: v3.0 enabled: true configs: - side: consumer parameters: retries: 5 从 UserService 服务消费者视角(即 Frontend 应用)增加了调用失败后的重试次数。
parameters: retries: 5 side: consumer 配置会将规则发送到服务消费方实例,所有 UserService 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。
-清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="通过重试提高服务调用成功率"><meta itemprop=description content="在服务初次调用失败后,通过重试能有效的提升总体调用成功率。但也要注意重试可能带来的响应时间增长,系统负载升高等,另外,重试一般适用于只读服务,或者具有幂等性保证的写服务。
+清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="通过重试提高服务调用成功率"><meta itemprop=description content="在服务初次调用失败后,通过重试能有效的提升总体调用成功率。但也要注意重试可能带来的响应时间增长,系统负载升高等,另外,重试一般适用于只读服务,或者具有幂等性保证的写服务。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 成功登录商城项目后,商城会默认在首页展示当前登录用户的详细信息。
但有些时候,提供用户详情的 Dubbo 服务也会由于网络不稳定等各种原因变的不稳定,比如我们提供用户详情的 User 服务就很大概率会调用失败,导致用户无法看到账户的详细信息。
用户账户详情查询失败后的系统界面如下:
@@ -20,7 +20,7 @@ parameters: retries: 5 side: consumer 配置会将规则发送到服务消费方
规则体
configVersion: v3.0 enabled: true configs: - side: consumer parameters: retries: 5 从 UserService 服务消费者视角(即 Frontend 应用)增加了调用失败后的重试次数。
parameters: retries: 5 side: consumer 配置会将规则发送到服务消费方实例,所有 UserService 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。
-清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="67"><meta name=twitter:card content="summary"><meta name=twitter:title content="通过重试提高服务调用成功率"><meta name=twitter:description content="在服务初次调用失败后,通过重试能有效的提升总体调用成功率。但也要注意重试可能带来的响应时间增长,系统负载升高等,另外,重试一般适用于只读服务,或者具有幂等性保证的写服务。
+清理 为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="67"><meta name=twitter:card content="summary"><meta name=twitter:title content="通过重试提高服务调用成功率"><meta name=twitter:description content="在服务初次调用失败后,通过重试能有效的提升总体调用成功率。但也要注意重试可能带来的响应时间增长,系统负载升高等,另外,重试一般适用于只读服务,或者具有幂等性保证的写服务。
开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 成功登录商城项目后,商城会默认在首页展示当前登录用户的详细信息。
但有些时候,提供用户详情的 Dubbo 服务也会由于网络不稳定等各种原因变的不稳定,比如我们提供用户详情的 User 服务就很大概率会调用失败,导致用户无法看到账户的详细信息。
用户账户详情查询失败后的系统界面如下:
@@ -777,7 +777,7 @@ side: consumer 配置会将规则发送到服务消费方实例,所有 UserSer
<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><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>configs</span>:
</span></span><span style=display:flex><span> - <span style=color:#268bd2>side</span>: consumer
@@ -786,7 +786,7 @@ side: consumer 配置会将规则发送到服务消费方实例,所有 UserSer
</span></span></code></pre></div><p>从 <code>UserService</code> 服务消费者视角(即 Frontend 应用)增加了调用失败后的重试次数。</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>parameters</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>retries</span>: <span style=color:#2aa198>5</span>
</span></span></code></pre></div><p><code>side: consumer</code> 配置会将规则发送到服务消费方实例,所有 <code>UserService</code> 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。</p><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的重试规则。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/retry?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%2A+Ed [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%80%9a%e8%bf%87%e9%87%8d%e8%af%95%e6%8f%90%e9%ab%98%e6%9c%8d%e5%8a%a1%e8%b0%83%e7%94%a8%e6%88%90%e5%8a%9f%e7%8e%87" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#增加重试提高成功率>增加重试提高成功率</a></li></ul></li><li><a href=#清理>清理</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态, [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/index.html
index 33a63d8c059..02e03b5bf0f 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/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/java-sdk/tasks/traffic-management/route/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/><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/java-sdk/tasks/traffic-management/route/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/route/><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>
@@ -627,9 +627,9 @@
<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 [...]
-在以上示例中,xxx 代表;yyy 代表</p><p>我们需要把规则下发到运行中的dubbo sdk,在 dubbo 体系中这是如下如下工作的。</p><p><img src alt=路由规则的分发与生效原理图></p><p>一个 zk/nacos、下发一条规则,dubbo实例接收到规则推送,rpc调用过程中应用规则筛选,选出地址子集调用</p><div class="alert alert-info" role=alert><h4 class=alert-heading>注意</h4>传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <a href>Kubernetes 最佳实践</a>。</div><p>这时,如果我们对 xxx 服务发送一个请求,</p><p>有一点非常</p><h2 id=更多内容>更多内容</h2><ul><li>配置了路由规则不生效?<a href>Dubbo [...]
-<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 [...]
+<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 [...]
+在以上示例中,xxx 代表;yyy 代表</p><p>我们需要把规则下发到运行中的dubbo sdk,在 dubbo 体系中这是如下如下工作的。</p><p><code>路由规则的分发与生效原理图</code></p><p>一个 zk/nacos、下发一条规则,dubbo实例接收到规则推送,rpc调用过程中应用规则筛选,选出地址子集调用</p><div class="alert alert-info" role=alert><h4 class=alert-heading>注意</h4>传统 Nacos/Zookeeper 的微服务部署方案中,Dubbo 的路由规则配置中心存储并转发到 Dubbo SDK,而在 Kubernetes Service 或服务网格场景下,路由规则的存储与推送机制会有一些变化,具体请参考 <code>Kubernetes 最佳实践</code>。</div><p>这时,如果我们对 xxx 服务发送一个请求,</p><p>有一点非常</p><h2 id=更多内容>更多内容</h2><ul><li>配置了路由规则不生效?<code>Dubbo 路由 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/route?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%2A+Ed [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%9f%ba%e4%ba%8e%e6%9d%a1%e4%bb%b6%e7%9a%84%e6%b5%81%e9%87%8f%e8%b7%af%e7%94%b1" 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><nav id=TableOfContents><ul><li><a href=#常用流量管控场景>常用流量管控场景</a></li><li><a href=#一个条件路由示例>一个条件路由示例</a></li><li><a href=#更多内容>更多内容</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><butto [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/index.html
index 7f5bd6dda5a..0e9bb4aae4c 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/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/java-sdk/tasks/traffic-management/timeout/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.or [...]
+<!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/java-sdk/tasks/traffic-management/timeout/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.or [...]
<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>
@@ -627,7 +627,7 @@
<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><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>configs</span>:
</span></span><span style=display:flex><span> - <span style=color:#268bd2>side</span>: provider
@@ -636,7 +636,7 @@
</span></span></code></pre></div><p>从 <code>UserService</code> 服务提供者视角,将超时时间总体调整为 2s。</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>parameters</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>2000</span>
</span></span></code></pre></div><p><code>side: provider</code> 配置会将规则发送到服务提供方实例,所有 <code>UserService</code> 服务实例会基于新的 timeout 值进行重新发布,并通过注册中心通知给所有消费方。</p><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的超时规则。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/timeout?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%2A+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%8a%a8%e6%80%81%e8%b0%83%e6%95%b4%e6%9c%8d%e5%8a%a1%e8%b6%85%e6%97%b6%e6%97%b6%e9%97%b4" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#通过规则动态调整超时时间>通过规则动态调整超时时间</a></li></ul></li><li><a href=#清理>清理</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关 [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight/index.html b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight/index.html
index bd838a300cc..9c9d664a9ab 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight/index.html
@@ -3,12 +3,12 @@
当某一组机器负载过高,通过动态调低权重可有效减少新请求流入,改善整体成功率的同时给高负载机器提供喘息之机。 刚刚发布的新版本服务,先通过赋予新版本低权重控制少量比例的流量进入,待验证运行稳定后恢复正常权重,并完全替换老版本。 服务多区域部署或非对等部署时,通过高、低权重的设置,控制不同部署区域的流量比例。 开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 示例项目中,我们发布了 Order 服务 v2 版本,并在 v2 版本中优化了下单体验:用户订单创建完成后,显示订单收货地址信息。
现在如果你体验疯狂下单 (不停的点击 “Buy Now”),会发现 v1 与 v2 总体上是 50% 概率出现,说明两者目前具有相同的默认权重。但我们为了保证商城系统整体稳定性,接下来会先控制引导 20% 流量到 v2 版本,80% 流量依然访问 v1 版本。
实现 Order 服务 80% v1 、20% v2 的流量分布 在调整权重前,首先我们要知道 Dubbo 实例的权重 (weight) 都是绝对值,每个实例的默认权重 (weight) 是 100。举个例子,如果一个服务部署有两个实例:实例 A 权重值为 100,实例 B 权重值为 200,则 A 和 B 收到的流量分布为 1:2。
-接下来,我们就开始调整订单服务访问 v1 和 v2 的流量比例,订单创建服务由 org.apache.dubbo.samples.OrderService 接口提供,接下来通过动态规则调整新版本 OrderService 实例的权重值。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08:00"><meta itemprop=name content="基于权重值的比例流量转发"><meta itemprop=description content="Dubbo 提供了基于权重的负载均衡算法,可以实现按比例的流量分布:权重高的提供者机器收到更多的请求流量,而权重低的机器收到相对更少的流量。
+接下来,我们就开始调整订单服务访问 v1 和 v2 的流量比例,订单创建服务由 org.apache.dubbo.samples.OrderService 接口提供,接下来通过动态规则调整新版本 OrderService 实例的权重值。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08:00"><meta itemprop=name content="基于权重值的比例流量转发"><meta itemprop=description content="Dubbo 提供了基于权重的负载均衡算法,可以实现按比例的流量分布:权重高的提供者机器收到更多的请求流量,而权重低的机器收到相对更少的流量。
以基于权重的流量调度算法为基础,通过规则动态调整单个或一组机器的权重,可以在运行态改变请求流量的分布,实现动态的按比例的流量路由,这对于一些典型场景非常有用。
当某一组机器负载过高,通过动态调低权重可有效减少新请求流入,改善整体成功率的同时给高负载机器提供喘息之机。 刚刚发布的新版本服务,先通过赋予新版本低权重控制少量比例的流量进入,待验证运行稳定后恢复正常权重,并完全替换老版本。 服务多区域部署或非对等部署时,通过高、低权重的设置,控制不同部署区域的流量比例。 开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 示例项目中,我们发布了 Order 服务 v2 版本,并在 v2 版本中优化了下单体验:用户订单创建完成后,显示订单收货地址信息。
现在如果你体验疯狂下单 (不停的点击 “Buy Now”),会发现 v1 与 v2 总体上是 50% 概率出现,说明两者目前具有相同的默认权重。但我们为了保证商城系统整体稳定性,接下来会先控制引导 20% 流量到 v2 版本,80% 流量依然访问 v1 版本。
实现 Order 服务 80% v1 、20% v2 的流量分布 在调整权重前,首先我们要知道 Dubbo 实例的权重 (weight) 都是绝对值,每个实例的默认权重 (weight) 是 100。举个例子,如果一个服务部署有两个实例:实例 A 权重值为 100,实例 B 权重值为 200,则 A 和 B 收到的流量分布为 1:2。
-接下来,我们就开始调整订单服务访问 v1 和 v2 的流量比例,订单创建服务由 org.apache.dubbo.samples.OrderService 接口提供,接下来通过动态规则调整新版本 OrderService 实例的权重值。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="162"><meta name=twitter:card content="summary"><meta name=twitter:title content="基于权重值的比例流量转发"><meta name=twitter:description content="Dubbo 提供了基于权重的负载均衡算法,可以实现按比例的流量分布:权重高的提供者机器收到更多的请求流量,而权重低的机器收到相对更少的流量。
+接下来,我们就开始调整订单服务访问 v1 和 v2 的流量比例,订单创建服务由 org.apache.dubbo.samples.OrderService 接口提供,接下来通过动态规则调整新版本 OrderService 实例的权重值。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="162"><meta name=twitter:card content="summary"><meta name=twitter:title content="基于权重值的比例流量转发"><meta name=twitter:description content="Dubbo 提供了基于权重的负载均衡算法,可以实现按比例的流量分布:权重高的提供者机器收到更多的请求流量,而权重低的机器收到相对更少的流量。
以基于权重的流量调度算法为基础,通过规则动态调整单个或一组机器的权重,可以在运行态改变请求流量的分布,实现动态的按比例的流量路由,这对于一些典型场景非常有用。
当某一组机器负载过高,通过动态调低权重可有效减少新请求流入,改善整体成功率的同时给高负载机器提供喘息之机。 刚刚发布的新版本服务,先通过赋予新版本低权重控制少量比例的流量进入,待验证运行稳定后恢复正常权重,并完全替换老版本。 服务多区域部署或非对等部署时,通过高、低权重的设置,控制不同部署区域的流量比例。 开始之前 部署 Shop 商城项目 部署并打开 Dubbo Admin 任务详情 示例项目中,我们发布了 Order 服务 v2 版本,并在 v2 版本中优化了下单体验:用户订单创建完成后,显示订单收货地址信息。
现在如果你体验疯狂下单 (不停的点击 “Buy Now”),会发现 v1 与 v2 总体上是 50% 概率出现,说明两者目前具有相同的默认权重。但我们为了保证商城系统整体稳定性,接下来会先控制引导 20% 流量到 v2 版本,80% 流量依然访问 v1 版本。
@@ -699,7 +699,7 @@
<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><span style=color:#268bd2>scope</span>: service
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: org.apache.dubbo.samples.OrderService
</span></span><span style=display:flex><span><span style=color:#268bd2>configs</span>:
@@ -719,7 +719,7 @@
</span></span></code></pre></div><p><code>weight: 25</code> 是因为 v1 版本的默认权重是 <code>100</code>,这样 v2 和 v1 版本接收到的流量就变成了 25:100 即 1:4 的比例。</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>parameters</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>weight</span>: <span style=color:#2aa198>25</span>
</span></span></code></pre></div><h2 id=清理>清理</h2><p>为了不影响其他任务效果,通过 Admin 删除或者禁用刚刚配置的权重规则。</p><h2 id=其他事项>其他事项</h2><p><code>weight=0</code></p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/traffic-management/weight?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%2A+E [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%9f%ba%e4%ba%8e%e6%9d%83%e9%87%8d%e5%80%bc%e7%9a%84%e6%af%94%e4%be%8b%e6%b5%81%e9%87%8f%e8%bd%ac%e5%8f%91" 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><nav id=TableOfContents><ul><li><a href=#开始之前>开始之前</a></li><li><a href=#任务详情>任务详情</a><ul><li><a href=#实现-order-服务-80-v1-20-v2-的流量分布>实现 Order 服务 80% v1 、20% v2 的流量分布</a></li></ul></li><li><a href=#清理>清理</a></li><li><a href=#其他事项>其他事项</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-lef [...]
diff --git a/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/index.html b/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/index.html
index f12a8797770..1520e91845d 100644
--- a/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/index.html
+++ b/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/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/java-sdk/tasks/troubleshoot/profiler/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq. [...]
+<!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/java-sdk/tasks/troubleshoot/profiler/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq. [...]
<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>
@@ -756,8 +756,8 @@
</span></span><span style=display:flex><span> +-[ Offset: 1.526632ms; Usage: 809.366553ms, 99% ] Filter org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter invoke.
</span></span><span style=display:flex><span> +-[ Offset: 1.536964ms; Usage: 809.335907ms, 99% ] Filter org.apache.dubbo.rpc.filter.ClassLoaderCallbackFilter invoke.
</span></span><span style=display:flex><span> +-[ Offset: 1.558545ms; Usage: 804.276436ms, 99% ] Receive request. Server biz impl invoke begin., dubbo version: 3.0.10-SNAPSHOT, current host: xx.xx.xx.xx
-</span></span></code></pre></div><div class="alert alert-warning" role=alert><h4 class=alert-heading>注意</h4>由于日志框架不匹配导致的日志为空可以参考<a href=../../others/logger-management/>日志框架适配及运行时管理</a>动态修改日志输出框架。</div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
+</span></span></code></pre></div><div class="alert alert-warning" role=alert><h4 class=alert-heading>注意</h4>由于日志框架不匹配导致的日志为空可以参考<a href=/zh-cn/overview/mannual/java-sdk/reference-manual/qos/introduction/logger-management>日志框架适配及运行时管理</a>动态修改日志输出框架。</div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/tasks/troubleshoot/profiler?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%2A+Edit+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e8%af%b7%e6%b1%82%e8%80%97%e6%97%b6%e9%87%87%e6%a0%b7" 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><nav id=TableOfContents><ul><li><a href=#使用场景>使用场景</a></li><li><a href=#使用方式>使用方式</a><ul><li><a href=#日志说明>日志说明</a></li><li><a href=#simple-profiler>simple profiler</a></li><li><a href=#detail-profiler>detail profiler</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-tit [...]
diff --git a/zh-cn/overview/mannual/web-sdk/index.xml b/zh-cn/overview/mannual/web-sdk/index.xml
index ccc3f4a05b0..79b2e4b0756 100644
--- a/zh-cn/overview/mannual/web-sdk/index.xml
+++ b/zh-cn/overview/mannual/web-sdk/index.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web SDK 手册 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/</link><description>Recent content in Web SDK 手册 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/index.xml" rel="self" type="application/rss+xml"/><item><titl [...]
<p>Dubbo-js 已于 9 月份发布支持 Dubbo3 协议的首个 alpha 版本,它的发布将有机会彻底改变微服务前后端的架构与通信模式,让你能直接在浏览器页面或web服务器中访问后端 Dubbo RPC 服务。</p>
-<p><img src="https://dubbo.apache.org/imgs/v3/web/web-1.png" alt="dubbo-web.png"></p>
<h1 id="浏览器-web-应用示例">浏览器 Web 应用示例</h1>
<p>本示例演示了如何使用 dubbo-js 开发运行在浏览器上的 web 应用程序,web 页面将调用 dubbo node.js 开发的后端服务并生成页面内容。本示例演示基于 IDL 和非 IDL 两种编码模式。</p>
-<p><img src="https://dubbo.apache.org/imgs/v3/web/web-2.png" alt="dubbo-web.png"></p>
<h2 id="idl-模式">IDL 模式</h2>
<h3 id="前置条件">前置条件</h3>
<p>首先,我们将使用 Vite 来生成我们的前端项目模板,它内置了我们稍后需要的所有功能支持。</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>npm create vite@latest -- dubbo-web-example --template react-ts
</span></span><span style="display:flex;"><span><span style="color:#b58900">cd</span> dubbo-web-example
</span></span><span style="display:flex;"><span>npm install
-</span></span></code></pre></div><p>因为使用 Protocol Buffer 的原因,我们首先需要安装相关的代码生成工具,这包括 <code>@bufbuild/protoc-gen-es</code>、<code>@bufbuild/protobuf</code>、<code>@apachedubbo/protoc-gen-apache-dubbo-es</code>、<code>@apachedubbo/dubbo</code>。</p></description></item></channel></rss>
\ No newline at end of file
+</span></span></code></pre></div><p>因为使用 Protocol Buffer 的原因,我们首先需要安装相关的代码生成工具,这包括 <code>@bufbuild/protoc-gen-es</code>、<code>@bufbuild/protobuf</code>、<code>@apachedubbo/protoc-gen-apache-dubbo-es</code>、<code>@apachedubbo/dubbo</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-shell" data-lang="shell"><span style="display:flex;"><span>npm install @bufbuild/protoc-gen-es @bufbuild/protobuf @apachedubbo/protoc-gen-apache-dubbo-es @apachedubbo/dubbo
+</span></span></code></pre></div><h3 id="使用-proto-定义服务">使用 Proto 定义服务</h3>
+<p>现在,使用 Protocol Buffer (IDL) 来定义一个 Dubbo 服务。</p></description></item></channel></rss>
\ No newline at end of file
diff --git a/zh-cn/overview/mannual/web-sdk/quick-start/index.html b/zh-cn/overview/mannual/web-sdk/quick-start/index.html
index 7c6500bd5ea..fae323b110b 100644
--- a/zh-cn/overview/mannual/web-sdk/quick-start/index.html
+++ b/zh-cn/overview/mannual/web-sdk/quick-start/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/web-sdk/quick-start/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/quick-start/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push( [...]
+<!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/web-sdk/quick-start/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/web-sdk/quick-start/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push( [...]
<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>
@@ -627,7 +627,7 @@
<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><span style=color:#b58900>cd</span> dubbo-web-example
</span></span><span style=display:flex><span>npm install
</span></span></code></pre></div><p>因为使用 Protocol Buffer 的原因,我们首先需要安装相关的代码生成工具,这包括 <code>@bufbuild/protoc-gen-es</code>、<code>@bufbuild/protobuf</code>、<code>@apachedubbo/protoc-gen-apache-dubbo-es</code>、<code>@apachedubbo/dubbo</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-shell data-lang=shell><span style=display:flex><span>npm install @bufbuild/protoc-gen-es @bufbuild/protobuf [...]
@@ -771,7 +771,7 @@
</span></span><span style=display:flex><span>}
</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-shell data-lang=shell><span style=display:flex><span>npm run dev
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
-<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/web-sdk/quick-start?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%2A+Edit+the+%22front+matt [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Web%20%e6%b5%8f%e8%a7%88%e5%99%a8%e8%ae%bf%e9%97%ae%20Dubbo%20%e6%9c%8d%e5%8a%a1" 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><nav id=TableOfContents><ul><li><a href=#idl-模式>IDL 模式</a><ul><li><a href=#前置条件>前置条件</a></li><li><a href=#使用-proto-定义服务>使用 Proto 定义服务</a></li><li><a href=#生成代码>生成代码</a></li><li><a href=#创建-app>创建 App</a></li><li><a href=#启动-server>启动 Server</a></li></ul></li><li><a href=#无-idl-模式>无 IDL 模式</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div cl [...]
diff --git a/zh-cn/overview/what/core-features/ecosystem/index.html b/zh-cn/overview/what/core-features/ecosystem/index.html
index a5e5abd5095..af084fcba62 100644
--- a/zh-cn/overview/what/core-features/ecosystem/index.html
+++ b/zh-cn/overview/what/core-features/ecosystem/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/what/core-features/ecosystem/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/ecosystem/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.pus [...]
+<!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/what/core-features/ecosystem/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/ecosystem/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.pus [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/ecosystem?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%2A+Edit+the+%22front+mat [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%be%ae%e6%9c%8d%e5%8a%a1%e7%94%9f%e6%80%81" 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><nav id=TableOfContents><ul><li><a href=#微服务生态示例架构>微服务生态示例架构</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover='showQRCode("wechat-q [...]
diff --git a/zh-cn/overview/what/core-features/extensibility/index.html b/zh-cn/overview/what/core-features/extensibility/index.html
index 9328a66c5a7..e76b6610b17 100644
--- a/zh-cn/overview/what/core-features/extensibility/index.html
+++ b/zh-cn/overview/what/core-features/extensibility/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/what/core-features/extensibility/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/extensibility/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]), [...]
+<!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/what/core-features/extensibility/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/extensibility/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]), [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/extensibility?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%2A+Edit+the+%22front [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%89%a9%e5%b1%95%e9%80%82%e9%85%8d" 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><nav id=TableOfContents><ul><li><a href=#一切皆可扩展>一切皆可扩展</a></li><li><a href=#基于扩展点的微服务生态>基于扩展点的微服务生态</a></li><li><a href=#协议通信层>协议通信层</a><ul><li><a href=#protocol>Protocol</a></li><li><a href=#serialization>Serialization</a></li></ul></li><li><a href=#流量管控层>流量管控层</a><ul><li><a href=#filter>Filter</a></li><li><a href=#router>Router</a></li><li><a href=#load-balance>Load Balan [...]
diff --git a/zh-cn/overview/what/core-features/index.xml b/zh-cn/overview/what/core-features/index.xml
index bf174717016..f20b687aa5d 100644
--- a/zh-cn/overview/what/core-features/index.xml
+++ b/zh-cn/overview/what/core-features/index.xml
@@ -7,7 +7,7 @@
<h2 id="开发">开发</h2>
<p>接下来以 Java 体系 Spring Boot 项目为例讲解 Dubbo 应用开发的基本步骤,整个过程非常直观简单,其他语言开发过程类似。</p>
<h3 id="创建项目">创建项目</h3>
-<p><a href="https://start.dubbo.apache.org/bootstrap.html" target="_blank">Dubbo 微服务项目脚手架</a>(支持浏览器页面、命令行和 IDE)可用于快速创建微服务项目,只需要告诉脚手架期望包含的功能或组件,脚手架最终可以帮助开发者生成具有必要依赖的微服务工程。更多脚手架使用方式的讲解,请参见任务模块的 <a href="../../tasks/develop/template/">通过模板生成项目脚手架</a></p>
+<p><a href="https://start.dubbo.apache.org/bootstrap.html" target="_blank">Dubbo 微服务项目脚手架</a>(支持浏览器页面、命令行和 IDE)可用于快速创建微服务项目,只需要告诉脚手架期望包含的功能或组件,脚手架最终可以帮助开发者生成具有必要依赖的微服务工程。更多脚手架使用方式的讲解,请参见任务模块的 <a href="https://dubbo.apache.org/zh-cn/overview/tasks/develop/template">通过模板生成项目脚手架</a></p>
<p><img src="https://dubbo.apache.org/imgs/v3/advantages/initializer.png" alt="脚手架示例图"></p>
<h3 id="开发服务">开发服务</h3>
<p><strong>1. 定义服务</strong></p>
@@ -143,8 +143,8 @@
<h2 id="基于扩展点的微服务生态">基于扩展点的微服务生态</h2>
<p>众多的扩展点与抽象,是 Dubbo 与众多微服务生态组件对接、实现微服务治理能力的基础。</p>
<ul>
-<li><a href="../../tasks/observability/tracing/">全链路追踪</a></li>
-<li><a href="../../tasks/ecosystem/transaction/">数据一致性</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/">全链路追踪</a></li>
+<li><code>数据一致性</code></li>
<li><a href="../../core-features/traffic/circuit-breaking/">限流降级</a></li>
</ul>
<p>Dubbo 的各语言 sdk 实现都是采用的 &ldquo;微内核+插件&rdquo; 的设计模式,几乎所有流程中的核心节点都被定义为扩展点,官方发布的组件也是以扩展点的实现形式发布,因此 Dubbo 可以平等的对待所有官方与第三方组件扩展。</p>
@@ -182,15 +182,15 @@
<p>Admin 控制台可视化展示了集群中的应用、服务、实例及依赖关系,支持流量治理规则下发,同时还提供如服务测试、mock、文档管理等提升研发测试效率的工具</p>
<p><img src="https://dubbo.apache.org/imgs/v3/feature/observability/admin.jpg" alt="Admin 效果图"></p>
<ul>
-<li><a href="../../tasks/observability/admin/">Admin 部署与效果演示</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/">Admin 部署与效果演示</a></li>
</ul>
<h2 id="metrics">Metrics</h2>
<p>Dubbo 运行时统计了包括 qps、rt、调用总数、成功数、失败数,失败原因统计等在内的核心服务指标,同时,为了更好的监测服务运行状态,Dubbo 还提供了对核心组件状态的监控,如线程池数量、服务健康状态等。</p>
<p>可以通过 Grafana 可视化的查看 Metrics 指标</p>
<p><img src="https://dubbo.apache.org/imgs/v3/feature/observability/provider-stat.png" alt="Grafana 效果图"></p>
<ul>
-<li><a href="../../tasks/observability/grafana/">使用 Grafana 可视化展示 Metrics 指标</a></li>
-<li><a href="../../tasks/observability/prometheus/">如何从 Prometheus 查询特定 Metrics 指标</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/">使用 Grafana 可视化展示 Metrics 指标</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/prometheus/">如何从 Prometheus 查询特定 Metrics 指标</a></li>
</ul>
<h2 id="tracing">Tracing</h2>
<p>全链路追踪对于监测分布式系统运行状态具有非常重要的价值,Dubbo 通过 Filter 拦截器实现了请求运行时的埋点跟踪,通过将跟踪数据导出到一些主流实现如 Zipkin、Skywalking、Jaeger 等,可以实现全链路跟踪数据的分析与可视化展示。</p>
@@ -273,7 +273,7 @@
<td>元数据管理</td>
<td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/zookeeper/">Zookeeper</a></td>
<td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/">Nacos</a></td>
- <td><a href="../../mannual/java-sdk/reference-manual/metadata-center/redis">Redis</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/">Redis</a></td>
<td>Kubernetes【开发中】</td>
<td><a href="https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-metadata-report-extensions" target="_blank">更多</a></td>
</tr>
@@ -287,31 +287,31 @@
</tr>
<tr>
<td>可视化观测平台</td>
- <td><a href="../../tasks/observability/admin/">Admin</a></td>
- <td><a href="../../tasks/observability/grafana/">Grafana</a></td>
- <td><a href="../../tasks/observability/prometheus/">Prometheus</a></td>
+ <td><code>Admin</code></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/grafana/">Grafana</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/prometheus/">Prometheus</a></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>全链路追踪</td>
- <td><a href="../../tasks/observability/tracing/zipkin/">Zipkin</a></td>
- <td><a href="../../tasks/observability/tracing/skywalking/">Skywalking</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/zipkin/">Zipkin</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/tracing/skywalking/">Skywalking</a></td>
<td><a href="https://github.com/apache/dubbo-samples/tree/master/4-governance/dubbo-samples-spring-boot3-tracing#2-adding-micrometer-tracing-bridge-to-your-project" target="_blank">OpenTelemetry</a></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>限流降级</td>
- <td><a href="../../tasks/rate-limit/sentinel">Sentinel</a></td>
- <td><a href="../../tasks/rate-limit/resilience4j">Resilience4j</a></td>
- <td><a href="../../tasks/rate-limit/hystrix">Hystrix</a></td>
+ <td><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/sentinel">Sentinel</a></td>
+ <td><code>Resilience4j</code></td>
+ <td><code>Hystrix</code></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>分布式事务</td>
- <td><a href="../../tasks/ecosystem/transaction/">Seata</a></td>
+ <td><code>Seata</code></td>
<td>-</td>
<td>-</td>
<td>-</td>
@@ -320,7 +320,7 @@
<tr>
<td>网关</td>
<td><a href="https://dubbo.apache.org/zh-cn/blog/2024/04/01/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-higress-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/">Higress</a></td>
- <td><a href="../../tasks/ecosystem/gateway/">APISIX</a></td>
+ <td><code>APISIX</code></td>
<td><a href="https://dubbo.apache.org/zh-cn/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/">Shenyu</a></td>
<td><a href="https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/dubbo_proxy_filter">Envoy</a></td>
<td>-</td>
@@ -350,7 +350,7 @@
</section></description></item><item><title>更多高级功能</title><link>https://dubbo.apache.org/zh-cn/overview/what/core-features/more/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/core-features/more/</guid><description><p>作为一款与应用开发紧密相关的微服务框架,同时旨在为微服务集群提供企业级服务治理能力,Dubbo 还提供了很多高级功能,涵盖服务调用行为控制、服务诊断与调优、服务治理等。</p>
<p>多种语言 sdk 在功能实现、配置方式上会略有差异,具体功能列表和使用方式可参考如下文档:</p>
<ul>
-<li><a href="../../mannual/java-sdk/advanced-features-and-usage/">Java</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/">Java</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/">Golang</a></li>
</ul>
<h2 id="控制服务调用行为">控制服务调用行为</h2>
diff --git a/zh-cn/overview/what/core-features/load-balance/index.html b/zh-cn/overview/what/core-features/load-balance/index.html
index 7ec38a9c686..6e3a09a0691 100644
--- a/zh-cn/overview/what/core-features/load-balance/index.html
+++ b/zh-cn/overview/what/core-features/load-balance/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/what/core-features/load-balance/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/load-balance/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_p [...]
+<!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/what/core-features/load-balance/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/load-balance/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_p [...]
<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>
@@ -630,8 +630,8 @@
<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 [...]
例如 ABC 三节点有如下权重:<code>{A: 3, B: 2, C: 1}</code>
那么按照最原始的轮询算法,调用过程将变成:<code>A A A B B C</code></p><p>对此,Dubbo 借鉴 Nginx 的平滑加权轮询算法,对此做了优化,调用过程可抽象成下表:</p><table><thead><tr><th style=text-align:left>轮前加和权重</th><th style=text-align:left>本轮胜者</th><th style=text-align:left>合计权重</th><th style=text-align:left>轮后权重(胜者减去合计权重)</th></tr></thead><tbody><tr><td style=text-align:left>起始轮</td><td style=text-align:left>\</td><td style=text-align:left>\</td><td style=text-align:left><code>A(0), B(0), C(0)</code></td></tr><tr><td style=text-align:left><co [...]
-则默认使用随机负载均衡策略。</p><p>同一个应用内支持配置不同的服务使用不同的负载均衡策略,支持为同一服务的不同方法配置不同的负载均衡策略。</p><p>具体配置方式参见以下多语言实现</p><ul><li><a href=../../mannual/java-sdk/advanced-features-and-usage/performance/loadbalance/#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F>Java</a></li><li><a href=/zh-cn/overview/mannual/golang-sdk/>Golang</a></li></ul><h2 id=自定义扩展>自定义扩展</h2><p>负载均衡策略支持自定义扩展实现,具体请参见 <a href=../extensibility>Dubbo 可扩展性</a></p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn- [...]
-<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 [...]
+则默认使用随机负载均衡策略。</p><p>同一个应用内支持配置不同的服务使用不同的负载均衡策略,支持为同一服务的不同方法配置不同的负载均衡策略。</p><p>具体配置方式参见以下多语言实现</p><ul><li><a href=/zh-cn/overview/mannual/java-sdk/>Java</a></li><li><a href=/zh-cn/overview/mannual/golang-sdk/>Golang</a></li></ul><h2 id=自定义扩展>自定义扩展</h2><p>负载均衡策略支持自定义扩展实现,具体请参见 <a href=../extensibility>Dubbo 可扩展性</a></p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/load-balance?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%2A+Edit+the+%22front+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1" 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><nav id=TableOfContents><ul><li><a href=#负载均衡策略>负载均衡策略</a><ul><li><a href=#weighted-random>Weighted Random</a></li><li><a href=#roundrobin>RoundRobin</a></li><li><a href=#leastactive>LeastActive</a></li><li><a href=#shortestresponse>ShortestResponse</a></li><li><a href=#consistenthash>ConsistentHash</a></li><li><a href=#p2c-load-balance>P2C Load Balance</a></li><li><a href= [...]
diff --git a/zh-cn/overview/what/core-features/more/index.html b/zh-cn/overview/what/core-features/more/index.html
index cc95350aae1..970eb5a08d4 100644
--- a/zh-cn/overview/what/core-features/more/index.html
+++ b/zh-cn/overview/what/core-features/more/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/what/core-features/more/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/more/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enable [...]
+<!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/what/core-features/more/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/more/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enable [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/more?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%2A+Edit+the+%22front+matter%2 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%9b%b4%e5%a4%9a%e9%ab%98%e7%ba%a7%e5%8a%9f%e8%83%bd" 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><nav id=TableOfContents><ul><li><a href=#控制服务调用行为>控制服务调用行为</a></li><li><a href=#诊断与调优>诊断与调优</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" on [...]
diff --git a/zh-cn/overview/what/core-features/observability/index.html b/zh-cn/overview/what/core-features/observability/index.html
index 2a965ed8814..c52cdc6b840 100644
--- a/zh-cn/overview/what/core-features/observability/index.html
+++ b/zh-cn/overview/what/core-features/observability/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/what/core-features/observability/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/observability/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]), [...]
+<!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/what/core-features/observability/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/observability/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]), [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/observability?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%2A+Edit+the+%22front [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e8%a7%82%e6%b5%8b%e6%9c%8d%e5%8a%a1" 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><nav id=TableOfContents><ul><li><a href=#admin>Admin</a></li><li><a href=#metrics>Metrics</a></li><li><a href=#tracing>Tracing</a></li><li><a href=#logging>Logging</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注 [...]
diff --git a/zh-cn/overview/what/core-features/protocols/index.html b/zh-cn/overview/what/core-features/protocols/index.html
index 8d0f869b38e..d6a6c03ec53 100644
--- a/zh-cn/overview/what/core-features/protocols/index.html
+++ b/zh-cn/overview/what/core-features/protocols/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/what/core-features/protocols/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.pus [...]
+<!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/what/core-features/protocols/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/protocols/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.pus [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/protocols?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%2A+Edit+the+%22front+mat [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%80%9a%e4%bf%a1%e5%8d%8f%e8%ae%ae" 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><nav id=TableOfContents><ul><li><a href=#http2-triple>HTTP/2 (Triple)</a></li><li><a href=#dubbo2>Dubbo2</a></li><li><a href=#grpc>gRPC</a></li><li><a href=#rest>REST</a></li><li><a href=#其他通信协议>其他通信协议</a></li><li><a href=#异构微服务体系互通>异构微服务体系互通</a></li><li><a href=#配置方式>配置方式</a></li><li><a href=#自定义扩展>自定义扩展</a></li></ul></nav></div></div></div></div><footer><div class=footer- [...]
diff --git a/zh-cn/overview/what/core-features/service-definition/index.html b/zh-cn/overview/what/core-features/service-definition/index.html
index 6c37ca1e65f..004d8a1ed7f 100644
--- a/zh-cn/overview/what/core-features/service-definition/index.html
+++ b/zh-cn/overview/what/core-features/service-definition/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/what/core-features/service-definition/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/service-definition/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPa [...]
+<!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/what/core-features/service-definition/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/service-definition/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPa [...]
<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>
@@ -627,7 +627,7 @@
<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> String <span style=color:#268bd2>hello</span>(String arg);
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><p><strong>2. 提供业务逻辑实现</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-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>@DubboService</span>
@@ -654,11 +654,11 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>@DubboReference</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>private</span> DemoService demoService;
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>以上是 Dubbo 微服务开发的流程性说明,实际开发的详细指导步骤请参见:</p><ul><li><a href=../../mannual/java-sdk/quickstart>Java 微服务开发入门</a></li><li><a href=/zh-cn/overview/mannual/golang-sdk/quickstart/>Go 微服务开发入门</a></li><li><a href=../../mannual/rust-sdk/quickstart>Rust 微服务开发入门</a></li><li><a href=https://github.com/apache/dubbo-js>Node.js 微服务开发入门</a></li></ul><h2 id=部署>部署</h2><p>Dubbo 原生服务可打包部署到 Docker 容器、Kubernetes、服务网格 等云原生基础设施和微服务架构。</p><p>关于不同环境的部署示例,可参考:</p><ul><li><a href=.. [...]
+</span></span></code></pre></div><p>以上是 Dubbo 微服务开发的流程性说明,实际开发的详细指导步骤请参见:</p><ul><li><a href=/zh-cn/overview/mannual/java-sdk/quick-start/>Java 微服务开发入门</a></li><li><a href=/zh-cn/overview/mannual/golang-sdk/quickstart/>Go 微服务开发入门</a></li><li><a href=/zh-cn/overview/mannual/rust-sdk/quick-start/>Rust 微服务开发入门</a></li><li><a href=https://github.com/apache/dubbo-js>Node.js 微服务开发入门</a></li></ul><h2 id=部署>部署</h2><p>Dubbo 原生服务可打包部署到 Docker 容器、Kubernetes、服务网格 等云原生基础设施和微服务架构。</p><p>关于不同环境的部署示例,可参 [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>registry</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: zookeeper://127.0.0.1:2181
-</span></span></code></pre></div><p>部署并打开 <a href=../../tasks/deploy>Dubbo Admin 控制台</a>,可以看到集群的服务部署和调用数据</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>除此之外,Dubbo Amin 还可以通过以下能力提升研发测试效率</p><ul><li>文档管理,提供普通服务、IDL 文档管理</li><li>服务测试 & 服务 Mock</li><li>服务状态查询</li></ul><p>对于更复杂的微服务实践场景,Dubbo 还提供了更多高级服务治理特性,具体请参见文档了解更多。包括:</p><ul><li>流量治理</li><li>动态配置</li><li>限流降级</li><li>数据一致性</li><li>可观测性</li><li>多协议</li><li>多注册中心</li><li>服务网格</li></ul><div id=pre-footer><h2>反馈</h2><p class=feedbac [...]
-<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 [...]
+</span></span></code></pre></div><p>部署并打开 <code>Dubbo Admin 控制台</code>,可以看到集群的服务部署和调用数据</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>除此之外,Dubbo Amin 还可以通过以下能力提升研发测试效率</p><ul><li>文档管理,提供普通服务、IDL 文档管理</li><li>服务测试 & 服务 Mock</li><li>服务状态查询</li></ul><p>对于更复杂的微服务实践场景,Dubbo 还提供了更多高级服务治理特性,具体请参见文档了解更多。包括:</p><ul><li>流量治理</li><li>动态配置</li><li>限流降级</li><li>数据一致性</li><li>可观测性</li><li>多协议</li><li>多注册中心</li><li>服务网格</li></ul><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/service-definition?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%2A+Edit+the+%22 [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e5%be%ae%e6%9c%8d%e5%8a%a1%e5%bc%80%e5%8f%91" 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><nav id=TableOfContents><ul><li><a href=#开发>开发</a><ul><li><a href=#创建项目>创建项目</a></li><li><a href=#开发服务>开发服务</a></li><li><a href=#发布服务>发布服务</a></li><li><a href=#调用服务>调用服务</a></li></ul></li><li><a href=#部署>部署</a></li><li><a href=#治理>治理</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-le [...]
diff --git a/zh-cn/overview/what/core-features/service-mesh/index.html b/zh-cn/overview/what/core-features/service-mesh/index.html
index 0c761ed25ab..b108b32eed4 100644
--- a/zh-cn/overview/what/core-features/service-mesh/index.html
+++ b/zh-cn/overview/what/core-features/service-mesh/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/what/core-features/service-mesh/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/service-mesh/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_p [...]
+<!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/what/core-features/service-mesh/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/service-mesh/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_p [...]
<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>
@@ -627,8 +627,8 @@
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/service-mesh?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%2A+Edit+the+%22front+ [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%9c%8d%e5%8a%a1%e7%bd%91%e6%a0%bc" 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><nav id=TableOfContents><ul><li><a href=#dubbo-mesh>Dubbo Mesh</a><ul><li><a href=#proxy-mesh>Proxy Mesh</a></li><li><a href=#proxyless-mesh>Proxyless Mesh</a></li></ul></li><li><a href=#示例任务>示例任务</a></li><li><a href=#可视化>可视化</a></li><li><a href=#接入非-istio-控制面>接入非 Istio 控制面</a></li><li><a href=#老系统迁移方案>老系统迁移方案</a><ul><li><a href=#如何解决注册中心数据同步的问题>如何解决注册中心数据同步的问题?</a></li><li [...]
diff --git a/zh-cn/overview/what/core-features/traffic/circuit-breaking/index.html b/zh-cn/overview/what/core-features/traffic/circuit-breaking/index.html
index 566d0524d7c..6caa85fcea0 100644
--- a/zh-cn/overview/what/core-features/traffic/circuit-breaking/index.html
+++ b/zh-cn/overview/what/core-features/traffic/circuit-breaking/index.html
@@ -4,13 +4,13 @@
流量控制解决的问题和工作方式比较容易理解,而其使用的难点就是如何确定服务所能处理的流量最大值?
一种模式是由用户预先设定一个固定的限流值,如 Dubbo 通过集成 Sentinel 等产品实现的限流能力即是这种模式 Dubbo Sentinel 流量控制 另一种方式是 Dubbo 框架自动根据系统或集群负载情况执行限流,相比用户预先设置限流值更加灵活方便,Dubbo 目前内置了自适应限流模式,具体可参见: Java 自适应限流使用方式 Go 自适应限流使用方式 自适应限流设计原理 熔断降级 熔断降级则是更多的从 Dubbo 服务消费者视角来保障系统稳定性的重要手段。一个服务往往需要调用更多的下游 Dubbo 服务来完成业务逻辑,这时下游服务的稳定性就会影响当前服务甚至整个系统的稳定性,熔断(Circuit Breaking)即是面向不稳定服务场景设计的,它能最大限度避免下游服务不稳定对上游服务带来的影响。
而相比于熔断后直接返回调用失败信息,配合服务降级能力,我们可以继续调用预先设置好的服务降级逻辑,以降级逻辑的结果作为最终调用结果,以更优雅的返回给服务调用方。
-如上图所示,Dubbo Consumer 依赖的下游的三个 Dubbo 服务,当 Service 3 出现不稳定的情况时(如响应时间变长、错误率增加等),从而 Consumer 调用 Service 3 的线程等资源就会产生堆积,如果此时我们不在 Consumer 侧做任何限制,则 Service 1 与 Service 2 的调用都会受到稳定性影响。通过熔断 Service 3 我们就能保证整个 Dubbo Consumer 服务的稳定性,不拖垮整个 Consumer 服务,熔断 Service 3 的方式可以有很多种实现,包括线程数、信号量、错误率等。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2024-09-13T15:29:11+08: [...]
+如上图所示,Dubbo Consumer 依赖的下游的三个 Dubbo 服务,当 Service 3 出现不稳定的情况时(如响应时间变长、错误率增加等),从而 Consumer 调用 Service 3 的线程等资源就会产生堆积,如果此时我们不在 Consumer 侧做任何限制,则 Service 1 与 Service 2 的调用都会受到稳定性影响。通过熔断 Service 3 我们就能保证整个 Dubbo Consumer 服务的稳定性,不拖垮整个 Consumer 服务,熔断 Service 3 的方式可以有很多种实现,包括线程数、信号量、错误率等。"><meta property="og:locale" content="zh_cn"><meta property="og:type" content="article"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2025-11-13T22:33:41+08: [...]
流量控制 (Rate Limiting) 熔断降级 (Circuit Breaking) 流量控制 流量控制更多的是站在 Dubbo 服务提供者视角来保证服务稳定性,通过明确的为 Dubbo 服务设置请求上限阈值,确保服务所处理的请求数始终在一个合理范围之内,从而确保系统整体的稳定性。
根据服务的具体部署情况,服务所能处理的流量上限是一定的,当对服务的请求数量保持在合理的范围时,系统运行正常;而当请求数量严重超过服务处理能力时,如大促期间的流量洪峰等场景,就可能造成服务提供者端的资源过度消耗、负载过高,进而出现响应延迟、请求无应答、系统假死等情况。
流量控制解决的问题和工作方式比较容易理解,而其使用的难点就是如何确定服务所能处理的流量最大值?
一种模式是由用户预先设定一个固定的限流值,如 Dubbo 通过集成 Sentinel 等产品实现的限流能力即是这种模式 Dubbo Sentinel 流量控制 另一种方式是 Dubbo 框架自动根据系统或集群负载情况执行限流,相比用户预先设置限流值更加灵活方便,Dubbo 目前内置了自适应限流模式,具体可参见: Java 自适应限流使用方式 Go 自适应限流使用方式 自适应限流设计原理 熔断降级 熔断降级则是更多的从 Dubbo 服务消费者视角来保障系统稳定性的重要手段。一个服务往往需要调用更多的下游 Dubbo 服务来完成业务逻辑,这时下游服务的稳定性就会影响当前服务甚至整个系统的稳定性,熔断(Circuit Breaking)即是面向不稳定服务场景设计的,它能最大限度避免下游服务不稳定对上游服务带来的影响。
而相比于熔断后直接返回调用失败信息,配合服务降级能力,我们可以继续调用预先设置好的服务降级逻辑,以降级逻辑的结果作为最终调用结果,以更优雅的返回给服务调用方。
-如上图所示,Dubbo Consumer 依赖的下游的三个 Dubbo 服务,当 Service 3 出现不稳定的情况时(如响应时间变长、错误率增加等),从而 Consumer 调用 Service 3 的线程等资源就会产生堆积,如果此时我们不在 Consumer 侧做任何限制,则 Service 1 与 Service 2 的调用都会受到稳定性影响。通过熔断 Service 3 我们就能保证整个 Dubbo Consumer 服务的稳定性,不拖垮整个 Consumer 服务,熔断 Service 3 的方式可以有很多种实现,包括线程数、信号量、错误率等。"><meta itemprop=dateModified content="2024-09-13T15:29:11+08:00"><meta itemprop=wordCount content="77"><meta name=twitter:card content="summary"><meta name=twitter:title content="限流 & 熔断"><meta name=twitter:des [...]
+如上图所示,Dubbo Consumer 依赖的下游的三个 Dubbo 服务,当 Service 3 出现不稳定的情况时(如响应时间变长、错误率增加等),从而 Consumer 调用 Service 3 的线程等资源就会产生堆积,如果此时我们不在 Consumer 侧做任何限制,则 Service 1 与 Service 2 的调用都会受到稳定性影响。通过熔断 Service 3 我们就能保证整个 Dubbo Consumer 服务的稳定性,不拖垮整个 Consumer 服务,熔断 Service 3 的方式可以有很多种实现,包括线程数、信号量、错误率等。"><meta itemprop=dateModified content="2025-11-13T22:33:41+08:00"><meta itemprop=wordCount content="77"><meta name=twitter:card content="summary"><meta name=twitter:title content="限流 & 熔断"><meta name=twitter:des [...]
流量控制 (Rate Limiting) 熔断降级 (Circuit Breaking) 流量控制 流量控制更多的是站在 Dubbo 服务提供者视角来保证服务稳定性,通过明确的为 Dubbo 服务设置请求上限阈值,确保服务所处理的请求数始终在一个合理范围之内,从而确保系统整体的稳定性。
根据服务的具体部署情况,服务所能处理的流量上限是一定的,当对服务的请求数量保持在合理的范围时,系统运行正常;而当请求数量严重超过服务处理能力时,如大促期间的流量洪峰等场景,就可能造成服务提供者端的资源过度消耗、负载过高,进而出现响应延迟、请求无应答、系统假死等情况。
流量控制解决的问题和工作方式比较容易理解,而其使用的难点就是如何确定服务所能处理的流量最大值?
@@ -729,8 +729,8 @@ Go 自适应限流使用方式
<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 [...]
-<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 [...]
+<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 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/traffic/circuit-breaking?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%2A+Edit+t [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%99%90%e6%b5%81%20&amp;%20%e7%86%94%e6%96%ad" 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><nav id=TableOfContents><ul><li><a href=#流量控制>流量控制</a></li><li><a href=#熔断降级>熔断降级</a></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-left-title>关注我们</div><div class=footer-container-left-des>请通过以下任一或多个渠道关注社区动态,与社区开发者保持密切沟通。</div><div><button class="contact-btn qr-container" onmouseover= [...]
diff --git a/zh-cn/overview/what/core-features/traffic/index.html b/zh-cn/overview/what/core-features/traffic/index.html
index b440eddab47..954358d5643 100644
--- a/zh-cn/overview/what/core-features/traffic/index.html
+++ b/zh-cn/overview/what/core-features/traffic/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/what/core-features/traffic/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/traffic/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push([" [...]
+<!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/what/core-features/traffic/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/traffic/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push([" [...]
<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>
@@ -627,7 +627,7 @@
<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></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><dubbo:service</span> tag=<span style=color:#2aa198>"gray"</span><span style=color:#268bd2>/></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=gray</span>
</span></span></code></pre></div><h5 id=consumer>Consumer</h5><p>发起调用的一方,在每次请求前通过 <code>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-java data-lang=java><span style=display:flex><span>RpcContext.getContext().setAttachment(Constants.TAG_KEY, <span style=color:#2aa198>"gray"</span>);
@@ -642,7 +642,7 @@
</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>: gray
</span></span></code></pre></div><blockquote><p>这里牵涉到如何给您的实例打各种原始 label 的问题,即上面示例中的 <code>env</code>,一种方式是直接写在配置文件中,如上面静态规则实例 provider 部分的配置所示,另一种方式是通过预设环境变量指定,关于这点请参考下文的 <a href=/zh-cn/overview/what/core-features/traffic/#%e5%a6%82%e4%bd%95%e7%bb%99%e5%ae%9e%e4%be%8b%e6%89%93%e6%a0%87>如何给实例打标</a> 一节。</p></blockquote><h5 id=consumer-1>Consumer</h5><p>服务发起方的设置方式和之前静态打标规则保持一致,只需要在每次请求前通过 <code>tag</code> 设置流量标签,确保流量被调度到带有同样标签的服务提供方。</p><div class=highlight><pre tabindex=0 style=color:#93a1 [...]
-</span></span></code></pre></div><p>设置了以上标签的流量,将全部导流到 <code>hangzhou-region</code> 划分的实例上。</p><blockquote><p>请求标签的作用域仅为一次点对点的 RPC 请求。比如,在一个 A -> B -> C 调用链路上,如果 A -> B 调用通过 <code>setAttachment</code> 设置了 <code>tag</code> 参数,则该参数不会在 B -> C 的调用中生效,同样的,在完成了 A -> B -> C 的整个调用同时 A 收到调用结果后,如果想要相同的 <code>tag</code> 参数,则在发起其他调用前仍需要单独设置 <code>setAttachment</code>。可以参考 <a href=../../tasks/traffic-management/isolation/>示例任务 - 环境隔离</a> 了解更多 <code>tag</code> 全链路传递解决方案。</p></blockquote><h3 id=条件路由规则>条 [...]
+</span></span></code></pre></div><p>设置了以上标签的流量,将全部导流到 <code>hangzhou-region</code> 划分的实例上。</p><blockquote><p>请求标签的作用域仅为一次点对点的 RPC 请求。比如,在一个 A -> B -> C 调用链路上,如果 A -> B 调用通过 <code>setAttachment</code> 设置了 <code>tag</code> 参数,则该参数不会在 B -> C 的调用中生效,同样的,在完成了 A -> B -> C 的整个调用同时 A 收到调用结果后,如果想要相同的 <code>tag</code> 参数,则在发起其他调用前仍需要单独设置 <code>setAttachment</code>。可以参考 <a href=/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation>示例任务 - 环境隔离</a> 了解更多 <code>tag</code> 全链路传递解决方案。</p></ [...]
</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>force</span>: <span style=color:#cb4b16>false</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: org.apache.dubbo.samples.CommentService
@@ -661,7 +661,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>2000</span>
</span></span></code></pre></div><p>以下部分指定这个配置是服务粒度,具体变更的服务名为 <code>org.apache.dubbo.samples.UserService</code>。<code>scope</code> 支持 <code>service</code>、<code>application</code> 两个可选值,如果 <code>scope: service</code>,则 <code>key</code> 应该配置为 <code>version/service:group</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 style=display:flex><span><span style=c [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: org.apache.dubbo.samples.UserService
-</span></span></code></pre></div><blockquote><p>关于 Dubbo 规则中的 <code>scope</code> 以及 <code>service</code>、<code>application</code> 的说明请参考 <a href=/zh-cn/overview/what/core-features/traffic/configuration-rule/>动态配置参考手册</a> 或 <a href=../../tasks/traffic-management/timeout/>动态配置示例</a>。</p></blockquote><p><code>parameters</code> 参数指定了新的修改值,这里将通过 <code>timeout: 2000</code> 将超时时间设置为 2000ms。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-t [...]
+</span></span></code></pre></div><blockquote><p>关于 Dubbo 规则中的 <code>scope</code> 以及 <code>service</code>、<code>application</code> 的说明请参考 <a href=/zh-cn/overview/what/core-features/traffic/configuration-rule/>动态配置参考手册</a> 或 <a href=/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout>动态配置示例</a>。</p></blockquote><p><code>parameters</code> 参数指定了新的修改值,这里将通过 <code>timeout: 2000</code> 将超时时间设置为 2000ms。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#0 [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>2000</span>
</span></span></code></pre></div><h3 id=脚本路由规则>脚本路由规则</h3><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:#268bd2>configVersion</span>: v3.0
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: demo-provider
@@ -695,8 +695,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>value</span>: <span style=color:#2aa198>"hangzhou"</span>
</span></span><span style=display:flex><span> - <span style=color:#268bd2>name</span>: ENV
</span></span><span style=display:flex><span> <span style=color:#268bd2>value</span>: <span style=color:#2aa198>"gray"</span>
-</span></span></code></pre></div><p>如果您有不同的实例环境保存机制,可以通过扩展 <code>InfraAdapter 扩展点</code> 来自定义自己的标签加载方式。如果您的应用是部署在 Kubernetes 环境下,并且已经接入了服务网格体系,则也可以使用标准 deployment 标签的方式打标,具体请跟随 <a href=../../tasks/mesh/>服务网格任务示例</a> 学习。</p><h2 id=如何配置流量规则>如何配置流量规则</h2><p>Dubbo 提供了控制台 Dubbo Admin,帮助您可视化的下发流量管控规则,并实时监控规则生效情况。</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>Dubbo 还提供了 <code>dubboctl</code> 命令行工具,需要有 Dubbo Admin 提前部署就绪,因为 dubboctl 是通过与 Admin 进行 http 通信完成规则下发的。</p><p>如果您使用的是如 Istio 的服 [...]
-<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 [...]
+</span></span></code></pre></div><p>如果您有不同的实例环境保存机制,可以通过扩展 <code>InfraAdapter 扩展点</code> 来自定义自己的标签加载方式。如果您的应用是部署在 Kubernetes 环境下,并且已经接入了服务网格体系,则也可以使用标准 deployment 标签的方式打标,具体请跟随 <a href=/zh-cn/overview/mannual/java-sdk/tasks/mesh/>服务网格任务示例</a> 学习。</p><h2 id=如何配置流量规则>如何配置流量规则</h2><p>Dubbo 提供了控制台 Dubbo Admin,帮助您可视化的下发流量管控规则,并实时监控规则生效情况。</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>Dubbo 还提供了 <code>dubboctl</code> 命令行工具,需要有 Dubbo Admin 提前部署就绪,因为 dubboctl 是通过与 Admin 进行 http 通信完成规则下 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/traffic?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%2A+Edit+the+%22front+matte [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%b5%81%e9%87%8f%e7%ae%a1%e6%8e%a7" 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><nav id=TableOfContents><ul><li><a href=#工作原理>工作原理</a></li><li><a href=#路由规则分类>路由规则分类</a><ul><li><a href=#标签路由规则>标签路由规则</a></li><li><a href=#条件路由规则>条件路由规则</a></li><li><a href=#动态配置规则>动态配置规则</a></li><li><a href=#脚本路由规则>脚本路由规则</a></li></ul></li><li><a href=#如何给实例打标>如何给实例打标</a></li><li><a href=#如何配置流量规则>如何配置流量规则</a></li><li><a href=#接入服务网格>接入服务网格</a></li><li><a href=#跟随示例学习>跟随 [...]
diff --git a/zh-cn/overview/what/core-features/traffic/index.xml b/zh-cn/overview/what/core-features/traffic/index.xml
index d49d0374689..bca9e8c65bd 100644
--- a/zh-cn/overview/what/core-features/traffic/index.xml
+++ b/zh-cn/overview/what/core-features/traffic/index.xml
@@ -27,7 +27,7 @@
<h2 id="路由规则分类">路由规则分类</h2>
<h3 id="标签路由规则">标签路由规则</h3>
<p>标签路由通过将某一个服务的实例划分到不同的分组,约束具有特定标签的流量只能在指定分组中流转,不同分组为不同的流量场景服务,从而实现流量隔离的目的。标签路由可以作为蓝绿发布、灰度发布等场景能力的基础。</p>
-<p>标签路由规则是一个非此即彼的流量隔离方案,也就是匹配<code>标签</code>的请求会 100% 转发到有相同<code>标签</code>的实例,没有匹配<code>标签</code>的请求会 100% 转发到其余未匹配的实例。如果您需要按比例的流量调度方案,请参考示例 <a href="../../tasks/traffic-management/weight/">基于权重的按比例流量路由</a>。</p>
+<p>标签路由规则是一个非此即彼的流量隔离方案,也就是匹配<code>标签</code>的请求会 100% 转发到有相同<code>标签</code>的实例,没有匹配<code>标签</code>的请求会 100% 转发到其余未匹配的实例。如果您需要按比例的流量调度方案,请参考示例 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/weight">基于权重的按比例流量路由</a>。</p>
<p><code>标签</code>主要是指对 Provider 端应用实例的分组,目前有两种方式可以完成实例分组,分别是<code>动态规则打标</code>和<code>静态规则打标</code>。<code>动态规则打标</code> 可以在运行时动态的圈住一组机器实例,而 <code>静态规则打标</code> 则需要实例重启后才能生效,其中,动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。</p></description></item><item><title>条件路由规则</title><link>https://dubbo.apache.org/zh-cn/overview/what/core-features/traffic/condition-rule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><gu [...]
<p>以下是一个条件路由规则示例。</p>
<p>基于以下示例规则,所有 <code>org.apache.dubbo.samples.CommentService</code> 服务 <code>getComment</code> 方法的调用都将被转发到有 <code>region=Hangzhou</code> 标记的地址子集。</p>
@@ -274,12 +274,12 @@
<ul>
<li>一种模式是由用户预先设定一个固定的限流值,如 Dubbo 通过集成 Sentinel 等产品实现的限流能力即是这种模式
<ul>
-<li><a href="../../../tasks/rate-limit/sentinel/">Dubbo Sentinel 流量控制</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/sentinel/">Dubbo Sentinel 流量控制</a></li>
</ul>
</li>
<li>另一种方式是 Dubbo 框架自动根据系统或集群负载情况执行限流,相比用户预先设置限流值更加灵活方便,Dubbo 目前内置了自适应限流模式,具体可参见:
<ul>
-<li><a href="../../../mannual/java-sdk/advanced-features-and-usage/performance/adaptive-concurrency-control/">Java 自适应限流使用方式</a></li>
+<li><a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/rate-limit/adaptive-concurrency-control">Java 自适应限流使用方式</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/reference/proposals/heuristic-flow-control/">Go 自适应限流使用方式</a></li>
<li><a href="https://dubbo.apache.org/zh-cn/overview/reference/proposals/heuristic-flow-control/">自适应限流设计原理</a></li>
</ul>
diff --git a/zh-cn/overview/what/core-features/traffic/introduction/index.html b/zh-cn/overview/what/core-features/traffic/introduction/index.html
index 57edaf469a1..c345ab82eb9 100644
--- a/zh-cn/overview/what/core-features/traffic/introduction/index.html
+++ b/zh-cn/overview/what/core-features/traffic/introduction/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/what/core-features/traffic/introduction/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/traffic/introduction/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["tra [...]
+<!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/what/core-features/traffic/introduction/><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/what/core-features/traffic/introduction/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["tra [...]
<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>
@@ -627,7 +627,7 @@
<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></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><dubbo:service</span> tag=<span style=color:#2aa198>"gray"</span><span style=color:#268bd2>/></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=gray</span>
</span></span></code></pre></div><h5 id=consumer>Consumer</h5><p>发起调用的一方,在每次请求前通过 <code>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-java data-lang=java><span style=display:flex><span>RpcContext.getContext().setAttachment(Constants.TAG_KEY, <span style=color:#2aa198>"gray"</span>);
@@ -642,7 +642,7 @@
</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>: gray
</span></span></code></pre></div><blockquote><p>这里牵涉到如何给您的实例打各种原始 label 的问题,即上面示例中的 <code>env</code>,一种方式是直接写在配置文件中,如上面静态规则实例 provider 部分的配置所示,另一种方式是通过预设环境变量指定,关于这点请参考下文的 <a href=/zh-cn/overview/what/core-features/traffic/introduction/#%e5%a6%82%e4%bd%95%e7%bb%99%e5%ae%9e%e4%be%8b%e6%89%93%e6%a0%87>如何给实例打标</a> 一节。</p></blockquote><h5 id=consumer-1>Consumer</h5><p>服务发起方的设置方式和之前静态打标规则保持一致,只需要在每次请求前通过 <code>tag</code> 设置流量标签,确保流量被调度到带有同样标签的服务提供方。</p><div class=highlight><pre tabindex=0 styl [...]
-</span></span></code></pre></div><p>设置了以上标签的流量,将全部导流到 <code>hangzhou-region</code> 划分的实例上。</p><blockquote><p>请求标签的作用域仅为一次点对点的 RPC 请求。比如,在一个 A -> B -> C 调用链路上,如果 A -> B 调用通过 <code>setAttachment</code> 设置了 <code>tag</code> 参数,则该参数不会在 B -> C 的调用中生效,同样的,在完成了 A -> B -> C 的整个调用同时 A 收到调用结果后,如果想要相同的 <code>tag</code> 参数,则在发起其他调用前仍需要单独设置 <code>setAttachment</code>。可以参考 <a href=../../tasks/traffic-management/isolation/>示例任务 - 环境隔离</a> 了解更多 <code>tag</code> 全链路传递解决方案。</p></blockquote><h3 id=条件路由规则>条 [...]
+</span></span></code></pre></div><p>设置了以上标签的流量,将全部导流到 <code>hangzhou-region</code> 划分的实例上。</p><blockquote><p>请求标签的作用域仅为一次点对点的 RPC 请求。比如,在一个 A -> B -> C 调用链路上,如果 A -> B 调用通过 <code>setAttachment</code> 设置了 <code>tag</code> 参数,则该参数不会在 B -> C 的调用中生效,同样的,在完成了 A -> B -> C 的整个调用同时 A 收到调用结果后,如果想要相同的 <code>tag</code> 参数,则在发起其他调用前仍需要单独设置 <code>setAttachment</code>。可以参考 <a href=/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/isolation>示例任务 - 环境隔离</a> 了解更多 <code>tag</code> 全链路传递解决方案。</p></ [...]
</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>force</span>: <span style=color:#cb4b16>false</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: org.apache.dubbo.samples.CommentService
@@ -661,7 +661,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>2000</span>
</span></span></code></pre></div><p>以下部分指定这个配置是服务粒度,具体变更的服务名为 <code>org.apache.dubbo.samples.UserService</code>。<code>scope</code> 支持 <code>service</code>、<code>application</code> 两个可选值,如果 <code>scope: service</code>,则 <code>key</code> 应该配置为 <code>version/service:group</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 style=display:flex><span><span style=c [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: org.apache.dubbo.samples.UserService
-</span></span></code></pre></div><blockquote><p>关于 Dubbo 规则中的 <code>scope</code> 以及 <code>service</code>、<code>application</code> 的说明请参考 <a href=/zh-cn/overview/what/core-features/traffic/configuration-rule/>动态配置参考手册</a> 或 <a href=../../tasks/traffic-management/timeout/>动态配置示例</a>。</p></blockquote><p><code>parameters</code> 参数指定了新的修改值,这里将通过 <code>timeout: 2000</code> 将超时时间设置为 2000ms。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-t [...]
+</span></span></code></pre></div><blockquote><p>关于 Dubbo 规则中的 <code>scope</code> 以及 <code>service</code>、<code>application</code> 的说明请参考 <a href=/zh-cn/overview/what/core-features/traffic/configuration-rule/>动态配置参考手册</a> 或 <a href=/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout>动态配置示例</a>。</p></blockquote><p><code>parameters</code> 参数指定了新的修改值,这里将通过 <code>timeout: 2000</code> 将超时时间设置为 2000ms。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#0 [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout</span>: <span style=color:#2aa198>2000</span>
</span></span></code></pre></div><h3 id=脚本路由规则>脚本路由规则</h3><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:#268bd2>configVersion</span>: v3.0
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: demo-provider
@@ -695,8 +695,8 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>value</span>: <span style=color:#2aa198>"hangzhou"</span>
</span></span><span style=display:flex><span> - <span style=color:#268bd2>name</span>: ENV
</span></span><span style=display:flex><span> <span style=color:#268bd2>value</span>: <span style=color:#2aa198>"gray"</span>
-</span></span></code></pre></div><p>如果您有不同的实例环境保存机制,可以通过扩展 <code>InfraAdapter 扩展点</code> 来自定义自己的标签加载方式。如果您的应用是部署在 Kubernetes 环境下,并且已经接入了服务网格体系,则也可以使用标准 deployment 标签的方式打标,具体请跟随 <a href=../../tasks/mesh/>服务网格任务示例</a> 学习。</p><h2 id=如何配置流量规则>如何配置流量规则</h2><p>Dubbo 提供了控制台 Dubbo Admin,帮助您可视化的下发流量管控规则,并实时监控规则生效情况。</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>Dubbo 还提供了 <code>dubboctl</code> 命令行工具,需要有 Dubbo Admin 提前部署就绪,因为 dubboctl 是通过与 Admin 进行 http 通信完成规则下发的。</p><p>如果您使用的是如 Istio 的服 [...]
-<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 [...]
+</span></span></code></pre></div><p>如果您有不同的实例环境保存机制,可以通过扩展 <code>InfraAdapter 扩展点</code> 来自定义自己的标签加载方式。如果您的应用是部署在 Kubernetes 环境下,并且已经接入了服务网格体系,则也可以使用标准 deployment 标签的方式打标,具体请跟随 <a href=/zh-cn/overview/mannual/java-sdk/tasks/mesh/>服务网格任务示例</a> 学习。</p><h2 id=如何配置流量规则>如何配置流量规则</h2><p>Dubbo 提供了控制台 Dubbo Admin,帮助您可视化的下发流量管控规则,并实时监控规则生效情况。</p><p><img src=/imgs/v3/what/admin.png alt=Admin></p><p>Dubbo 还提供了 <code>dubboctl</code> 命令行工具,需要有 Dubbo Admin 提前部署就绪,因为 dubboctl 是通过与 Admin 进行 http 通信完成规则下 [...]
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/traffic/introduction?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%2A+Edit+the+% [...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%20%e8%b7%af%e7%94%b1%ef%bc%88router%ef%bc%89%e6%9c%ba%e5%88%b6%e5%8f%8a%e5%85%b6%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e6%b5%81%e9%87%8f%e7%ae%a1%e6%8e%a7%e4%bb%8b%e7%bb%8d" 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><nav id=TableOfContents><ul><li><a href=#router工作原理>Router工作原理</a></li><li><a href=#路由规则分类>路由规则分类</a><ul><li><a href=#标签路由规则>标签路由规则</a></li><li><a href=#条件路由规则>条件路由规则</a></li><li><a href=#动态配置规则>动态配置规则</a></li><li><a href=#脚本路由规则>脚本路由规则</a></li></ul></li><li><a href=#如何给实例打标>如何给实例打标</a></li><li><a href=#如何配置流量规则>如何配置流量规则</a></li><li><a href=#接入服务网格>接入服务网格</a></li><li><a hre [...]
diff --git a/zh-cn/overview/what/core-features/traffic/mesh-rule/index.html b/zh-cn/overview/what/core-features/traffic/mesh-rule/index.html
index 725d668ff53..5552f22d413 100644
--- a/zh-cn/overview/what/core-features/traffic/mesh-rule/index.html
+++ b/zh-cn/overview/what/core-features/traffic/mesh-rule/index.html
@@ -5,14 +5,14 @@
另外一方面,如果 router(n) 需要执行 fallback 逻辑的时候,那么需要经过 router(n) 就应该决定好 fallback 逻辑
fallback 处理原则 由于多个 router 之间多个条件组件之后,很容易出现地址被筛选为空的情况,那么我们需要针对这情况进行 fallback 处理,保证业务在正确性的前提下,能够顺利找到有效地址。
首先我们看一下以下规则
-apiVersion: service.dubbo.apache.org/v1alpha1 kind: VirtualService metadata: name: demo-route spec: hosts: - demo // 统一定义为应用名 dubbo: - service: - exact: com.taobao.hsf.demoService:1.0.0 - exact: com.taobao.hsf.demoService:2.0.0 routedetail: - name: sayHello-String-method-route match: - method: name_match: exact: "sayHello" ..... argp: - string route: - destination: host: demo subset: v1 fallback: destination: host: demo subset: v2 fallback: destination: host: demo subset: v3 - name: sayH [...]
+apiVersion: service.dubbo.apache.org/v1alpha1 kind: VirtualService metadata: name: demo-route spec: hosts: - demo // 统一定义为应用名 dubbo: - service: - exact: com.taobao.hsf.demoService:1.0.0 - exact: com.taobao.hsf.demoService:2.0.0 routedetail: - name: sayHello-String-method-route match: - method: name_match: exact: "sayHello" ..... argp: - string route: - destination: host: demo subset: v1 fallback: destination: host: demo subset: v2 fallback: destination: host: demo subset: v3 - name: sayH [...]
本文描述了 Dubbo Mesh 路由规则的设计原理,以及它和 Istio 规则的差异等。参考链接:https://www.yuque.com/docs/share/c132d5db-0dcb-487f-8833-7c7732964bd4?#。
基本思想 基于路由链,采用Pipeline的处理方式,如下图所示:
可以把路由链的逻辑简单的理解为 target = rn(…r3(r2(r1(src))))。对于每一个 router 内部的逻辑,可以抽象为输入地址 addrs-in 与 router 中按全量地址 addrs-all 实现切分好的 n 个互不相交的地址池 addrs-pool-1 … addrs-pool-n 按实现定义好的规则取交集作为输出 addrs-out。以此类推,完成整个路由链的计算。
另外一方面,如果 router(n) 需要执行 fallback 逻辑的时候,那么需要经过 router(n) 就应该决定好 fallback 逻辑
fallback 处理原则 由于多个 router 之间多个条件组件之后,很容易出现地址被筛选为空的情况,那么我们需要针对这情况进行 fallback 处理,保证业务在正确性的前提下,能够顺利找到有效地址。
首先我们看一下以下规则
-apiVersion: service.dubbo.apache.org/v1alpha1 kind: VirtualService metadata: name: demo-route spec: hosts: - demo // 统一定义为应用名 dubbo: - service: - exact: com.taobao.hsf.demoService:1.0.0 - exact: com.taobao.hsf.demoService:2.0.0 routedetail: - name: sayHello-String-method-route match: - method: name_match: exact: "sayHello" ..... argp: - string route: - destination: host: demo subset: v1 fallback: destination: host: demo subset: v2 fallback: destination: host: demo subset: v3 - name: sayH [...]
+apiVersion: service.dubbo.apache.org/v1alpha1 kind: VirtualService metadata: name: demo-route spec: hosts: - demo // 统一定义为应用名 dubbo: - service: - exact: com.taobao.hsf.demoService:1.0.0 - exact: com.taobao.hsf.demoService:2.0.0 routedetail: - name: sayHello-String-method-route match: - method: name_match: exact: "sayHello" ..... argp: - string route: - destination: host: demo subset: v1 fallback: destination: host: demo subset: v2 fallback: destination: host: demo subset: v3 - name: sayH [...]
本文描述了 Dubbo Mesh 路由规则的设计原理,以及它和 Istio 规则的差异等。参考链接:https://www.yuque.com/docs/share/c132d5db-0dcb-487f-8833-7c7732964bd4?#。
基本思想 基于路由链,采用Pipeline的处理方式,如下图所示:
可以把路由链的逻辑简单的理解为 target = rn(…r3(r2(r1(src))))。对于每一个 router 内部的逻辑,可以抽象为输入地址 addrs-in 与 router 中按全量地址 addrs-all 实现切分好的 n 个互不相交的地址池 addrs-pool-1 … addrs-pool-n 按实现定义好的规则取交集作为输出 addrs-out。以此类推,完成整个路由链的计算。
@@ -1105,7 +1105,7 @@ spec:
</span></span><span style=display:flex><span>DestinationRule C
</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><h3 id=示例按比例流量路由规则>示例:按比例流量路由规则</h3><blockquote><p>注意,虽然接下来的规则和 Istio 的 VirtualService、DestinationRule 很像,但工作过程和具体规则和 Istio 还是有一些差异,Dubbo 只是参考了 Istio 的设计。如果您想接入原生的 Istio 服务网格治理体系,请参考下文 <a href=/zh-cn/overview/what/core-features/traffic/mesh-rul [...]
+</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><h3 id=示例按比例流量路由规则>示例:按比例流量路由规则</h3><blockquote><p>注意,虽然接下来的规则和 Istio 的 VirtualService、DestinationRule 很像,但工作过程和具体规则和 Istio 还是有一些差异,Dubbo 只是参考了 Istio 的设计。如果您想接入原生的 Istio 服务网格治理体系,请参考下文 <code>接入服务网格流量治理</code>。</p></blockquote><p>在一些场景下,我们需要将相同属 [...]
</span></span><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>:
@@ -1163,8 +1163,8 @@ spec:
</span></span><span style=display:flex><span> - <span style=color:#268bd2>name</span>: details-v2
</span></span><span style=display:flex><span> <span style=color:#268bd2>labels</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>detail_version</span>: v2 <span style=color:#586e75># 'version' is a reserved key in Dubbo, so must not be used.</span>
-</span></span></code></pre></div><blockquote><p>和标签路由类似,这里牵涉到如何给您的实例打标(这里是 <code>detail_version</code>)的问题,请参考下文的 <a href=/zh-cn/overview/what/core-features/traffic/mesh-rule/#%e5%a6%82%e4%bd%95%e7%bb%99%e5%ae%9e%e4%be%8b%e6%89%93%e6%a0%87>如何给实例打标</a> 一节。</p></blockquote><p>除了以上介绍的与 Istio 流量规则很相似的功能之外,Dubbo 的 VirtualService、DestinationRule 还可以实现方法参数路由等 Istio 规则不能做到的事情,具体查看 <a href>参考手册</a>。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-pr [...]
-<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 [...]
+</span></span></code></pre></div><blockquote><p>和标签路由类似,这里牵涉到如何给您的实例打标(这里是 <code>detail_version</code>)的问题,请参考下文的 <code>如何给实例打标</code> 一节。</p></blockquote><p>除了以上介绍的与 Istio 流量规则很相似的功能之外,Dubbo 的 VirtualService、DestinationRule 还可以实现方法参数路由等 Istio 规则不能做到的事情,具体查看 <code>参考手册</code>。</p><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes">是</button>
+<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 [...]
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/what/core-features/traffic/mesh-rule?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%2A+Edit+the+%22f [...]
<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><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><li><a href=#示例按比例流量路由规则>示例:按比例流量路由规则</a></li></ul></li></ul></nav></div></div></div></div><footer><div class=footer-container><div class=footer-container-left><div class=footer-container-lef [...]
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 1783fe627a9..d629c1cecf6 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
diff --git a/zh-cn/tags/index.html b/zh-cn/tags/index.html
index dba37f2d93b..a0743c9d0e8 100644
--- a/zh-cn/tags/index.html
+++ b/zh-cn/tags/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/tags/><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://an [...]
+<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/tags/><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://an [...]
<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>
diff --git a/zh-cn/tags/index.xml b/zh-cn/tags/index.xml
index 888f478ffd4..c00752ed667 100644
--- a/zh-cn/tags/index.xml
+++ b/zh-cn/tags/index.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/</link><description>Recent content in Tags on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Mar 2025 08:03:41 +0530</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/index.xml" rel="self" type="application/rss+xml"/>< [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/</link><description>Recent content in Tags on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 13 Nov 2025 22:33:41 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/index.xml" rel="self" type="application/rss+xml"/>< [...]
\ No newline at end of file
diff --git a/zh-cn/tags/java/index.html b/zh-cn/tags/java/index.html
index 93a978a14a9..162827cc01e 100644
--- a/zh-cn/tags/java/index.html
+++ b/zh-cn/tags/java/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/tags/java/><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/java/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e=" [...]
+<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate hreflang=en href=https://dubbo.apache.org/en/tags/java/><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/java/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e=" [...]
<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>
diff --git a/zh-cn/tags/java/index.xml b/zh-cn/tags/java/index.xml
index c5a4681d16f..7a44d8f8c63 100644
--- a/zh-cn/tags/java/index.xml
+++ b/zh-cn/tags/java/index.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/java/</link><description>Recent content in Java on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Mar 2025 08:03:41 +0530</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/java/index.xml" rel="self" type="application/r [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/java/</link><description>Recent content in Java on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 13 Nov 2025 22:33:41 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/java/index.xml" rel="self" type="application/r [...]
<blockquote>
-<p>如关心迁移背后工作原理,请参考 <a href="../service-discovery-rule">迁移规则详情与工作原理</a></p>
+<p>如关心迁移背后工作原理,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule">迁移规则详情与工作原理</a></p>
</blockquote>
<h2 id="1-快速升级步骤">1 快速升级步骤</h2>
<p>简单的修改 pom.xml 到最新版本就可以完成升级,如果要迁移到应用级地址,只需要调整开关控制 3.x 版本的默认行为。</p>
@@ -597,7 +597,7 @@ Bi-directional Streaming 等通信模型;
<td>timeout</td>
<td>long</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的timeout</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的timeout</td>
<td>性能调优</td>
<td>服务方法调用超时时间(毫秒)</td>
<td>1.0.5以上版本</td>
@@ -607,7 +607,7 @@ Bi-directional Streaming 等通信模型;
<td>retries</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的retries</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的retries</td>
<td>性能调优</td>
<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>
<td>2.0.0以上版本</td>
@@ -617,7 +617,7 @@ Bi-directional Streaming 等通信模型;
<td>connections</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的connections</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的connections</td>
<td>性能调优</td>
<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>
<td>2.0.0以上版本</td>
@@ -627,7 +627,7 @@ Bi-directional Streaming 等通信模型;
<td>loadbalance</td>
<td>string</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的loadbalance</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的loadbalance</td>
<td>性能调优</td>
<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
<td>2.0.0以上版本</td>
@@ -637,7 +637,7 @@ Bi-directional Streaming 等通信模型;
<td>async</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的async</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的async</td>
<td>性能调优</td>
<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>
<td>2.0.0以上版本</td>
@@ -647,7 +647,7 @@ Bi-directional Streaming 等通信模型;
<td>generic</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的generic</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的generic</td>
<td>服务治理</td>
<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>
<td>2.0.0以上版本</td>
@@ -657,7 +657,7 @@ Bi-directional Streaming 等通信模型;
<td>check</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的check</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的check</td>
<td>服务治理</td>
<td>启动时检查提供者是否存在,true报错,false忽略</td>
<td>2.0.0以上版本</td>
@@ -739,7 +739,7 @@ Bi-directional Streaming 等通信模型;
<td>可选</td>
<td>缺省将从所有注册中心获服务列表后合并结果</td>
<td>配置关联</td>
- <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<a href="#ZgotmplZ">dubbo:registry</a>的id属性,多个注册中心ID用逗号分隔</td>
+ <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<code>&lt;dubbo:registry&gt;</code>的id属性,多个注册中心ID用逗号分隔</td>
<td>2.0.0以上版本</td>
</tr>
<tr>
@@ -1310,7 +1310,7 @@ exportServiceInternal方法:</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-java" data-lang="java"><span style="display:flex;"><span>.protocol(<span style="color:#719e07">new</span> ProtocolConfig(CommonConstants.DUBBO, <span style="color:#719e07">-</span>1))
</span></span></code></pre></div><h2 id="112--协议的配置相关">11.2 协议的配置相关</h2>
<p>下面的配置来源于官网</p>
-<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <a href="#ZgotmplZ">dubbo:protocol</a> 标签,并在 <a href="#ZgotmplZ">dubbo:service</a> 中通过 protocol 属性指定使用的协议。</p>
+<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <code>&lt;dubbo:protocol&gt;</code> 标签,并在 <code>&lt;dubbo:service&gt;</code> 中通过 protocol 属性指定使用的协议。</p>
<table>
<thead>
<tr>
@@ -1608,12 +1608,12 @@ exportServiceInternal方法:</p>
</tr>
<tr>
<td>address</td>
- <td><a href="#ZgotmplZ">host:port</a></td>
+ <td><code>&lt;host:port&gt; </code></td>
<td>string</td>
<td><strong>必填</strong></td>
<td></td>
<td>服务发现</td>
- <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<a href="#ZgotmplZ">dubbo:registry</a>标签</td>
+ <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<code>&lt;dubbo:registry&gt;</code>标签</td>
<td>1.0.16以上版本</td>
</tr>
<tr>
@@ -2588,10 +2588,10 @@ Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能
<img src="https://dubbo.apache.org/imgs/blog/dubbo-directly.jpg" alt="subscribe-only"></p>
<p>可以通过以下几种配置来指定IP调用</p>
<ul>
-<li>XML 配置: 如果是线上需求需要点对点,可在 <a href="#ZgotmplZ">dubbo:reference</a> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
+<li>XML 配置: 如果是线上需求需要点对点,可在 <code>&lt;dubbo:reference&gt;</code> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
<code>&lt;dubbo:reference id=&quot;xxxService&quot; interface=&quot;com.alibaba.xxx.XxxService&quot; url=&quot;dubbo://localhost:20890&quot; /&gt;</code></li>
<li>通过-D参数指定: 在 JVM 启动参数中加入-D参数映射服务地址,如:<code>java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
-<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <a href="#ZgotmplZ">dubbo:reference</a> 中的配置,如:
+<li>通过文件映射: 如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <code>&lt;dubbo:reference&gt;</code> 中的配置,如:
<code>java -Ddubbo.resolve.file=xxx.properties</code><br>
然后在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者 URL:<code>com.alibaba.xxx.XxxService=dubbo://localhost:20890</code></li>
</ul>
diff --git "a/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.html" "b/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
index e56bc6b51a0..a201088af7b 100644
--- "a/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
+++ "b/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
+<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
<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>
diff --git "a/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.xml" "b/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.xml"
index 58950372de1..065f1fa7410 100644
--- "a/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.xml"
+++ "b/zh-cn/tags/\346\234\215\345\212\241\345\217\221\347\216\260/index.xml"
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>服务发现 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</link><description>Recent content in 服务发现 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 13 Sep 2024 15:29:11 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8 [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>服务发现 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</link><description>Recent content in 服务发现 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 13 Nov 2025 22:33:41 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/%E6%9C%8D%E5%8 [...]
<blockquote>
-<p>如关心迁移背后工作原理,请参考 <a href="../service-discovery-rule">迁移规则详情与工作原理</a></p>
+<p>如关心迁移背后工作原理,请参考 <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule">迁移规则详情与工作原理</a></p>
</blockquote>
<h2 id="1-快速升级步骤">1 快速升级步骤</h2>
<p>简单的修改 pom.xml 到最新版本就可以完成升级,如果要迁移到应用级地址,只需要调整开关控制 3.x 版本的默认行为。</p>
diff --git "a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.html" "b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
index ba8a5171687..ada7a457f98 100644
--- "a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
+++ "b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
+<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/><script>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://analytics.apache.org/",_paq.push(["s [...]
<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>
diff --git "a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml" "b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
index 44a579a5566..3a205c4c85e 100644
--- "a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
+++ "b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>源码解析 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</link><description>Recent content in 源码解析 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 04 Feb 2024 14:17:35 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>源码解析 on Apache Dubbo</title><link>https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</link><description>Recent content in 源码解析 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 13 Nov 2025 22:33:41 +0800</lastBuildDate><atom:link href="https://dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A [...]
<p>服务指标统计体系是 Dubbo 可观测能力的重要组成部分。
dubbo-metrics 指标模块旨在将 dubbo 内部零散的 Metrics 相关类综合到一个单独的模块中,提供一套更加完善、全面、可拓展、解耦合的指标采样-统计-导出解决方案。</p>
<p>dubbo-metrics 模块包括:</p>
@@ -380,7 +380,7 @@ Bi-directional Streaming 等通信模型;
<td>timeout</td>
<td>long</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的timeout</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的timeout</td>
<td>性能调优</td>
<td>服务方法调用超时时间(毫秒)</td>
<td>1.0.5以上版本</td>
@@ -390,7 +390,7 @@ Bi-directional Streaming 等通信模型;
<td>retries</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的retries</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的retries</td>
<td>性能调优</td>
<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>
<td>2.0.0以上版本</td>
@@ -400,7 +400,7 @@ Bi-directional Streaming 等通信模型;
<td>connections</td>
<td>int</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的connections</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的connections</td>
<td>性能调优</td>
<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>
<td>2.0.0以上版本</td>
@@ -410,7 +410,7 @@ Bi-directional Streaming 等通信模型;
<td>loadbalance</td>
<td>string</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的loadbalance</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的loadbalance</td>
<td>性能调优</td>
<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
<td>2.0.0以上版本</td>
@@ -420,7 +420,7 @@ Bi-directional Streaming 等通信模型;
<td>async</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的async</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的async</td>
<td>性能调优</td>
<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>
<td>2.0.0以上版本</td>
@@ -430,7 +430,7 @@ Bi-directional Streaming 等通信模型;
<td>generic</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的generic</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的generic</td>
<td>服务治理</td>
<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>
<td>2.0.0以上版本</td>
@@ -440,7 +440,7 @@ Bi-directional Streaming 等通信模型;
<td>check</td>
<td>boolean</td>
<td>可选</td>
- <td>缺省使用<a href="#ZgotmplZ">dubbo:consumer</a>的check</td>
+ <td>缺省使用<code>&lt;dubbo:consumer&gt;</code>的check</td>
<td>服务治理</td>
<td>启动时检查提供者是否存在,true报错,false忽略</td>
<td>2.0.0以上版本</td>
@@ -522,7 +522,7 @@ Bi-directional Streaming 等通信模型;
<td>可选</td>
<td>缺省将从所有注册中心获服务列表后合并结果</td>
<td>配置关联</td>
- <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<a href="#ZgotmplZ">dubbo:registry</a>的id属性,多个注册中心ID用逗号分隔</td>
+ <td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<code>&lt;dubbo:registry&gt;</code>的id属性,多个注册中心ID用逗号分隔</td>
<td>2.0.0以上版本</td>
</tr>
<tr>
@@ -1093,7 +1093,7 @@ exportServiceInternal方法:</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-java" data-lang="java"><span style="display:flex;"><span>.protocol(<span style="color:#719e07">new</span> ProtocolConfig(CommonConstants.DUBBO, <span style="color:#719e07">-</span>1))
</span></span></code></pre></div><h2 id="112--协议的配置相关">11.2 协议的配置相关</h2>
<p>下面的配置来源于官网</p>
-<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <a href="#ZgotmplZ">dubbo:protocol</a> 标签,并在 <a href="#ZgotmplZ">dubbo:service</a> 中通过 protocol 属性指定使用的协议。</p>
+<p>服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <code>&lt;dubbo:protocol&gt;</code> 标签,并在 <code>&lt;dubbo:service&gt;</code> 中通过 protocol 属性指定使用的协议。</p>
<table>
<thead>
<tr>
@@ -1391,12 +1391,12 @@ exportServiceInternal方法:</p>
</tr>
<tr>
<td>address</td>
- <td><a href="#ZgotmplZ">host:port</a></td>
+ <td><code>&lt;host:port&gt; </code></td>
<td>string</td>
<td><strong>必填</strong></td>
<td></td>
<td>服务发现</td>
- <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<a href="#ZgotmplZ">dubbo:registry</a>标签</td>
+ <td>注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心,请配置多个<code>&lt;dubbo:registry&gt;</code>标签</td>
<td>1.0.16以上版本</td>
</tr>
<tr>