This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch cn-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/cn-site by this push:
new 4ae5fa9d83 deploy: 6078e8435b5a2de4aa80dac6b7961ecc366f0cf9
4ae5fa9d83 is described below
commit 4ae5fa9d83b513b3210c37b80723d142241421bf
Author: AlbumenJ <[email protected]>
AuthorDate: Wed Jun 28 12:17:50 2023 +0000
deploy: 6078e8435b5a2de4aa80dac6b7961ecc366f0cf9
---
sitemap.xml | 2 +-
zh-cn/docs/index.xml | 2 +-
.../reference-manual/metadata-center/index.xml | 44 +++++++---------------
.../metadata-center/overview/index.html | 20 +++++-----
.../java-sdk/reference-manual/protocol/index.xml | 28 ++++++++------
.../reference-manual/protocol/memcached/index.html | 6 +--
.../reference-manual/protocol/redis/index.html | 8 ++--
.../protocol/webservice/index.html | 6 +--
.../java-sdk/reference-manual/spi/index.xml | 2 +-
.../reference-manual/spi/overview/index.html | 8 ++--
zh-cn/sitemap.xml | 2 +-
11 files changed, 58 insertions(+), 70 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index 0c81e7e76e..74230255c1 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-06-28T20:11:32+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-05-10T11:59:30+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-06-28T20:12:39+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-05-10T11:59:30+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/docs/index.xml b/zh-cn/docs/index.xml
index 7ee7338ee7..7c5001e356 100644
--- a/zh-cn/docs/index.xml
+++ b/zh-cn/docs/index.xml
@@ -650,7 +650,7 @@ Consumer应用引入服务Mock依赖,添加JVM启动参数-Denable.dubbo.admin
<p>Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。</p>
<p><img
src="https://cn.dubbo.apache.org/imgs/v3/concepts/extension-use.png"
alt="//imgs/v3/concepts/extension-use.png"></p>
<p>Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo
原生实现,来满足自身业务需求。</p>
-<h2 id="使用场景">使用场景</h2>
+<h2 id="dubbo-扩展的使用场景">Dubbo 扩展的使用场景</h2>
<ul>
<li>如果你需要自定义负载均衡策略,你可以使用 Dubbo 扩展能力。</li>
<li>如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。</li>
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 93b2b5bf35..4669c39147 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
@@ -1,20 +1,9 @@
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo –
元数据中心</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/</link><description>Recent
content in 元数据中心 on Apache Dubbo</description><generator>Hugo --
gohugo.io</generator><language>zh-cn</language><atom:link
href="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/index.xml"
rel="self" type="application/ [...]
-<p>元数据中心为 Dubbo 中的两类元数据提供了存取能力:</p>
+<p>元数据中心为 Dubbo 中的两类元数据提供了存取能力</p>
<ul>
-<li>1 地址发现元数据
-<ul>
-<li>1.1 &lsquo;接口-应用&rsquo; 映射关系</li>
-<li>1.2 接口配置数据</li>
-</ul>
-</li>
-<li>2 服务运维元数据
-<ul>
-<li>2.1 接口定义描述数据</li>
-<li>2.2 消费者订阅关系数据</li>
+<li>1 地址发现元数据</li>
+<li>2 服务运维元数据</li>
</ul>
-</li>
-</ul>
-<p>关于如何配置开启元数据中心请参考具体实现文档。</p>
<h2 id="1-地址发现元数据">1 地址发现元数据</h2>
<p>Dubbo3 中引入了 <a
href="https://cn.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 时代的接口级服务发现。
同时为了保持 Dubbo 面向服务/接口的易用性、服务治理的灵活性,Dubbo 围绕应用级服务发现构建了一套元数据机制,即 <code>接口 -
应用映射关系</code> 与 <code>接口配置元数据</code>。</p>
@@ -27,15 +16,13 @@
<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
</span></span><span style="display:flex;"><span>$ get
/dubbo/mapping/org.apache.dubbo.demo.DemoService
</span></span><span style="display:flex;"><span>$
demo-provider,two-demo-provider,dubbo-demo-annotation-provider
-</span></span></code></pre></div><ol>
-<li>节点路径是 <code>/dubbo/mapping/{interface name}</code></li>
-<li>多个应用名通过英文逗号 <code>,</code> 隔开</li>
-</ol>
+</span></span></code></pre></div><p><em>① 节点路径是
<code>/dubbo/mapping/{interface name}</code></em></p>
+<p><em>② 多个应用名通过英文逗号 <code>,</code> 隔开</em></p>
<h3 id="12-接口配置元数据">1.2 接口配置元数据</h3>
<p><code>接口级配置元数据</code>是作为地址发现的补充,相比于 Spring Cloud 等地址发现模型只能同步
ip、port 信息,Dubbo 的服务发现机制可以同步接口列表、接口定义、接口级参数配置等信息。
这部分内容根据当前应用的自身信息、以及接口信息计算而来,并且从性能角度出发,还根据元数据生成
revision,以实现不同机器实例间的元数据聚合。</p>
<p>以 Zookeeper 为例,接口配置元数据保存在以下位置,如果多个实例生成的 revision
相同,则最终会共享同一份元数据配置:</p>
-<p>/dubbo/metadata/{application name}/{revision}</p>
+<p><code>/dubbo/metadata/{application name}/{revision}</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><span style="color:#719e07">[</span>zk:
localhost:2181<span style="color:#719e07">(</span>CONNECTED<span
style="color:#719e07">)</span> 33<span style="color:#719e07">]</span>
get /dubbo/metadata/demo-provider/da3be833baa2088c5f6776fb7ab1a436
</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-json" data-lang="json"><span
style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#34;app&#34;</span>:<span
style="color:#2aa198">&#34;demo-provider&#34;</span>,
@@ -95,7 +82,8 @@
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h2 id="2-服务运维元数据">2
服务运维元数据</h2>
-<p>Dubbo
上报的服务运维元数据通常为各种运维系统所用,如服务测试、网关数据映射、服务静态依赖关系分析等。各种第三方系统可直接读取并使用这部分数据,具体对接方式可参见本章提及的几个第三方系统。</p>
+<p>Dubbo 上报的服务运维元数据通常为各种运维系统所用,如服务测试、网关数据映射、服务静态依赖关系分析等。</p>
+<p>各种第三方系统可直接读取并使用这部分数据,具体对接方式可参见本章提及的几个第三方系统。</p>
<h3 id="21-provider-上报的元数据">2.1 Provider 上报的元数据</h3>
<p>provider端存储的元数据内容如下:</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-json" data-lang="json"><span
style="display:flex;"><span>{
@@ -138,11 +126,8 @@
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#34;type&#34;</span>: <span
style="color:#2aa198">&#34;char&#34;</span>
</span></span><span style="display:flex;"><span> }]
</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>主要有两部分:</p>
-<ul>
-<li><code>parameters</code> 为服务配置与参数详情。</li>
-<li><code>types</code> 为服务定义信息。</li>
-</ul>
+</span></span></code></pre></div><p><em>①
<code>parameters</code> 为服务配置与参数详情。</em></p>
+<p><em>② <code>types</code> 为服务定义信息。</em></p>
<h5 id="consumer-上报的元数据">Consumer 上报的元数据:</h5>
<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-json" data-lang="json"><span
style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#34;valid&#34;</span>: <span
style="color:#2aa198">&#34;true&#34;</span>,
@@ -156,15 +141,15 @@
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#34;revision&#34;</span>: <span
style="color:#2aa198">&#34;1.1.1&#34;</span>,
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#34;group&#34;</span>: <span
style="color:#2aa198">&#34;d-test&#34;</span>
</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>Consumer
进程订阅时使用的配置元数据。</p>
+</span></span></code></pre></div><p><em>Consumer
进程订阅时使用的配置元数据。</em></p>
<h2 id="3-元数据上报工作机制">3 元数据上报工作机制</h2>
<p>元数据上报默认是一个异步的过程,为了更好的控制异步行为,元数据配置组件 (metadata-report) 开放了两个配置项:</p>
<ul>
<li>失败重试</li>
-<li>每天定时重刷</li>
+<li>每天定时重试刷新</li>
</ul>
<h3 id="31-retrytimes-失败重试">3.1 retrytimes 失败重试</h3>
-<p>失败重试可以通过 retrytimes (重试次数,默认100),retryperiod(重试周期,默认3000ms)进行设置。</p>
+<p>失败重试可以通过 retrytimes (重试次数。默认 100),retryperiod(重试周期。默认 3000ms)进行设置。</p>
<h3 id="32-定时刷新">3.2 定时刷新</h3>
<p>默认开启,可以通过设置 cycleReport=false 进行关闭。</p>
<h3 id="33-完整的配置项">3.3 完整的配置项</h3>
@@ -178,8 +163,7 @@
</span></span></code></pre></div><blockquote>
<p>如果元数据地址(dubbo.metadata-report.address)也不进行配置,会判断注册中心的协议是否支持元数据中心,如果支持,会使用注册中心的地址来用作元数据中心。</p>
</blockquote>
-<h2 id="4-了解如何扩展">4 了解如何扩展</h2>
-<p>请参见 <a href="../../spi/description/metadata-report/">扩展
metadata-report</a>
了解如何扩展自定义第三方实现。</p></description></item><item><title>Overview:
Nacos</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</guid><description>
+<p>请参见 <a
href="../../spi/description/metadata-report/">metadata-report</a>
了解如何扩展自定义第三方实现。</p></description></item><item><title>Overview:
Nacos</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</guid><description>
<h2 id="1-预备工作">1 预备工作</h2>
<ul>
<li>了解 <a
href="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/quick-start/spring-boot/">Dubbo
基本开发步骤</a></li>
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 c7659ff74a..c242f193b2 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=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewpo [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewpo [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
as=style><link
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content="元数据中心概述"><meta
property="og:description" content="元数据中心概述"><meta name=twitter:description
content="元数据中心概述"><meta property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview/"><meta
property="og:title" content="元数据中心概述"><meta na [...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
@@ -670,14 +670,14 @@
<label for=m-zh-cnoverviewreferenceprotocols-check><a
href=/zh-cn/overview/reference/protocols/ class="align-left pl-0
td-sidebar-link td-sidebar-link__section"
id=m-zh-cnoverviewreferenceprotocols><span>协议规范</span></a></label><ul
class="ul-3 foldable"><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstriple-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstriple-check>
<label for=m-zh-cnoverviewreferenceprotocolstriple-check><a
href=/zh-cn/overview/reference/protocols/triple/ title="Triple 协议设计理念与规范"
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstriple><span>Triple
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstcp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstcp-check>
<label for=m-zh-cnoverviewreferenceprotocolstcp-check><a
href=/zh-cn/overview/reference/protocols/tcp/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstcp><span>Dubbo2
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolshttp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolshttp-check>
-<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
+<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
同时为了保持 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
</span></span><span style=display:flex><span>$ get
/dubbo/mapping/org.apache.dubbo.demo.DemoService
</span></span><span style=display:flex><span>$
demo-provider,two-demo-provider,dubbo-demo-annotation-provider
-</span></span></code></pre></div><ol><li>节点路径是 <code>/dubbo/mapping/{interface
name}</code></li><li>多个应用名通过英文逗号 <code>,</code> 隔开</li></ol><h3
id=12-接口配置元数据>1.2 接口配置元数据</h3><p><code>接口级配置元数据</code>是作为地址发现的补充,相比于 Spring
Cloud 等地址发现模型只能同步 ip、port 信息,Dubbo 的服务发现机制可以同步接口列表、接口定义、接口级参数配置等信息。
-这部分内容根据当前应用的自身信息、以及接口信息计算而来,并且从性能角度出发,还根据元数据生成
revision,以实现不同机器实例间的元数据聚合。</p><p>以 Zookeeper 为例,接口配置元数据保存在以下位置,如果多个实例生成的
revision 相同,则最终会共享同一份元数据配置:</p><p>/dubbo/metadata/{application
name}/{revision}</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:#719e07>[</span>zk: localhost:2181<span
style=color:#719e07>(</span>CONNEC [...]
+</span></span></code></pre></div><p><em>① 节点路径是
<code>/dubbo/mapping/{interface name}</code></em></p><p><em>② 多个应用名通过英文逗号
<code>,</code> 隔开</em></p><h3 id=12-接口配置元数据>1.2
接口配置元数据</h3><p><code>接口级配置元数据</code>是作为地址发现的补充,相比于 Spring Cloud 等地址发现模型只能同步
ip、port 信息,Dubbo 的服务发现机制可以同步接口列表、接口定义、接口级参数配置等信息。
+这部分内容根据当前应用的自身信息、以及接口信息计算而来,并且从性能角度出发,还根据元数据生成
revision,以实现不同机器实例间的元数据聚合。</p><p>以 Zookeeper 为例,接口配置元数据保存在以下位置,如果多个实例生成的
revision 相同,则最终会共享同一份元数据配置:</p><p><code>/dubbo/metadata/{application
name}/{revision}</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><span
style=color:#719e07>[</span>zk: localhost:2181<span style=color:#719e07>( [...]
</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-json data-lang=json><span style=display:flex><span>{
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"app"</span>:<span
style=color:#2aa198>"demo-provider"</span>,
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"revision"</span>:<span
style=color:#2aa198>"da3be833baa2088c5f6776fb7ab1a436"</span>,
@@ -735,7 +735,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><h2 id=2-服务运维元数据>2 服务运维元数据</h2><p>Dubbo
上报的服务运维元数据通常为各种运维系统所用,如服务测试、网关数据映射、服务静态依赖关系分析等。各种第三方系统可直接读取并使用这部分数据,具体对接方式可参见本章提及的几个第三方系统。</p><h3
id=21-provider-上报的元数据>2.1 Provider 上报的元数据</h3><p>provider端存储的元数据内容如下:</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-json data-lang=json><span style=display:flex><span>{
+</span></span></code></pre></div><h2 id=2-服务运维元数据>2 服务运维元数据</h2><p>Dubbo
上报的服务运维元数据通常为各种运维系统所用,如服务测试、网关数据映射、服务静态依赖关系分析等。</p><p>各种第三方系统可直接读取并使用这部分数据,具体对接方式可参见本章提及的几个第三方系统。</p><h3
id=21-provider-上报的元数据>2.1 Provider 上报的元数据</h3><p>provider端存储的元数据内容如下:</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-json data-lang=json><span style=display:flex><span>{
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"parameters"</span>: {
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"side"</span>: <span
style=color:#2aa198>"provider"</span>,
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"methods"</span>: <span
style=color:#2aa198>"sayHello"</span>,
@@ -775,7 +775,7 @@
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"type"</span>: <span
style=color:#2aa198>"char"</span>
</span></span><span style=display:flex><span> }]
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>主要有两部分:</p><ul><li><code>parameters</code>
为服务配置与参数详情。</li><li><code>types</code> 为服务定义信息。</li></ul><h5
id=consumer-上报的元数据>Consumer 上报的元数据:</h5><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-json data-lang=json><span style=display:flex><span>{
+</span></span></code></pre></div><p><em>① <code>parameters</code>
为服务配置与参数详情。</em></p><p><em>② <code>types</code> 为服务定义信息。</em></p><h5
id=consumer-上报的元数据>Consumer 上报的元数据:</h5><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-json data-lang=json><span style=display:flex><span>{
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"valid"</span>: <span
style=color:#2aa198>"true"</span>,
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"side"</span>: <span
style=color:#2aa198>"consumer"</span>,
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"application"</span>: <span
style=color:#2aa198>"metadatareport-configcenter-consumer"</span>,
@@ -787,18 +787,18 @@
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"revision"</span>: <span
style=color:#2aa198>"1.1.1"</span>,
</span></span><span style=display:flex><span> <span
style=color:#268bd2>"group"</span>: <span
style=color:#2aa198>"d-test"</span>
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>Consumer 进程订阅时使用的配置元数据。</p><h2
id=3-元数据上报工作机制>3 元数据上报工作机制</h2><p>元数据上报默认是一个异步的过程,为了更好的控制异步行为,元数据配置组件
(metadata-report) 开放了两个配置项:</p><ul><li>失败重试</li><li>每天定时重刷</li></ul><h3
id=31-retrytimes-失败重试>3.1 retrytimes 失败重试</h3><p>失败重试可以通过 retrytimes
(重试次数,默认100),retryperiod(重试周期,默认3000ms)进行设置。</p><h3 id=32-定时刷新>3.2
定时刷新</h3><p>默认开启,可以通过设置 cycleReport=false 进行关闭。</p><h3 id=33-完整的配置项>3.3
完整的配置项</h3><div class=highlight><pre tabindex=0 style=color:#93a1a1;backgro
[...]
+</span></span></code></pre></div><p><em>Consumer 进程订阅时使用的配置元数据。</em></p><h2
id=3-元数据上报工作机制>3 元数据上报工作机制</h2><p>元数据上报默认是一个异步的过程,为了更好的控制异步行为,元数据配置组件
(metadata-report) 开放了两个配置项:</p><ul><li>失败重试</li><li>每天定时重试刷新</li></ul><h3
id=31-retrytimes-失败重试>3.1 retrytimes 失败重试</h3><p>失败重试可以通过 retrytimes (重试次数。默认
100),retryperiod(重试周期。默认 3000ms)进行设置。</p><h3 id=32-定时刷新>3.2
定时刷新</h3><p>默认开启,可以通过设置 cycleReport=false 进行关闭。</p><h3 id=33-完整的配置项>3.3
完整的配置项</h3><div class=highlight><pre tabindex=0 style=color:#9 [...]
</span></span><span
style=display:flex><span>dubbo.metadata-report.username<span
style=color:#719e07>=</span><span style=color:#2aa198>xxx ##非必须</span>
</span></span><span
style=display:flex><span>dubbo.metadata-report.password<span
style=color:#719e07>=</span><span style=color:#2aa198>xxx ##非必须</span>
</span></span><span
style=display:flex><span>dubbo.metadata-report.retry-times<span
style=color:#719e07>=</span><span style=color:#2aa198>30
##非必须,default值100</span>
</span></span><span
style=display:flex><span>dubbo.metadata-report.retry-period<span
style=color:#719e07>=</span><span style=color:#2aa198>5000
##非必须,default值3000</span>
</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><h2
id=4-了解如何扩展>4 了解如何扩展</h2><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
[...]
+</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
[...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/overview.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.m
[...]
<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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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-元数据上报工作机制> [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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-元数据上报工作机制> [...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js
integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
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 60a7b547b4..7c8df48f1a 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
@@ -1502,8 +1502,10 @@ return context;
</ul>
</div></description></item><item><title>Overview:
Redis协议</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/</guid><description>
<h2 id="特性说明">特性说明</h2>
-<p>基于 Redis 实现的 RPC 协议。 <code>2.3.0</code> 以上版本支持。</p>
-<p><a href="http://redis.io">Redis</a> 是一个高效的 KV 存储服务器。</p>
+<p><a href="http://redis.io">Redis</a> 是一个高效的 KV 存储服务器。基于 Redis 实现的
RPC 协议。</p>
+<blockquote>
+<p><code>2.3.0</code> 以上版本支持。</p>
+</blockquote>
<h2 id="使用场景">使用场景</h2>
<p>缓存,限流,分布式锁等</p>
<h2 id="使用方式">使用方式</h2>
@@ -1529,7 +1531,7 @@ return context;
</span></span></code></pre></div><p>其中
&ldquo;p:xxx&rdquo; 为 spring 的标准 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:reference</span> id=<span
style="color:#2aa198">&#34;cache&#34;</span> interface=<span
style="color:#2aa198">&#34;com.foo.CacheService&#34;</span>
url=<span style="color:#2aa198">&#34;red [...]
</span></span></code></pre></div><p>方法名建议和 redis
的标准方法名相同,即:get(key), set(key, value), delete(key)。</p>
-<p>如果方法名和 redis
的标准方法名不相同,则需要配置映射关系:</p></description></item><item><title>Overview:
Hessian协议</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/hessian/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/hessian/</guid><description>
+<p>如果方法名和 redis
的标准方法名不相同,则需要配置映射关系。</p></description></item><item><title>Overview:
Hessian协议</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/hessian/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/hessian/</guid><description>
<h2 id="特性说明">特性说明</h2>
<p>Hessian 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo
缺省内嵌 Jetty 作为服务器实现。</p>
<p><a href="http://hessian.caucho.com">Hessian</a> 是 Caucho 开源的一个 RPC
框架,其通讯效率高于 WebService 和 Java 自带的序列化。</p>
@@ -1647,16 +1649,18 @@ return context;
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&lt;servlet-name&gt;</span>dubbo<span
style="color:#268bd2">&lt;/servlet-name&gt;</span>
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&lt;url-pattern&gt;</span>/*<span
style="color:#268bd2">&lt;/url-pattern&gt;</span>
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">&lt;/servlet-mapping&gt;</span>
-</span></span></code></pre></div><blockquote>
-<p>如果使用 servlet 派发请求</p>
-<ul>
-<li>协议的端口 <code>&lt;dubbo:protocol port=&quot;8080&quot;
/&gt;</code> 必须与 servlet 容器的端口相同。</li>
-<li>协议的上下文路径 <code>&lt;dubbo:protocol
contextpath=&quot;foo&quot; /&gt;</code> 必须与 servlet
应用的上下文路径相同。</li>
-</ul>
-</blockquote></description></item><item><title>Overview:
Memcached协议</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/</guid><description>
+</span></span></code></pre></div>
+<div class="alert alert-primary" role="alert">
+<h4 class="alert-heading">注意</h4>
+<p>如果使用 servlet 派发请求:</p>
+<p>协议的端口 <code>&lt;dubbo:protocol port=&quot;8080&quot;
/&gt;</code> 必须与 servlet 容器的端口相同。</p>
+<p>协议的上下文路径 <code>&lt;dubbo:protocol
contextpath=&quot;foo&quot; /&gt;</code> 必须与 servlet
应用的上下文路径相同。</p>
+</div></description></item><item><title>Overview:
Memcached协议</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/</guid><description>
<h2 id="特性说明">特性说明</h2>
-<p>基于 memcached 实现的 RPC 协议。 <code>2.3.0</code> 以上版本支持。</p>
-<p><a href="http://memcached.org/">Memcached</a> 是一个高效的 KV
缓存服务器。</p>
+<p><a href="http://memcached.org/">Memcached</a> 是一个高效的 KV 缓存服务器。基于
memcached 实现的 RPC 协议。</p>
+<blockquote>
+<p><code>2.3.0</code> 以上版本支持。</p>
+</blockquote>
<h2 id="使用场景">使用场景</h2>
<p>缓解数据库压力,提高交互速度等。</p>
<h2 id="使用方式">使用方式</h2>
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/index.html
index 6fe75e6e66..a6391e46e2 100644
---
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/index.html
+++
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/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://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport con [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport con [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
as=style><link
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content="Memcached协议"><meta
property="og:description" content="Memcached协议"><meta name=twitter:description
content="Memcached协议"><meta property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/memcached/"><meta
property="og:title" content="Memcached协议 [...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
@@ -670,7 +670,7 @@
<label for=m-zh-cnoverviewreferenceprotocols-check><a
href=/zh-cn/overview/reference/protocols/ class="align-left pl-0
td-sidebar-link td-sidebar-link__section"
id=m-zh-cnoverviewreferenceprotocols><span>协议规范</span></a></label><ul
class="ul-3 foldable"><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstriple-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstriple-check>
<label for=m-zh-cnoverviewreferenceprotocolstriple-check><a
href=/zh-cn/overview/reference/protocols/triple/ title="Triple 协议设计理念与规范"
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstriple><span>Triple
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstcp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstcp-check>
<label for=m-zh-cnoverviewreferenceprotocolstcp-check><a
href=/zh-cn/overview/reference/protocols/tcp/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstcp><span>Dubbo2
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolshttp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolshttp-check>
-<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
+<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
</span></span><span style=display:flex><span> <span
style=color:#268bd2><groupId></span>org.apache.dubbo.extensions<span
style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><artifactId></span>dubbo-rpc-memcached<span
style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><version></span>1.0.0<span
style=color:#268bd2></version></span>
@@ -683,7 +683,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><dubbo:reference</span> id=<span
style=color:#2aa198>"cache"</span> interface=<span
style=color:#2aa198>"com.foo.CacheService"</span> url=<span
style=color:#2aa198>"memcached://10.20.153.10:11211" [...]
</span></span></code></pre></div><p>其中 “p:xxx” 为 spring 的标准 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>"cache"</span> interface=<span
style=color:#2aa198>"com.foo.CacheService"</span> url=<span
style=color:#2aa198>"memca [...]
</span></span></code></pre></div><p>如果方法名和 memcached
的标准方法名不相同,则需要配置映射关系;</p><p>方法名建议和 memcached 的标准方法名相同,即:get(key), set(key,
value), delete(key)。</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/protocol/memcached.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=Memcached%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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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=#注册-memcached-服务的地址>注册 memcached 服务的地址</a></li><li><a
href=#在客户端引用>在客户端引用</a></li></ul></li></ul></nav></div></div></div></div><footer
class="bg-d [...]
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/index.html
index 5f34075b0c..e0904d8d91 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/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://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport content [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport content [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
as=style><link
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content="Redis协议"><meta
property="og:description" content="Redis协议"><meta name=twitter:description
content="Redis协议"><meta property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/"><meta
property="og:title" content="Redis协议"><meta name=twitter [...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
@@ -670,7 +670,7 @@
<label for=m-zh-cnoverviewreferenceprotocols-check><a
href=/zh-cn/overview/reference/protocols/ class="align-left pl-0
td-sidebar-link td-sidebar-link__section"
id=m-zh-cnoverviewreferenceprotocols><span>协议规范</span></a></label><ul
class="ul-3 foldable"><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstriple-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstriple-check>
<label for=m-zh-cnoverviewreferenceprotocolstriple-check><a
href=/zh-cn/overview/reference/protocols/triple/ title="Triple 协议设计理念与规范"
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstriple><span>Triple
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolstcp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolstcp-check>
<label for=m-zh-cnoverviewreferenceprotocolstcp-check><a
href=/zh-cn/overview/reference/protocols/tcp/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolstcp><span>Dubbo2
协议规范</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceprotocolshttp-li><input type=checkbox
id=m-zh-cnoverviewreferenceprotocolshttp-check>
-<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
+<label for=m-zh-cnoverviewreferenceprotocolshttp-check><a
href=/zh-cn/overview/reference/protocols/http/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceprotocolshttp><span>HTTP
协议规范</span></a></label></li></ul></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=https://cn.dubbo.apache.org/zh-c [...]
</span></span><span style=display:flex><span> <span
style=color:#268bd2><groupId></span>org.apache.dubbo.extensions<span
style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><artifactId></span>dubbo-rpc-redis<span
style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><version></span>1.0.0<span
style=color:#268bd2></version></span>
@@ -682,8 +682,8 @@
</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>"store"</span> interface=<span
style=color:#2aa198>"java.util.Map"</span> url=<span
style=color:#2aa198>"redis://10.20.153.10:6379"</span> <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> id=<span
style=color:#2aa198>"store"</span> interface=<span
style=color:#2aa198>"com.foo.StoreService"</span> url=<span
style=color:#2aa198>"redis://10.20.153.10:6379"</sp [...]
</span></span></code></pre></div><p>其中 “p:xxx” 为 spring 的标准 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>"cache"</span> interface=<span
style=color:#2aa198>"com.foo.CacheService"</span> url=<span
style=color:#2aa198>"redis [...]
-</span></span></code></pre></div><p>方法名建议和 redis 的标准方法名相同,即:get(key), set(key,
value), delete(key)。</p><p>如果方法名和 redis 的标准方法名不相同,则需要配置映射关系:</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><p>方法名建议和 redis 的标准方法名相同,即:get(key), set(key,
value), delete(key)。</p><p>如果方法名和 redis 的标准方法名不相同,则需要配置映射关系。</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/reference-manual/protocol/redis.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=Redis%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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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=#注册-redis-服务的地址>注册 redis 服务的地址</a></li><li><a
href=#在客户端引用>在客户端引用</a></li></ul></li></ul></nav></div></div></div></div><footer
class="bg-dark py-5 [...]
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/index.html
index ce6fac37af..38532000ff 100644
---
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/index.html
+++
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/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://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport co [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport co [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
as=style><link
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description
content="Webservice协议"><meta property="og:description"
content="Webservice协议"><meta name=twitter:description
content="Webservice协议"><meta property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice/"><meta
property="og:title" content="Webserv [...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
@@ -703,8 +703,8 @@
</span></span><span style=display:flex><span> <span
style=color:#268bd2><servlet-name></span>dubbo<span
style=color:#268bd2></servlet-name></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><url-pattern></span>/*<span
style=color:#268bd2></url-pattern></span>
</span></span><span style=display:flex><span><span
style=color:#268bd2></servlet-mapping></span>
-</span></span></code></pre></div><blockquote><p>如果使用 servlet
派发请求</p><ul><li>协议的端口 <code><dubbo:protocol port="8080" /></code> 必须与
servlet 容器的端口相同。</li><li>协议的上下文路径 <code><dubbo:protocol contextpath="foo"
/></code> 必须与 servlet 应用的上下文路径相同。</li></ul></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
[...]
+</span></span></code></pre></div><div class="alert alert-primary"
role=alert><h4 class=alert-heading>注意</h4><p>如果使用 servlet 派发请求:</p><p>协议的端口
<code><dubbo:protocol port="8080" /></code> 必须与 servlet
容器的端口相同。</p><p>协议的上下文路径 <code><dubbo:protocol contextpath="foo" /></code>
必须与 servlet 应用的上下文路径相同。</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
[...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/webservice.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=Webservice%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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><nav id=TableOfContents><ul><li><a
href=#特性说明>特性说明</a><ul><li></li></ul></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=#多端口>多端口</a></li><li><a href=#直 [...]
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 7cef15d659..a1d3f748ef 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
@@ -56,7 +56,7 @@
<p>Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。</p>
<p><img
src="https://cn.dubbo.apache.org/imgs/v3/concepts/extension-use.png"
alt="//imgs/v3/concepts/extension-use.png"></p>
<p>Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo
原生实现,来满足自身业务需求。</p>
-<h2 id="使用场景">使用场景</h2>
+<h2 id="dubbo-扩展的使用场景">Dubbo 扩展的使用场景</h2>
<ul>
<li>如果你需要自定义负载均衡策略,你可以使用 Dubbo 扩展能力。</li>
<li>如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。</li>
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/index.html
index e819e2924e..10853ab90d 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/spi/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=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport content=" [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport content=" [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
as=style><link
href=/scss/main.min.827bbd3e83b1e0c66a1c08738c713f88f8068e84600146c2dbf9035f0f496f01.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content="Dubbo 通过 SPI
机制提供了非常灵活的可扩展性"><meta property="og:description" content="Dubbo 通过 SPI
机制提供了非常灵活的可扩展性"><meta name=twitter:description content="Dubbo 通过 SPI
机制提供了非常灵活的可扩展性"><meta property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/spi/overview/"><met
[...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
@@ -677,11 +677,11 @@
</span></span><span style=display:flex><span> <span style=color:#586e75>//
...
</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#719e07>}</span>
</span></span></code></pre></div><p>说明下:Http2WireProtocol 实现了 WireProtocol
接口</p><p>(3) 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-text data-lang=text><span
style=display:flex><span><dubbo:protocol name="tri" />
-</span></span></code></pre></div><p>从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。</p><h2
id=dubbo-扩展的应用>Dubbo 扩展的应用</h2><p>Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。</p><p><img
src=/imgs/v3/concepts/extension-use.png
alt=//imgs/v3/concepts/extension-use.png></p><p>Dubbo 扩展能力使得 Dubbo
项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 原生实现,来满足自身业务需求。</p><h2
id=使用场景>使用场景</h2><ul><li>如果你需要自定义负载均衡策略,你可以使用 Dubbo
扩展能力。</li><li>如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。</li><li>如果你需要实现自定义的过滤器,你可以使用
Dubbo 扩展能力。</li></ul><p>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
[...]
+</span></span></code></pre></div><p>从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。</p><h2
id=dubbo-扩展的应用>Dubbo 扩展的应用</h2><p>Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。</p><p><img
src=/imgs/v3/concepts/extension-use.png
alt=//imgs/v3/concepts/extension-use.png></p><p>Dubbo 扩展能力使得 Dubbo
项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 原生实现,来满足自身业务需求。</p><h2
id=dubbo-扩展的使用场景>Dubbo 扩展的使用场景</h2><ul><li>如果你需要自定义负载均衡策略,你可以使用 Dubbo
扩展能力。</li><li>如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。</li><li>如果你需要实现自定义的过滤器,你可以使用
Dubbo 扩展能力。</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/java-sdk/reference-manual/spi/overview.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+E
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=Dubbo%20SPI%20%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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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=#dubbo-中的可扩展性>Dubbo 中的可扩展性</a></li></ul></li><li><a
href=#dubbo-扩展的特性>Dubbo 扩展的特性</a></li><li><a href=#dubbo-扩展加载流程>Dubbo 扩展加载 [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><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=#dubbo-中的可扩展性>Dubbo 中的可扩展性</a></li></ul></li><li><a
href=#dubbo-扩展的特性>Dubbo 扩展的特性</a></li><li><a href=#dubbo-扩展加载流程>Dubbo 扩展加载 [...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js
integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 4446dd76fc..34be14dd14 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://cn.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-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://cn.dubbo.apache.org/zh-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-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
[...]
\ No newline at end of file