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 0a78f3782f deploy: 7a155566c2bb0d12664631d38b2ec32705642803
0a78f3782f is described below
commit 0a78f3782f9b43d05da4b176472fa5bf2b512a92
Author: AlbumenJ <[email protected]>
AuthorDate: Wed Jun 28 12:16:28 2023 +0000
deploy: 7a155566c2bb0d12664631d38b2ec32705642803
---
sitemap.xml | 2 +-
.../mannual/golang-sdk/quickstart/index.xml | 90 ++++++++++++----------
.../quickstart/quickstart_triple/index.html | 21 +++--
.../quickstart_triple_with_customize/index.html | 48 +++++-------
.../reference-manual/protocol/dubbo/index.html | 6 +-
.../java-sdk/reference-manual/protocol/index.xml | 32 ++++----
.../reference-manual/protocol/rmi/index.html | 8 +-
zh-cn/sitemap.xml | 2 +-
8 files changed, 106 insertions(+), 103 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index 83b7b88364..9050ca9cfc 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>2023-06-28T20:10:37+08:00</lastmod></sitemap><sitemap><loc>https://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://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-06-28T20:11:32+08:00</lastmod></sitemap><sitemap><loc>https://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/overview/mannual/golang-sdk/quickstart/index.xml
b/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
index 447317e4bc..74d9883885 100644
--- a/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
+++ b/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
@@ -27,11 +27,13 @@
</span></span><span
style="display:flex;"><span>protoc-gen-go-triple 1.0.8
</span></span></code></pre></div></description></item><item><title>Overview:
完成一次 RPC
调用</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/</guid><description>
<h2 id="1-生成-demo-项目">1. 生成 Demo 项目</h2>
-<p>使用安装好的 dubbogo-cli 工具,创建demo工程。</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>$ mkdir quickstart
-</span></span><span style="display:flex;"><span>$ <span
style="color:#b58900">cd</span> quickstart
-</span></span><span style="display:flex;"><span>$ dubbogo-cli
newDemo .
-</span></span><span style="display:flex;"><span>$ tree .
+<p>使用安装好的 dubbogo-cli 工具,创建 demo 工程。</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-bash" data-lang="bash"><span
style="display:flex;"><span>$ mkdir quickstart <span
style="color:#719e07">&amp;&amp;</span> <span
style="color:#b58900">cd</span> quickstart
+</span></span></code></pre></div><p>使用 dubbogo-cli
工具创建新项目</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>$ dubbogo-cli newDemo .
+</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-bash" data-lang="bash"><span
style="display:flex;"><span>$ tree .
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>├── api
</span></span><span style="display:flex;"><span>│ ├──
samples_api.pb.go
@@ -76,13 +78,14 @@
</span></span><span style="display:flex;"><span> <span
style="color:#dc322f">int32</span> age <span
style="color:#719e07">=</span> <span style="color:#2aa198">3</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>demo项目中,默认生成了一个接口描述文件,接口服务名为
api.Greeter, 包含两个 RPC 方法,入参为 HelloRequest,返回值为 User,两个方法分别为普通 RPC 方法和
Streaming 类型 RPC 方法。</p>
-<h3 id="12-可选-使用安装好的编译工具编译-pb-接口">1.2 (*可选) 使用安装好的编译工具编译 pb 接口</h3>
+<h3 id="12-编译接口-可选">1.2 编译接口 (可选)</h3>
+<p>使用安装好的编译工具编译 pb 接口。</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:#b58900">cd</span> api
</span></span><span style="display:flex;"><span>$ protoc
--go_out<span style="color:#719e07">=</span>. --go-triple_out<span
style="color:#719e07">=</span>. ./samples_api.proto
</span></span></code></pre></div><p>参数意义:<code>--go_out=.</code>
使用上述安装的 <code>protoc-gen-go</code>
插件,生成文件到当前目录,<code>--go-triple_out=.</code>使用上述安装的
<code>protoc-gen-go-triple</code> 插件,生成文件到当前目录。</p>
<p>执行该指令后,会生成两个文件,分别是helloworld.pb (包含 proto 结构) 和 helloworld_triple.pb.go
(包含 triple 协议接口)。</p>
<p>在 demo 工程中,预先生成好了这两个文件,修改 .proto 文件后重新执行命令生成,即可覆盖。</p>
-<h2 id="2-开启一次rpc调用">2. 开启一次RPC调用</h2>
+<h2 id="2-开启一次-rpc-调用">2. 开启一次 RPC 调用</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-fallback" data-lang="fallback"><span
style="display:flex;"><span>$ go mod tidy
</span></span></code></pre></div><p>拉取到最新的框架依赖:</p>
@@ -100,21 +103,25 @@
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">require</span> (
</span></span><span style="display:flex;"><span> <span
style="color:#719e07">...</span>
</span></span><span style="display:flex;"><span>)
-</span></span></code></pre></div><p>先后启动服务端和客户端: 开启两个终端,在
go-server/cmd 和 go-client/cmd 文件夹下分别执行 <code>go run .</code> ,
可在客户端看到输出:</p>
+</span></span></code></pre></div>
+<div class="alert alert-info" role="alert">
+<h4 class="alert-heading">输出结果</h4>
+<p>先后启动服务端和客户端: 开启两个终端,在 <code>go-server/cmd</code> 和
<code>go-client/cmd</code> 文件夹下分别执行 <code>go run .</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>client response result: name:<span
style="color:#2aa198">&#34;Hello laurence&#34;</span> id:<span
style="color:#2aa198">&#34;12345&#34;</span> age:21
-</span></span></code></pre></div><p>获得调用结果成功</p>
-<h2 id="更多">更多</h2>
-<blockquote>
-<p>细心的读者可以发现,以上例子编写的的服务端可以接受来自客户端的普通RPC、流式RPC调用请求。目前只编写了普通调用的Client,读者可以根据
samples 库中的例子来尝试编写流式客户端和服务端。</p>
-</blockquote></description></item><item><title>Overview: 完成一次自己定义接口的版本 RPC
调用</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/</guid><description>
-<h2 id="1实现概述">1.实现概述</h2>
+</span></span></code></pre></div><p>获得调用结果成功。</p>
+</div>
+<div class="alert alert-primary" role="alert">
+<h4 class="alert-heading">更多</h4>
+细心的读者可以发现,以上例子编写的的服务端可以接受来自客户端的普通RPC、流式RPC调用请求。目前只编写了普通调用的Client,读者可以根据
samples 库中的例子来尝试编写流式客户端和服务端。
+</div></description></item><item><title>Overview: 完成一次自己定义接口的版本 RPC
调用</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/</guid><description>
+<h2 id="1-实现概述">1. 实现概述</h2>
<p>我们本章来实现一个简单的小需求,实现一个分布式ID生成服务,通过该服务可以获取分布式ID
(假设的分布式ID,我们不探讨ID的生成方案和算法,这里直接使用uuid代替,只为演示自定义服务的创建)</p>
<h2 id="2-服务端实现">2. 服务端实现</h2>
<p>首先使用 dubbogo-cli 创建 IDC 服务</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>dubbogo-cli newApp IDC
-</span></span><span style="display:flex;"><span><span
style="color:#b58900">cd</span> IDC
-</span></span><span style="display:flex;"><span>tree .
+<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>dubbogo-cli newApp IDC <span
style="color:#719e07">&amp;&amp;</span> <span
style="color:#b58900">cd</span> IDC
+</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-bash" data-lang="bash"><span
style="display:flex;"><span>tree .
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>├── Makefile
@@ -149,7 +156,7 @@
</span></span><span style="display:flex;"><span>└── pkg
</span></span><span style="display:flex;"><span> └── service
</span></span><span style="display:flex;"><span> └── service.go
-</span></span></code></pre></div><p>我们编辑proto定义我们的接口</p>
+</span></span></code></pre></div><p>我们编辑 proto 定义我们的接口</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>;
</span></span><span style="display:flex;"><span><span
style="color:#719e07">package</span> api;
</span></span><span style="display:flex;"><span>
@@ -167,10 +174,8 @@
</span></span><span style="display:flex;"><span> <span
style="color:#dc322f">string</span> id <span
style="color:#719e07">=</span> <span style="color:#2aa198">1</span>;
</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-bash" data-lang="bash"><span
style="display:flex;"><span>$ <span style="color:#b58900">cd</span> api
-</span></span><span style="display:flex;"><span>$ protoc
--go_out<span style="color:#719e07">=</span>. --go-triple_out<span
style="color:#719e07">=</span>. ./api.proto
-</span></span></code></pre></div><p>我们来调整service
-目录:pkg/service/service.go
+<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:#b58900">cd</span>
api <span style="color:#719e07">&amp;&amp;</span> protoc
--go_out<span style="color:#719e07">=</span>. --go-triple_out<span
style="color:#719e07">=</span>. ./api.proto
+</span></span></code></pre></div><p>我们来调整
<code>service</code> 目录:<code>pkg/service/service.go</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-go" data-lang="go"><span
style="display:flex;"><span><span style="color:#268bd2">type</span>
GeneratorServerImpl <span style="color:#268bd2">struct</span> {
</span></span><span style="display:flex;"><span>
api.UnimplementedGeneratorServer
@@ -189,7 +194,7 @@
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">func</span> <span
style="color:#268bd2">init</span>() {
</span></span><span style="display:flex;"><span> config.<span
style="color:#268bd2">SetProviderService</span>(<span
style="color:#719e07">&amp;</span>GeneratorServerImpl{})
</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>同时,我们调整conf/dubbogo.yaml中的provider部分,</p>
+</span></span></code></pre></div><p>同时,我们调整
<code>conf/dubbogo.yaml</code> 中的 <code>provider</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="color:#268bd2">dubbo</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">registries</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">nacos</span>:
@@ -203,17 +208,16 @@
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">services</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">GeneratorServerImpl</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">interface</span>: <span
style="color:#2aa198">&#34;&#34;</span> <span
style="color:#586e75"># read from stub</span>
-</span></span></code></pre></div><p>我们需要拉起一个依赖的注册中心,nacos,如果你有现成的,本步骤可以忽略,我们使用docker来快速启动一个nacos,</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>git clone
https://github.com/nacos-group/nacos-docker.git
-</span></span><span style="display:flex;"><span><span
style="color:#b58900">cd</span> nacos-docker
-</span></span><span style="display:flex;"><span>docker-compose -f
example/standalone-derby.yaml up
+</span></span></code></pre></div><p>我们需要拉起一个依赖的注册中心
nacos,如果你有现成的,本步骤可以忽略,我们使用 docker 来快速启动一个 nacos</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>git clone
https://github.com/nacos-group/nacos-docker.git <span
style="color:#719e07">&amp;&amp;</span> <span
style="color:#b58900">cd</span> nacos-docker
+</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-bash" data-lang="bash"><span
style="display:flex;"><span>docker-compose -f example/standalone-derby.yaml
up
</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-go" data-lang="go"><span
style="display:flex;"><span>export DUBBO_GO_CONFIG_PATH=conf<span
style="color:#719e07">/</span>dubbogo.yaml
-</span></span><span style="display:flex;"><span><span
style="color:#719e07">go</span> run cmd<span
style="color:#719e07">/</span>app.<span style="color:#719e07">go</span>
-</span></span></code></pre></div><p>打开nacos的控制台,可以看到服务已经注册
-<img
src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/quickstart/nacos.jpg"
alt="img"></p>
+</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>go run cmd/app.go
+</span></span></code></pre></div><p>打开 nacos
的控制台,可以看到服务已经注册</p>
+<p><img
src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/quickstart/nacos.jpg"
alt="img"></p>
<h2 id="2-客户端使用">2. 客户端使用</h2>
-<p>首先,我们可以共享我们的服务端的api给客户端,并生成相关的代码(这里可以根据实际项目需要,共享共享proto,每个consumer自行生成代码,或统一生成sdk后给依赖的服务引入)
+<p>首先,我们可以共享我们的服务端的 api 给客户端,并生成相关的代码(这里可以根据实际项目需要,共享 proto,每个 consumer
自行生成代码,或统一生成 sdk 后给依赖的服务引入)
客户端目录如下:</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></span><span style="display:flex;"><span>├── api
@@ -226,8 +230,7 @@
</span></span><span style="display:flex;"><span>│ └── dubbogo.yml
</span></span><span style="display:flex;"><span>├── go.mod
</span></span><span style="display:flex;"><span>├── go.sum
-</span></span></code></pre></div><p>api目录同服务端的api目录
-client.go 代码如下</p>
+</span></span></code></pre></div><p><code>api</code>
目录同服务端的 <code>api</code> 目录 <code>client.go</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-go" data-lang="go"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">var</span> grpcGeneratorImpl = <span
style="color:#b58900">new</span>(api.GeneratorClientImpl)
</span></span><span style="display:flex;"><span>
@@ -247,7 +250,7 @@ client.go 代码如下</p>
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> logger.<span
style="color:#268bd2">Infof</span>(<span
style="color:#2aa198">&#34;get id result: %v\n&#34;</span>, reply.Id)
</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>dubbogo.yml 如下</p>
+</span></span></code></pre></div><p><code>dubbogo.yml</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="color:#268bd2">dubbo</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">registries</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">nacos</span>:
@@ -258,14 +261,19 @@ client.go 代码如下</p>
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">GeneratorClientImpl</span>:
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">protocol</span>: tri
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">interface</span>: <span
style="color:#2aa198">&#34;&#34;</span>
-</span></span></code></pre></div><p>运行client,获取id,如下:</p>
+</span></span></code></pre></div><p>运行 client,获取 id:</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:#b58900">export</span>
<span style="color:#268bd2">DUBBO_GO_CONFIG_PATH</span><span
style="color:#719e07">=</span>conf/dubbogo.yml
-</span></span><span style="display:flex;"><span>go run
cmd/client.go
-</span></span><span style="display:flex;"><span>……
+</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>go run cmd/client.go
+</span></span></code></pre></div>
+<div class="alert alert-info" role="alert">
+<h4 class="alert-heading">输出结果</h4>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-shell" data-lang="shell"><span
style="display:flex;"><span>……
</span></span><span style="display:flex;"><span>……
</span></span><span
style="display:flex;"><span>2022-12-30T20:59:19.971+0800 INFO
cmd/client.go:44 start to <span style="color:#b58900">test</span> dubbo
</span></span><span
style="display:flex;"><span>2022-12-30T20:59:19.982+0800 INFO
cmd/client.go:52 get id result: aafd9c73-4014-4d67-a67f-5d107105647b
-</span></span></code></pre></div><h2 id="更多">更多</h2>
-<blockquote>
-<p>可以发现注册中心我们是使用nacos,当然,我们也可以使用其他的注册中心,更多的使用方式,可以参考<a
href="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/develop/registry/">注册中心</a></p>
-</blockquote></description></item></channel></rss>
\ No newline at end of file
+</span></span></code></pre></div>
+</div>
+<div class="alert alert-primary" role="alert">
+<h4 class="alert-heading">更多</h4>
+可以发现注册中心我们是使用 nacos,当然,我们也可以使用其他的注册中心,更多的使用方式,可以参考 <a
href="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/develop/registry/">注册中心</a>
+</div></description></item></channel></rss>
\ No newline at end of file
diff --git
a/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/index.html
b/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/index.html
index 8b4a5a7de2..8679b1cc3a 100644
--- a/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/index.html
+++ b/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_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=canonical
href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes [...]
+<!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/overview/mannual/golang-sdk/quickstart/quickstart_triple/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{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="完成一次 RPC 调用"><meta
property="og:description" content="完成一次 RPC 调用"><meta name=twitter:description
content="完成一次 RPC 调用"><meta property="og:url"
content="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/"><meta
property="og:title" content="完成一次 RPC 调用"><meta [...]
<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,10 +670,9 @@
<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://dubbo.apache.org/zh-cn/o [...]
-</span></span><span style=display:flex><span>$ <span
style=color:#b58900>cd</span> quickstart
-</span></span><span style=display:flex><span>$ dubbogo-cli newDemo .
-</span></span><span style=display:flex><span>$ tree .
+<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://dubbo.apache.org/zh-cn/o [...]
+</span></span></code></pre></div><p>使用 dubbogo-cli 工具创建新项目</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>$
dubbogo-cli newDemo .
+</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-bash data-lang=bash><span style=display:flex><span>$ tree .
</span></span><span style=display:flex><span>.
</span></span><span style=display:flex><span>├── api
</span></span><span style=display:flex><span>│ ├── samples_api.pb.go
@@ -714,9 +713,9 @@
</span></span><span style=display:flex><span> <span
style=color:#dc322f>string</span> id <span style=color:#719e07>=</span> <span
style=color:#2aa198>2</span>;
</span></span><span style=display:flex><span> <span
style=color:#dc322f>int32</span> age <span style=color:#719e07>=</span> <span
style=color:#2aa198>3</span>;
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>demo项目中,默认生成了一个接口描述文件,接口服务名为 api.Greeter,
包含两个 RPC 方法,入参为 HelloRequest,返回值为 User,两个方法分别为普通 RPC 方法和 Streaming 类型 RPC
方法。</p><h3 id=12-可选-使用安装好的编译工具编译-pb-接口>1.2 (*可选) 使用安装好的编译工具编译 pb 接口</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-bash data-lang=bash><span style=display:flex><span>$ <span
style=color:#b58900>cd</span> api
+</span></span></code></pre></div><p>demo项目中,默认生成了一个接口描述文件,接口服务名为 api.Greeter,
包含两个 RPC 方法,入参为 HelloRequest,返回值为 User,两个方法分别为普通 RPC 方法和 Streaming 类型 RPC
方法。</p><h3 id=12-编译接口-可选>1.2 编译接口 (可选)</h3><p>使用安装好的编译工具编译 pb 接口。</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:#b58900>cd</span> api
</span></span><span style=display:flex><span>$ protoc --go_out<span
style=color:#719e07>=</span>. --go-triple_out<span
style=color:#719e07>=</span>. ./samples_api.proto
-</span></span></code></pre></div><p>参数意义:<code>--go_out=.</code> 使用上述安装的
<code>protoc-gen-go</code> 插件,生成文件到当前目录,<code>--go-triple_out=.</code>使用上述安装的
<code>protoc-gen-go-triple</code>
插件,生成文件到当前目录。</p><p>执行该指令后,会生成两个文件,分别是helloworld.pb (包含 proto 结构) 和
helloworld_triple.pb.go (包含 triple 协议接口)。</p><p>在 demo 工程中,预先生成好了这两个文件,修改
.proto 文件后重新执行命令生成,即可覆盖。</p><h2 id=2-开启一次rpc调用>2.
开启一次RPC调用</h2><p>项目根目录执行</p><div class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz- [...]
+</span></span></code></pre></div><p>参数意义:<code>--go_out=.</code> 使用上述安装的
<code>protoc-gen-go</code> 插件,生成文件到当前目录,<code>--go-triple_out=.</code>使用上述安装的
<code>protoc-gen-go-triple</code>
插件,生成文件到当前目录。</p><p>执行该指令后,会生成两个文件,分别是helloworld.pb (包含 proto 结构) 和
helloworld_triple.pb.go (包含 triple 协议接口)。</p><p>在 demo 工程中,预先生成好了这两个文件,修改
.proto 文件后重新执行命令生成,即可覆盖。</p><h2 id=2-开启一次-rpc-调用>2. 开启一次 RPC
调用</h2><p>项目根目录执行</p><div class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;- [...]
</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-go data-lang=go><span style=display:flex><span>module helloworld
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span
style=color:#719e07>go</span> <span style=color:#2aa198>1.17</span>
@@ -731,12 +730,12 @@
</span></span><span style=display:flex><span><span
style=color:#268bd2>require</span> (
</span></span><span style=display:flex><span> <span
style=color:#719e07>...</span>
</span></span><span style=display:flex><span>)
-</span></span></code></pre></div><p>先后启动服务端和客户端: 开启两个终端,在 go-server/cmd 和
go-client/cmd 文件夹下分别执行 <code>go run .</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>client
response result: name:<span style=color:#2aa198>"Hello laurence"</span>
id:<span style=color:#2aa198>"12345"</span> age:21
-</span></span></code></pre></div><p>获得调用结果成功</p><h2
id=更多>更多</h2><blockquote><p>细心的读者可以发现,以上例子编写的的服务端可以接受来自客户端的普通RPC、流式RPC调用请求。目前只编写了普通调用的Client,读者可以根据
samples 库中的例子来尝试编写流式客户端和服务端。</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
[...]
+</span></span></code></pre></div><div class="alert alert-info" role=alert><h4
class=alert-heading>输出结果</h4><p>先后启动服务端和客户端: 开启两个终端,在
<code>go-server/cmd</code> 和 <code>go-client/cmd</code> 文件夹下分别执行 <code>go run
.</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>client
response result: name:<span style=color:#2aa198>" [...]
+</span></span></code></pre></div><p>获得调用结果成功。</p></div><div class="alert
alert-primary" role=alert><h4
class=alert-heading>更多</h4>细心的读者可以发现,以上例子编写的的服务端可以接受来自客户端的普通RPC、流式RPC调用请求。目前只编写了普通调用的Client,读者可以根据
samples 库中的例子来尝试编写流式客户端和服务端。</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/golang-sdk/quickstart/quickstart_triple.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=%e5%ae%8c%e6%88%90%e4%b8%80%e6%ac%a1%20RPC%20%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></main><div class="d-none d-xl-block
col-xl-2 td-toc d-print-none"><nav id=TableOfContents><ul><li><a
href=#1-生成-demo-项目>1. 生成 Demo 项目</a><ul><li><a href=#11-查看接口描述文件>1.1
查看接口描述文件</a></li><li><a href=#12-可选-使用安装好的编译工具编译-pb-接口>1.2 (*可选) 使用安装好的编译工具编译
pb 接口</a></li></ul></li><li><a href=#2-开启一次rpc调用>2. 开启一次RPC调用</a></li><li><a
href=#更多>更多</a></li></ul></nav></div></div></div>< [...]
+<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-生成-demo-项目>1. 生成 Demo 项目</a><ul><li><a href=#11-查看接口描述文件>1.1
查看接口描述文件</a></li><li><a href=#12-编译接口-可选>1.2 编译接口 (可选)</a></li></ul></li><li><a
href=#2-开启一次-rpc-调用>2. 开启一次 RPC
调用</a></li></ul></nav></div></div></div></div><footer class="bg-dark py-5 row
d-print-none fo [...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.a4534a01940be8c082c4c0e6777b61df9884f202b61c9519352adb6d1039d5aa.js
integrity="sha256-pFNKAZQL6MCCxMDmd3th35iE8gK2HJUZNSrbbRA51ao="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git
a/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/index.html
b/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/index.html
index 16f7a6ec0a..9c698cb3d7 100644
---
a/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/index.html
+++
b/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/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/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-18 [...]
+<!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/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-18 [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{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="完成一次 RPC
调用自己定义接口的版本"><meta property="og:description" content="完成一次 RPC
调用自己定义接口的版本"><meta name=twitter:description content="完成一次 RPC
调用自己定义接口的版本"><meta property="og:url"
content="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple_with_customize/"><meta
proper [...]
<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,10 +670,9 @@
<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://dubbo.apache.org/zh-cn/o [...]
-(假设的分布式ID,我们不探讨ID的生成方案和算法,这里直接使用uuid代替,只为演示自定义服务的创建)</p><h2 id=2-服务端实现>2.
服务端实现</h2><p>首先使用 dubbogo-cli 创建 IDC 服务</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>dubbogo-cli
newApp IDC
-</span></span><span style=display:flex><span><span
style=color:#b58900>cd</span> IDC
-</span></span><span style=display:flex><span>tree .
+<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://dubbo.apache.org/zh-cn/o [...]
+(假设的分布式ID,我们不探讨ID的生成方案和算法,这里直接使用uuid代替,只为演示自定义服务的创建)</p><h2 id=2-服务端实现>2.
服务端实现</h2><p>首先使用 dubbogo-cli 创建 IDC 服务</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>dubbogo-cli
newApp IDC <span style=color:#719e07>&&</span> <span
style=color:#b58900>cd</span> IDC
+</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-bash data-lang=bash><span style=display:flex><span>tree .
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.
</span></span><span style=display:flex><span>├── Makefile
@@ -708,7 +707,7 @@
</span></span><span style=display:flex><span>└── pkg
</span></span><span style=display:flex><span> └── service
</span></span><span style=display:flex><span> └── service.go
-</span></span></code></pre></div><p>我们编辑proto定义我们的接口</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>"proto3"</span>;
+</span></span></code></pre></div><p>我们编辑 proto 定义我们的接口</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>"proto3"</span>;
</span></span><span style=display:flex><span><span
style=color:#719e07>package</span> api;
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span
style=color:#719e07>option</span> go_package <span style=color:#719e07>=</span>
<span style=color:#2aa198>"./;api"</span>;
@@ -724,10 +723,8 @@
</span></span><span style=display:flex><span><span
style=color:#268bd2>message</span> <span style=color:#268bd2>GenResp</span> {
</span></span><span style=display:flex><span> <span
style=color:#dc322f>string</span> id <span style=color:#719e07>=</span> <span
style=color:#2aa198>1</span>;
</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-bash data-lang=bash><span style=display:flex><span>$ <span
style=color:#b58900>cd</span> api
-</span></span><span style=display:flex><span>$ protoc --go_out<span
style=color:#719e07>=</span>. --go-triple_out<span
style=color:#719e07>=</span>. ./api.proto
-</span></span></code></pre></div><p>我们来调整service
-目录:pkg/service/service.go
+</span></span></code></pre></div><p>生成代码</p><div class=highlight><pre
tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-bash data-lang=bash><span style=display:flex><span>$ <span
style=color:#b58900>cd</span> api <span style=color:#719e07>&&</span>
protoc --go_out<span style=color:#719e07>=</span>. --go-triple_out<span
style=color:#719e07>=</span>. ./api.proto
+</span></span></code></pre></div><p>我们来调整 <code>service</code>
目录:<code>pkg/service/service.go</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-go data-lang=go><span style=display:flex><span><span
style=color:#268bd2>type</span> GeneratorServerImpl <span
style=color:#268bd2>struct</span> {
</span></span><span style=display:flex><span> api.UnimplementedGeneratorServer
</span></span><span style=display:flex><span>}
@@ -745,7 +742,7 @@
</span></span><span style=display:flex><span><span
style=color:#268bd2>func</span> <span style=color:#268bd2>init</span>() {
</span></span><span style=display:flex><span> config.<span
style=color:#268bd2>SetProviderService</span>(<span
style=color:#719e07>&</span>GeneratorServerImpl{})
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>同时,我们调整conf/dubbogo.yaml中的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-yaml data-lang=yaml><span style=display:flex><span><span
style=color:#268bd2>dubbo</span>:
+</span></span></code></pre></div><p>同时,我们调整 <code>conf/dubbogo.yaml</code> 中的
<code>provider</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=color:#268bd2>dubbo</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>registries</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>nacos</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>protocol</span>: nacos
@@ -758,13 +755,11 @@
</span></span><span style=display:flex><span> <span
style=color:#268bd2>services</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>GeneratorServerImpl</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>interface</span>: <span
style=color:#2aa198>""</span> <span style=color:#586e75># read from
stub</span>
-</span></span></code></pre></div><p>我们需要拉起一个依赖的注册中心,nacos,如果你有现成的,本步骤可以忽略,我们使用docker来快速启动一个nacos,</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>git clone
https://github.com/nacos-group/nacos-docker.git
-</span></span><span style=display:flex><span><span
style=color:#b58900>cd</span> nacos-docker
-</span></span><span style=display:flex><span>docker-compose -f
example/standalone-derby.yaml up
-</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-go data-lang=go><span style=display:flex><span>export
DUBBO_GO_CONFIG_PATH=conf<span style=color:#719e07>/</span>dubbogo.yaml
-</span></span><span style=display:flex><span><span
style=color:#719e07>go</span> run cmd<span
style=color:#719e07>/</span>app.<span style=color:#719e07>go</span>
-</span></span></code></pre></div><p>打开nacos的控制台,可以看到服务已经注册
-<img src=/imgs/docs3-v2/golang-sdk/quickstart/nacos.jpg alt=img></p><h2
id=2-客户端使用>2.
客户端使用</h2><p>首先,我们可以共享我们的服务端的api给客户端,并生成相关的代码(这里可以根据实际项目需要,共享共享proto,每个consumer自行生成代码,或统一生成sdk后给依赖的服务引入)
+</span></span></code></pre></div><p>我们需要拉起一个依赖的注册中心 nacos,如果你有现成的,本步骤可以忽略,我们使用
docker 来快速启动一个 nacos</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>git clone
https://github.com/nacos-group/nacos-docker.git <span
style=color:#719e07>&&</span> <span style=color:#b58900>cd</span>
nacos-docker
+</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-bash data-lang=bash><span
style=display:flex><span>docker-compose -f example/standalone-derby.yaml up
+</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-go data-lang=go><span style=display:flex><span>export
DUBBO_GO_CONFIG_PATH=conf<span style=color:#719e07>/</span>dubbogo.yaml
+</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>go
run cmd/app.go
+</span></span></code></pre></div><p>打开 nacos 的控制台,可以看到服务已经注册</p><p><img
src=/imgs/docs3-v2/golang-sdk/quickstart/nacos.jpg alt=img></p><h2
id=2-客户端使用>2. 客户端使用</h2><p>首先,我们可以共享我们的服务端的 api 给客户端,并生成相关的代码(这里可以根据实际项目需要,共享
proto,每个 consumer 自行生成代码,或统一生成 sdk 后给依赖的服务引入)
客户端目录如下:</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></span><span style=display:flex><span>├── api
</span></span><span style=display:flex><span>│ ├── api.pb.go
@@ -776,8 +771,7 @@
</span></span><span style=display:flex><span>│ └── dubbogo.yml
</span></span><span style=display:flex><span>├── go.mod
</span></span><span style=display:flex><span>├── go.sum
-</span></span></code></pre></div><p>api目录同服务端的api目录
-client.go 代码如下</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>
+</span></span></code></pre></div><p><code>api</code> 目录同服务端的 <code>api</code>
目录 <code>client.go</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-go data-lang=go><span style=display:flex><span>
</span></span><span style=display:flex><span><span
style=color:#268bd2>var</span> grpcGeneratorImpl = <span
style=color:#b58900>new</span>(api.GeneratorClientImpl)
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span
style=color:#268bd2>func</span> <span style=color:#268bd2>main</span>() {
@@ -796,7 +790,7 @@ client.go 代码如下</p><div class=highlight><pre tabindex=0
style=color:#93a1
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span> logger.<span
style=color:#268bd2>Infof</span>(<span style=color:#2aa198>"get id result:
%v\n"</span>, reply.Id)
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>dubbogo.yml 如下</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></code></pre></div><p><code>dubbogo.yml</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=color:#268bd2>dubbo</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>registries</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>nacos</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>protocol</span>: nacos
@@ -806,17 +800,17 @@ client.go 代码如下</p><div class=highlight><pre tabindex=0
style=color:#93a1
</span></span><span style=display:flex><span> <span
style=color:#268bd2>GeneratorClientImpl</span>:
</span></span><span style=display:flex><span> <span
style=color:#268bd2>protocol</span>: tri
</span></span><span style=display:flex><span> <span
style=color:#268bd2>interface</span>: <span
style=color:#2aa198>""</span>
-</span></span></code></pre></div><p>运行client,获取id,如下:</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:#b58900>export</span> <span
style=color:#268bd2>DUBBO_GO_CONFIG_PATH</span><span
style=color:#719e07>=</span>conf/dubbogo.yml
-</span></span><span style=display:flex><span>go run cmd/client.go
-</span></span><span style=display:flex><span>……
+</span></span></code></pre></div><p>运行 client,获取 id:</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:#b58900>export</span> <span
style=color:#268bd2>DUBBO_GO_CONFIG_PATH</span><span
style=color:#719e07>=</span>conf/dubbogo.yml
+</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>go
run cmd/client.go
+</span></span></code></pre></div><div class="alert alert-info" role=alert><h4
class=alert-heading>输出结果</h4><div class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell><span style=display:flex><span>……
</span></span><span style=display:flex><span>……
</span></span><span style=display:flex><span>2022-12-30T20:59:19.971+0800
INFO cmd/client.go:44 start to <span style=color:#b58900>test</span>
dubbo
</span></span><span style=display:flex><span>2022-12-30T20:59:19.982+0800
INFO cmd/client.go:52 get id result:
aafd9c73-4014-4d67-a67f-5d107105647b
-</span></span></code></pre></div><h2
id=更多>更多</h2><blockquote><p>可以发现注册中心我们是使用nacos,当然,我们也可以使用其他的注册中心,更多的使用方式,可以参考<a
href=/zh-cn/overview/mannual/golang-sdk/tutorial/develop/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
[...]
+</span></span></code></pre></div></div><div class="alert alert-primary"
role=alert><h4 class=alert-heading>更多</h4>可以发现注册中心我们是使用
nacos,当然,我们也可以使用其他的注册中心,更多的使用方式,可以参考 <a
href=/zh-cn/overview/mannual/golang-sdk/tutorial/develop/registry/>注册中心</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/golang-sdk/quickstart/quickstart_triple_with_customize.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-start
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=%e5%ae%8c%e6%88%90%e4%b8%80%e6%ac%a1%e8%87%aa%e5%b7%b1%e5%ae%9a%e4%b9%89%e6%8e%a5%e5%8f%a3%e7%9a%84%e7%89%88%e6%9c%ac%20RPC%20%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></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></li><li><a href=#2-服务端实现>2. 服务端实现</a></li><li><a
href=#2-客户端使用>2. 客户端使用</a></li><li><a
href=#更多>更多</a></li></ul></nav></div></div></div></div><footer class="bg-dark
py-5 row d-print-none footer-margin-0"><div class="container-fluid
mx-sm-5"><div class [...]
+<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></li><li><a href=#2-服务端实现>2. 服务端实现</a></li><li><a
href=#2-客户端使用>2. 客户端使用</a></li></ul></nav></div></div></div></div><footer
class="bg-dark py-5 row d-print-none footer-margin-0"><div
class="container-fluid mx-sm-5"><div class=row><div class="col-6 co [...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.a4534a01940be8c082c4c0e6777b61df9884f202b61c9519352adb6d1039d5aa.js
integrity="sha256-pFNKAZQL6MCCxMDmd3th35iE8gK2HJUZNSrbbRA51ao="
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/dubbo/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/dubbo/index.html
index f60d719fe0..9848afeb6e 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/dubbo/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/dubbo/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/overview/mannual/java-sdk/reference-manual/protocol/dubbo/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png size [...]
+<!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/overview/mannual/java-sdk/reference-manual/protocol/dubbo/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png size [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{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协议"><meta
property="og:description" content="Dubbo协议"><meta name=twitter:description
content="Dubbo协议"><meta property="og:url"
content="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/dubbo/"><meta
property="og:title" content="Dubbo协议"><meta name=twitter:ti [...]
<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://dubbo.apache.org/zh-cn/o [...]
+<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://dubbo.apache.org/zh-cn/o [...]
</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-xml data-lang=xml><span style=display:flex><span><span
style=color:#268bd2><dubbo:provider</span> protocol=<span
style=color:#2aa198>"dubbo"</span> <span
style=color:#268bd2>/></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-xml data-lang=xml><span style=display:flex><span><span
style=color:#268bd2><dubbo:service</span> interface=<span
style=color:#2aa198>"..."</span> protocol=<span
style=color:#2aa198>"dubbo"</span> <span
style=color:#268bd2>/></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-xml data-lang=xml><span style=display:flex><span><span
style=color:#268bd2><dubbo:protocol</span> id=<span
style=color:#2aa198>"dubbo1"</span> name=<span
style=color:#2aa198>"dubbo"</span> port=<span
style=color:#2aa198>"20880"</span> <span
style=color:#268bd2>/></span>
@@ -680,7 +680,7 @@
</span></span><span style=display:flex><span><span
style=color:#268bd2><dubbo:reference</span> interface=<span
style=color:#2aa198>"..."</span> connections=<span
style=color:#2aa198>"1"</span><span style=color:#268bd2>/></span>
</span></span></code></pre></div><ul><li><code><dubbo:service
connections="0"></code> 或 <code><dubbo:reference connections="0"></code>
表示该服务使用 JVM 共享长连接。<strong>缺省</strong></li><li><code><dubbo:service
connections="1"></code> 或 <code><dubbo:reference connections="1"></code>
表示该服务使用独立长连接。</li><li><code><dubbo:service connections="2"></code>
或<code><dubbo:reference connections="2"></code>
表示该服务使用独立两条长连接。</li></ul><p>为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护。</p><div
class=h [...]
</span></span></code></pre></div><h2 id=常见问题>常见问题</h2><h3
id=q1>Q1</h3><p>为什么要消费者比提供者个数多?</p><p>因 dubbo 协议采用单一长连接,假设网络为千兆网卡
<strong>1024Mbit=128MByte</strong>,根据测试经验数据每条连接最多只能压满
7MByte(不同的环境可能不一样,供参考),理论上 1 个服务提供者需要 20 个服务消费者才能压满网卡。</p><h3
id=q2>Q2</h3><p>为什么不能传大包?</p><p>因 dubbo 协议采用单一长连接,如果每次请求的数据包大小为
500KByte,假设网络为千兆网卡 <strong>1024Mbit=128MByte</strong>,每条连接最大 7MByte
(不同的环境可能不一样),单个服务提供者的 TPS(每秒处理事务数)最大为:128MByte / 500KByte = 262。单个消费者调用单个服务提供者的
TPS (每秒处理事务数)最大为:7MByte / 500KByte = 14。 [...]
-<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/dubbo.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=Dubbo%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=#设置默认协议>设置默认协议</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/protocol/index.xml
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/index.xml
index 6dd4e7de08..56212cfce6 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
@@ -213,7 +213,7 @@ gRPC 的优势由HTTP2 和 Protobuf 继承而来。</p>
<ul>
<li>参数及返回值需实现 <code>Serializable</code> 接口</li>
<li>参数及返回值不能自定义实现 <code>List</code>, <code>Map</code>,
<code>Number</code>, <code>Date</code>, <code>Calendar</code>
等接口,只能用 JDK 自带的实现,因为 hessian 会做特殊处理,自定义实现类中的属性值都会丢失。</li>
-<li>Hessian
序列化,只传成员属性值和值的类型,不传方法或静态变量,兼容情况<strong>吴亚军提供</strong></li>
+<li>Hessian
序列化,只传成员属性值和值的类型,不传方法或静态变量,兼容情况由<strong>吴亚军提供</strong></li>
</ul>
<table>
<thead>
@@ -1459,7 +1459,9 @@ return context;
</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&lt;version&gt;</span>1.0.0<span
style="color:#268bd2">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">&lt;/dependency&gt;</span>
</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-sh" data-lang="sh"><span
style="display:flex;"><span>java
-Dsun.rmi.transport.tcp.responseTimeout<span
style="color:#719e07">=</span><span style="color:#2aa198">3000</span>
-</span></span></code></pre></div><p>更多 RMI 优化参数请查看 <a
href="https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html">JDK
文档</a></p>
+</span></span></code></pre></div><blockquote>
+<p>更多 RMI 优化参数请查看 <a
href="https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html">JDK
文档</a></p>
+</blockquote>
<h3 id="接口说明">接口说明</h3>
<p>如果服务接口继承了 <code>java.rmi.Remote</code> 接口,可以和原生 RMI 互操作,即:</p>
<ul>
@@ -1484,21 +1486,21 @@ return context;
</span></span><span style="display:flex;"><span><span
style="color:#268bd2">&lt;dubbo:service</span> interface=<span
style="color:#2aa198">&#34;...&#34;</span> protocol=<span
style="color:#2aa198">&#34;rmi1&#34;</span> <span
style="color:#268bd2">/&gt;</span>
</span></span></code></pre></div><p><strong>Spring
兼容性</strong></p>
<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-xml" data-lang="xml"><span
style="display:flex;"><span><span
style="color:#268bd2">&lt;dubbo:protocol</span> name=<span
style="color:#2aa198">&#34;rmi&#34;</span> codec=<span
style="color:#2aa198">&#34;spring&#34;</span> <span
style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div><blockquote>
-<ul>
-<li><strong>如果正在使用 RMI 提供服务给外部访问,</strong> 公司内网环境应该不会有攻击风险。</li>
-</ul>
-</blockquote>
-<blockquote>
-<ul>
-<li><strong>同时应用里依赖了老的 common-collections 包的情况下,</strong> dubbo
不会依赖这个包,请排查自己的应用有没有使用。</li>
-</ul>
-</blockquote>
-<blockquote>
+</span></span></code></pre></div>
+<div class="alert alert-primary" role="alert">
+<h4 class="alert-heading">注意</h4>
<ul>
-<li><strong>存在反序列化安全风险。</strong> 请检查应用:将 commons-collections3 请升级到
<a
href="https://commons.apache.org/proper/commons-collections/release_3_2_2.html">3.2.2</a>;将
commons-collections4 请升级到 <a
href="https://commons.apache.org/proper/commons-collections/release_4_1.html">4.1</a>。新版本的
commons-collections 解决了该问题。</li>
+<li>
+<p><strong>如果正在使用 RMI 提供服务给外部访问,</strong> 公司内网环境应该不会有攻击风险。</p>
+</li>
+<li>
+<p><strong>同时应用里依赖了老的 common-collections 包的情况下,</strong> dubbo
不会依赖这个包,请排查自己的应用有没有使用。</p>
+</li>
+<li>
+<p><strong>存在反序列化安全风险。</strong> 请检查应用:将 commons-collections3 请升级到
<a
href="https://commons.apache.org/proper/commons-collections/release_3_2_2.html">3.2.2</a>;将
commons-collections4 请升级到 <a
href="https://commons.apache.org/proper/commons-collections/release_4_1.html">4.1</a>。新版本的
commons-collections 解决了该问题。</p>
+</li>
</ul>
-</blockquote></description></item><item><title>Overview:
Redis协议</title><link>https://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://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/redis/</guid><description>
+</div></description></item><item><title>Overview:
Redis协议</title><link>https://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://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>
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/rmi/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/rmi/index.html
index 206223956b..5cd843a11e 100644
--- a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/rmi/index.html
+++ b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/rmi/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/overview/mannual/java-sdk/reference-manual/protocol/rmi/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes= [...]
+<!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/overview/mannual/java-sdk/reference-manual/protocol/rmi/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.114.1"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes= [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{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="Rmi协议"><meta
property="og:description" content="Rmi协议"><meta name=twitter:description
content="Rmi协议"><meta property="og:url"
content="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/rmi/"><meta
property="og:title" content="Rmi协议"><meta name=twitter:title conten [...]
<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="
[...]
@@ -676,7 +676,7 @@
</span></span><span style=display:flex><span> <span
style=color:#268bd2><version></span>1.0.0<span
style=color:#268bd2></version></span>
</span></span><span style=display:flex><span><span
style=color:#268bd2></dependency></span>
</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-sh data-lang=sh><span style=display:flex><span>java
-Dsun.rmi.transport.tcp.responseTimeout<span style=color:#719e07>=</span><span
style=color:#2aa198>3000</span>
-</span></span></code></pre></div><p>更多 RMI 优化参数请查看 <a
href=https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html>JDK
文档</a></p><h3 id=接口说明>接口说明</h3><p>如果服务接口继承了 <code>java.rmi.Remote</code>
接口,可以和原生 RMI 互操作,即:</p><ul><li>提供者用 Dubbo 的 RMI 协议暴露服务,消费者直接用标准 RMI
接口调用,</li><li>或者提供方用标准 RMI 暴露服务,消费方用 Dubbo 的 RMI 协议调用。</li></ul><p>如果服务接口没有继承
<code>java.rmi.Remote</code> 接口:</p><ul><li>缺省 Dubbo 将自动生成一个
<code>com.xxx.XxxService$Remote</code> 的接口,并继承 <code>java.rmi.Remote [...]
+</span></span></code></pre></div><blockquote><p>更多 RMI 优化参数请查看 <a
href=https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html>JDK
文档</a></p></blockquote><h3 id=接口说明>接口说明</h3><p>如果服务接口继承了
<code>java.rmi.Remote</code> 接口,可以和原生 RMI 互操作,即:</p><ul><li>提供者用 Dubbo 的 RMI
协议暴露服务,消费者直接用标准 RMI 接口调用,</li><li>或者提供方用标准 RMI 暴露服务,消费方用 Dubbo 的 RMI
协议调用。</li></ul><p>如果服务接口没有继承 <code>java.rmi.Remote</code> 接口:</p><ul><li>缺省
Dubbo 将自动生成一个 <code>com.xxx.XxxService$Remote</code> 的接口, [...]
</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:provider</span> protocol=<span
style=color:#2aa198>"rmi"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p><strong>设置某个服务的协议</strong></p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-xml data-lang=xml><span style=display:flex><span><span
style=color:#268bd2><dubbo:service</span> interface=<span
style=color:#2aa198>"..."</span> protocol=<span
style=color:#2aa198>"rmi"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p><strong>多端口</strong></p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-xml data-lang=xml><span style=display:flex><span><span
style=color:#268bd2><dubbo:protocol</span> id=<span
style=color:#2aa198>"rmi1"</span> name=<span
style=color:#2aa198>"rmi"</span> port=<span
style=color:#2aa198>"1099"</span> <span style=color:#268bd2>/></span>
@@ -684,8 +684,8 @@
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span
style=color:#268bd2><dubbo:service</span> interface=<span
style=color:#2aa198>"..."</span> protocol=<span
style=color:#2aa198>"rmi1"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p><strong>Spring 兼容性</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:protocol</span> name=<span
style=color:#2aa198>"rmi"</span> codec=<span
style=color:#2aa198>"spring"</span> <span
style=color:#268bd2>/></span>
-</span></span></code></pre></div><blockquote><ul><li><strong>如果正在使用 RMI
提供服务给外部访问,</strong>
公司内网环境应该不会有攻击风险。</li></ul></blockquote><blockquote><ul><li><strong>同时应用里依赖了老的
common-collections 包的情况下,</strong> dubbo
不会依赖这个包,请排查自己的应用有没有使用。</li></ul></blockquote><blockquote><ul><li><strong>存在反序列化安全风险。</strong>
请检查应用:将 commons-collections3 请升级到 <a
href=https://commons.apache.org/proper/commons-collections/release_3_2_2.html>3.2.2</a>;将
commons-collections4 请升级到 <a href=https://commons.apache.org [...]
-<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><ul><li><p><strong>如果正在使用 RMI
提供服务给外部访问,</strong> 公司内网环境应该不会有攻击风险。</p></li><li><p><strong>同时应用里依赖了老的
common-collections 包的情况下,</strong> dubbo
不会依赖这个包,请排查自己的应用有没有使用。</p></li><li><p><strong>存在反序列化安全风险。</strong> 请检查应用:将
commons-collections3 请升级到 <a
href=https://commons.apache.org/proper/commons-collections/release_3_2_2.html>3.2.2</a>;将
commons-collections4 请升级到 <a href=https://common [...]
+<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/rmi.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=Rmi%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></ul></li></ul></nav></div></div></div></div><footer
class="bg-dark py-5 row d-print-none footer-margin-0"><d [...]
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 385c0e2a45..a671a8484b 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-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ 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-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ No newline at end of file