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 b6f30355d1 deploy: 2027b15ccb9f6cbd2899ed8ef15716df2c2f4a1c
b6f30355d1 is described below
commit b6f30355d1f40a52c6f8224e9de8a912c0cb49b6
Author: AlbumenJ <[email protected]>
AuthorDate: Thu Jan 19 12:46:10 2023 +0000
deploy: 2027b15ccb9f6cbd2899ed8ef15716df2c2f4a1c
---
sitemap.xml | 2 +-
zh/docs3-v2/java-sdk/faq/3/2/index.html | 6 +-
zh/docs3-v2/java-sdk/faq/3/index.xml | 7 +-
zh/docs3-v2/rust-sdk/index.xml | 122 +++++--------------------
zh/docs3-v2/rust-sdk/unix-transport/index.html | 118 +++++-------------------
zh/sitemap.xml | 2 +-
6 files changed, 55 insertions(+), 202 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index fc28dc1d19..6c02fb3abb 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/sitemap.xml</loc><lastmod>2023-01-19T20:41:23+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-01-17T14:11:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://dubbo.apache.org/zh/sitemap.xml</loc><lastmod>2023-01-19T20:42:34+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-01-17T14:11:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh/docs3-v2/java-sdk/faq/3/2/index.html
b/zh/docs3-v2/java-sdk/faq/3/2/index.html
index 948a8b6972..1becfe576a 100644
--- a/zh/docs3-v2/java-sdk/faq/3/2/index.html
+++ b/zh/docs3-v2/java-sdk/faq/3/2/index.html
@@ -1,10 +1,10 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta
name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX,
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta
name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX,
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
as=style><link
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin=anonymous></script>
<link rel=stylesheet
href=https://cdn.jsdelivr.net/npm/@docsearch/css@3></head><body
class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand
href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path
class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05
25.45-22.11V7.25H68.46zm21.24-28h8.6V31H89.7zm0 [...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh/docs3-v2/java-sdk/faq/3/2.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+Edit+the+%22front+matter%22+section+at
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=3-2%20-%20%e5%8f%91%e5%b8%83%e6%88%96%e6%8e%a8%e9%80%81%e6%9c%8d%e5%8a%a1%e5%a4%b1%e8%b4%a5"
target=_blank><i class="fab fa-github fa-fw"></i> 提交文档问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div></aside><main class="col-12 col-md-9
col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class="d-none d-md-block
d-print-none"><ol class="breadcrumb spb-1"><li class=breadcrumb-item><a
href=https://dubbo.apache.org/zh/docs3-v2/>SDK 手册</a></li><li
class=breadcrumb-item><a
href=https://dubbo.apache.org/zh/docs3-v2/java-sdk/>Java</a></li><li
class=breadcrumb-item><a href=h [...]
-<button class="btn btn-primary mb-4 feedback--answer
feedback--answer-no">No</button><p class="feedback--response
feedback--response-yes">Glad to hear it! Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to
hear that. Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback
[...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav
id=TableOfContents><ul><li><ul><li><a href=#可能的原因>可能的原因</a></li><li><a
href=#排查和解决步骤>排查和解决步骤</a></li></ul></li></ul></nav></div></aside><main
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb
class="d-none d-md-block d-print-none"><ol class="breadcrumb spb-1"><li
class=breadcrumb-item><a href=https://dubbo.apache.org/zh/doc [...]
+<button class="btn btn-primary mb-4 feedback--answer
feedback--answer-no">No</button><p class="feedback--response
feedback--response-yes">Glad to hear it! Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to
hear that. Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback
[...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js
integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh/docs3-v2/java-sdk/faq/3/index.xml
b/zh/docs3-v2/java-sdk/faq/3/index.xml
index 5a291787d8..80aedb1e7b 100644
--- a/zh/docs3-v2/java-sdk/faq/3/index.xml
+++ b/zh/docs3-v2/java-sdk/faq/3/index.xml
@@ -9,18 +9,17 @@
<li>检查提供方和消费方双方的协议配置。</li>
<li>更新注册中心的版本。</li>
</ol></description></item><item><title>Docs3-V2: 3-2 -
发布或推送服务失败</title><link>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/2/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/2/</guid><description>
-<h2 id="可能的原因">可能的原因</h2>
+<h3 id="可能的原因">可能的原因</h3>
<ol>
<li>注册中心无法连接。</li>
<li>注册中心无法对外提供服务。</li>
</ol>
-<h2 id="排查和解决步骤">排查和解决步骤</h2>
+<h3 id="排查和解决步骤">排查和解决步骤</h3>
<ol>
<li>服务与注册中心网络是否正常。</li>
<li>注册中心是否正常启动,并可通过第三方工具进行连接。</li>
<li>服务引用的版本与注册中心的版本是否存在版本兼容性问题。</li>
-</ol>
-<p style="margin-top: 3rem;">
</p></description></item><item><title>Docs3-V2: 3-3 -
通过Javassist生成字节码失败</title><link>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/3/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/3/</guid><description>
+</ol></description></item><item><title>Docs3-V2: 3-3 -
通过Javassist生成字节码失败</title><link>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/3/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/3/</guid><description>
<h2 id="重要提醒">重要提醒</h2>
<p>该错误码的意义已经调整。对于 Dubbo 3.1.4、3.2.0-beta.3 及其之前的版本的该错误码的出错,请参考错误码 <a
href="https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/3/8/">3-8</a>。</p>
<p>(该错误码目前空缺)</p>
diff --git a/zh/docs3-v2/rust-sdk/index.xml b/zh/docs3-v2/rust-sdk/index.xml
index 32ff1f2e1c..6db814467e 100644
--- a/zh/docs3-v2/rust-sdk/index.xml
+++ b/zh/docs3-v2/rust-sdk/index.xml
@@ -575,95 +575,24 @@
</span></span><span style="display:flex;"><span>trailer:
Some<span style="color:#719e07">(</span>Metadata <span
style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;</span>, <span
style="color:#2aa198">&#34;grpc-status&#34;</span>: <span
style="color:#2aa198">&#34;0&#34;< [...]
</span></span></code></pre></div></description></item><item><title>Docs3-V2:
使用Unix套接字连接器通信</title><link>https://dubbo.apache.org/zh/docs3-v2/rust-sdk/unix-transport/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh/docs3-v2/rust-sdk/unix-transport/</guid><description>
<p>本文重点讲解 Dubbo Rust Triple 协议使用Unix 套接,请先查看 <a
href="../quick-start">Quick Start</a> 了解 Dubbo Rust 基本使用,在此查看本文的<a
href="https://github.com/apache/dubbo-rust/tree/main/examples/greeter">完整示例</a>。</p>
-<h2 id="1-triple-使用-unix-套接字连接器">1 Triple 使用 Unix 套接字连接器</h2>
-<p>TripleServer 调整如下。</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-rust" data-lang="rust"><span
style="display:flex;"><span><span style="color:#586e75">//
dubbo/src/protocol/triple/triple_server.rs
-</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"></span><span style="color:#719e07">impl</span>
TripleServer {
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span style="color:#719e07">fn</span>
<span style="color:#268bd2">new</span>(names: <span
style="color:#b58900">Vec</span><span
style="color:#719e07">&lt;</span><span
style="color:#b58900">String</span><span
style="color:#719e07">&gt;</span>) -&gt; <span
style="color:#268bd2">TripleServer</span> {
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">Self</span> {
-</span></span><span style="display:flex;"><span> service_names:
<span style="color:#268bd2">names</span>,
-</span></span><span style="display:flex;"><span> s: <span
style="color:#268bd2">DubboServer</span>::new(),
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span
style="color:#719e07">async</span> <span
style="color:#719e07">fn</span> <span
style="color:#268bd2">serve</span>(<span
style="color:#719e07">mut</span> <span
style="color:#268bd2">self</span>, url: <span
style="color:#b58900">String</span>) {
-</span></span><span style="display:flex;"><span> {
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">let</span> lock <span
style="color:#719e07">=</span> <span
style="color:#719e07">super</span>::TRIPLE_SERVICES.read().unwrap();
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">for</span> name <span
style="color:#719e07">in</span> <span
style="color:#268bd2">self</span>.service_names.iter() {
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">if</span> lock.get(name).is_none() {
-</span></span><span style="display:flex;"><span>
tracing::warn<span style="color:#719e07">!</span>(<span
style="color:#2aa198">&#34;service ({}) not register&#34;</span>,
name);
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">continue</span>;
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">let</span> svc <span
style="color:#719e07">=</span> lock.get(name).unwrap();
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>.s <span
style="color:#719e07">=</span> <span
style="color:#268bd2">self</span>.s.add_service(name.clone(), svc.clone());
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">let</span> uri <span
style="color:#719e07">=</span> <span
style="color:#719e07">match</span> http::Uri::from_str(<span
style="color:#719e07">&amp;</span>url) {
-</span></span><span style="display:flex;"><span> <span
style="color:#b58900">Ok</span>(v) <span
style="color:#719e07">=&gt;</span> v,
-</span></span><span style="display:flex;"><span> <span
style="color:#b58900">Err</span>(err) <span
style="color:#719e07">=&gt;</span> {
-</span></span><span style="display:flex;"><span>
tracing::error<span style="color:#719e07">!</span>(<span
style="color:#2aa198">&#34;http uri parse error: {}, url:
{:?}&#34;</span>, err, <span
style="color:#719e07">&amp;</span>url);
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span>;
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> };
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">let</span> authority <span
style="color:#719e07">=</span> <span
style="color:#719e07">match</span> uri.authority() {
-</span></span><span style="display:flex;"><span> <span
style="color:#b58900">Some</span>(v) <span
style="color:#719e07">=&gt;</span> v.to_owned(),
-</span></span><span style="display:flex;"><span> <span
style="color:#b58900">None</span> <span
style="color:#719e07">=&gt;</span> {
-</span></span><span style="display:flex;"><span>
tracing::error<span style="color:#719e07">!</span>(<span
style="color:#2aa198">&#34;http authority is none&#34;</span>);
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span>;
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> };
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>.s
-</span></span><span style="display:flex;"><span>
.with_listener(<span
style="color:#2aa198">&#34;unix&#34;</span>.to_string())
-</span></span><span style="display:flex;"><span> .serve(
-</span></span><span style="display:flex;"><span> authority
-</span></span><span style="display:flex;"><span> .to_string()
-</span></span><span style="display:flex;"><span> .to_socket_addrs()
-</span></span><span style="display:flex;"><span> .unwrap()
-</span></span><span style="display:flex;"><span> .next()
-</span></span><span style="display:flex;"><span> .unwrap(),
-</span></span><span style="display:flex;"><span> )
-</span></span><span style="display:flex;"><span> .<span
style="color:#719e07">await</span>
-</span></span><span style="display:flex;"><span> .unwrap();
-</span></span><span style="display:flex;"><span> }
-</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-使用-clientconnection-使用-unix-套接字连接器编写逻辑">2 使用 client/connection 使用 Unix
套接字连接器编写逻辑</h2>
+<h2 id="1-使用-unix-套接字连接器-说明">1 使用 Unix 套接字连接器 说明</h2>
+<blockquote>
+<p>#[cfg(any(target_os = &ldquo;macos&rdquo;,
target_os=&ldquo;unix&rdquo;))] 当操作系统符合cfg配置时,unix
模块会被编译使用,否则无法使用</p>
+</blockquote>
+<h2 id="2-使用-clientconnection-使用-unix-套接字连接器编写逻辑">2 使用 client/connection 使用
Unix 套接字连接器编写逻辑</h2>
<h3 id="21-编写-client-端">2.1 编写 Client 端</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-rust" data-lang="rust"><span
style="display:flex;"><span><span style="color:#586e75">//
examples/echo/src/echo/client.rs
-</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"></span><span style="color:#719e07">..</span>.
-</span></span><span style="display:flex;"><span><span
style="color:#268bd2">let</span> <span
style="color:#719e07">mut</span> cli <span
style="color:#719e07">=</span> EchoClient::connect(<span
style="color:#2aa198">&#34;unix://0.0.0.0:8888&#34;</span>.to_string());
-</span></span><span style="display:flex;"><span><span
style="color:#719e07">..</span>.
-</span></span></code></pre></div><h3
id="22-编写-connection">2.2 编写 connection</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-rust" data-lang="rust"><span
style="display:flex;"><span><span style="color:#586e75">//
dubbo/src/triple/client/connection.rs
-</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"></span><span style="color:#719e07">impl</span>
Connection {
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span style="color:#719e07">fn</span>
<span style="color:#268bd2">new</span>() -&gt; <span
style="color:#268bd2">Self</span> {
-</span></span><span style="display:flex;"><span> Connection {
-</span></span><span style="display:flex;"><span> host: <span
style="color:#268bd2">hyper</span>::Uri::default(),
-</span></span><span style="display:flex;"><span> connector:
<span style="color:#2aa198">&#34;unix&#34;</span>.to_string(),
-</span></span><span style="display:flex;"><span> builder: <span
style="color:#268bd2">Builder</span>::new(),
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span style="color:#719e07">fn</span>
<span style="color:#268bd2">with_connector</span><span
style="color:#719e07">&lt;</span>C<span
style="color:#719e07">&gt;</span>(<span
style="color:#719e07">mut</span> <span
style="color:#268bd2">self</span>, connector: <span
style="color:#b58900">String</span>) -&gt; <span style="color:#26
[...]
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>.connector <span
style="color:#719e07">=</span> connector;
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span style="color:#719e07">fn</span>
<span style="color:#268bd2">with_host</span>(<span
style="color:#719e07">mut</span> <span
style="color:#268bd2">self</span>, uri: <span
style="color:#268bd2">hyper</span>::Uri) -&gt; <span
style="color:#268bd2">Self</span> {
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>.host <span
style="color:#719e07">=</span> uri;
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span
style="color:#719e07">pub</span> <span style="color:#719e07">fn</span>
<span style="color:#268bd2">with_builder</span>(<span
style="color:#719e07">mut</span> <span
style="color:#268bd2">self</span>, builder: <span
style="color:#268bd2">Builder</span>) -&gt; <span
style="color:#268bd2">Self</span> {
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>.builder <span
style="color:#719e07">=</span> builder;
-</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">self</span>
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span>}
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75">// 使用 ClientBuilder 初始化 Client
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"></span><span style="color:#268bd2">let</span>
builder <span style="color:#719e07">=</span>
ClientBuilder::new().with_connector(<span
style="color:#2aa198">&#34;unix&#34;</span>).with_host(<span
style="color:#2aa198">&#34;unix://127.0.0.1:8888&#34;</span>);
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">let</span> <span
style="color:#719e07">mut</span> cli <span
style="color:#719e07">=</span> EchoClient::build(builder);
+</span></span></code></pre></div><h3 id="22-编写-server-端">2.2
编写 Server 端</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-rust" data-lang="rust"><span
style="display:flex;"><span><span style="color:#586e75">//
examples/echo/src/echo/server.rs
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75">// 通过 serverbuilder 来初始化 Server
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"></span><span style="color:#268bd2">let</span>
builder <span style="color:#719e07">=</span> ServerBuilder::new()
+</span></span><span style="display:flex;"><span>
.with_listener(<span
style="color:#2aa198">&#34;unix&#34;</span>.to_string())
+</span></span><span style="display:flex;"><span>
.with_service_names(vec![<span
style="color:#2aa198">&#34;grpc.examples.echo.Echo&#34;</span>.to_string()])
+</span></span><span style="display:flex;"><span>
.with_addr(<span
style="color:#2aa198">&#34;127.0.0.1:8888&#34;</span>);
+</span></span><span
style="display:flex;"><span>builder.build().serve().<span
style="color:#719e07">await</span>.unwrap();
</span></span></code></pre></div><h2 id="3-运行示例">3
运行示例</h2>
<ol>
<li>编译</li>
@@ -674,27 +603,26 @@
</ol>
<p>执行<code>cargo run --bin
echo-server</code>来运行server,如上文dubbo.yaml所配置,server会监听8888端口,并以triple协议提供RPC服务:</p>
<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-sh" data-lang="sh"><span style="display:flex;"><span>$
cargo run --bin echo-server
-</span></span><span
style="display:flex;"><span>2022-12-05T10:40:20.829798Z INFO
dubbo::framework: url: triple://0.0.0.0:8888//grpc.examples.echo.Echo
-</span></span><span
style="display:flex;"><span>2022-12-05T10:40:20.829830Z DEBUG
dubbo::framework: service name: grpc.examples.echo.Echo, service_config:
ServiceConfig <span style="color:#719e07">{</span> version: <span
style="color:#2aa198">&#34;1.0.0&#34;</span>, group: <span
style="color:#2aa198">&#34;test&#34;</span>, name: <span
style="color:#2aa198">&#34;&#34;</span>, protocol: <span
style="color:#2aa198">&#34;trip [...]
-</span></span><span
style="display:flex;"><span>2022-12-05T10:40:20.829917Z INFO
dubbo::framework: protocol: <span
style="color:#2aa198">&#34;&#34;</span>, service url: Url <span
style="color:#719e07">{</span> uri: <span
style="color:#2aa198">&#34;triple://0.0.0.0:8888//grpc.examples.echo.Echo&#34;</span>,
protocol: <span style="color:#2aa198">&#34;triple&#34;</span>,
location: <span style="color:#2aa198">&#34;0.0.0.0:888 [...]
-</span></span><span
style="display:flex;"><span>2022-12-05T10:40:20.830028Z DEBUG
dubbo::triple::transport::listener: get_listener: <span
style="color:#2aa198">&#34;unix&#34;</span>
+</span></span><span
style="display:flex;"><span>2023-01-19T08:36:25.663138Z INFO
dubbo::triple::server::builder: server starting. addr: Some<span
style="color:#719e07">(</span>127.0.0.1:8888<span
style="color:#719e07">)</span>
</span></span></code></pre></div><ol start="3">
<li>运行client,可以看到 Unix 通信效果</li>
</ol>
<p>执行<code>cargo run --bin
echo-client</code>来运行client,调用<code>triple://127.0.0.1:8888/org.apache.dubbo.sample.tri.Greeter</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-sh" data-lang="sh"><span style="display:flex;"><span>$
cargo run --bin echo-client
-</span></span><span style="display:flex;"><span><span
style="color:#586e75"># unary call</span>
-</span></span><span style="display:flex;"><span>fake filter:
Metadata <span style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;path&#34;</span>: <span
style="color:#2aa198">&#34;/grpc.examples.echo.Echo/UnaryEcho&#34;</span>,
<span style="color:#2aa198">&#34;tri-unit-info&#34;</span>:
<span style="color:#2aa198">&#34;dubbo-rust/0.1.0&#34;</span>,
<spa [...]
+</span></span><span
style="display:flex;"><span>2023-01-19T08:38:52.516792Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address:
<span style="color:#2aa198">&#34;127.0.0.1&#34;</span>
</span></span><span style="display:flex;"><span>Response:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;hello, dubbo-rust&#34;</span> <span
style="color:#719e07">}</span>
+</span></span><span
style="display:flex;"><span>2023-01-19T08:38:52.526697Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address:
<span style="color:#2aa198">&#34;127.0.0.1&#34;</span>
</span></span><span style="display:flex;"><span>client streaming,
Response: EchoResponse <span style="color:#719e07">{</span> message:
<span style="color:#2aa198">&#34;hello client
streaming&#34;</span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>parts: Metadata
<span style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;date&#34;</span>: <span
style="color:#2aa198">&#34;Mon, 05 Dec 2022 10:43:57
GMT&#34;</span>, <span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;</span><span
style="color [...]
+</span></span><span
style="display:flex;"><span>2023-01-19T08:38:52.539439Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address:
<span style="color:#2aa198">&#34;127.0.0.1&#34;</span>
+</span></span><span style="display:flex;"><span>parts: Metadata
<span style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;</span>, <span
style="color:#2aa198">&#34;date&#34;</span>: <span
style="color:#2aa198">&#34;Thu, 19 Jan 2023 08:38:52
GMT&#34;</span><span style="color [...]
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;server reply: \&#34;msg1 from
client\&#34;&#34;</span> <span style="color:#719e07">}</span>
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;server reply: \&#34;msg2 from
client\&#34;&#34;</span> <span style="color:#719e07">}</span>
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;server reply: \&#34;msg3 from
client\&#34;&#34;</span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>trailer:
Some<span style="color:#719e07">(</span>Metadata <span
style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;grpc-message&#34;</span>: <span
style="color:#2aa198">&#34;poll trailer successfully.&#34;</span>,
<span style="color:#2aa198">&#34;content-type&#34;</span>:
<span style="color:#2aa198">&#34;app [...]
-</span></span><span style="display:flex;"><span>parts: Metadata
<span style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;</span>, <span
style="color:#2aa198">&#34;date&#34;</span>: <span
style="color:#2aa198">&#34;Mon, 05 Dec 2022 10:43:58
GMT&#34;</span><span style="color [...]
+</span></span><span style="display:flex;"><span>trailer:
Some<span style="color:#719e07">(</span>Metadata <span
style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;grpc-accept-encoding&#34;</span>:
<span style="color:#2aa198">&#34;gzip,identity&#34;</span>,
<span style="color:#2aa198">&#34;grpc-status&#34;</span>:
<span style="color:#2aa198">&#34;0&#34 [...]
+</span></span><span
style="display:flex;"><span>2023-01-19T08:38:52.645035Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address:
<span style="color:#2aa198">&#34;127.0.0.1&#34;</span>
+</span></span><span style="display:flex;"><span>parts: Metadata
<span style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;</span>, <span
style="color:#2aa198">&#34;date&#34;</span>: <span
style="color:#2aa198">&#34;Thu, 19 Jan 2023 08:38:52
GMT&#34;</span><span style="color [...]
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;msg1 from server&#34;</span> <span
style="color:#719e07">}</span>
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;msg2 from server&#34;</span> <span
style="color:#719e07">}</span>
</span></span><span style="display:flex;"><span>reply:
EchoResponse <span style="color:#719e07">{</span> message: <span
style="color:#2aa198">&#34;msg3 from server&#34;</span> <span
style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>trailer:
Some<span style="color:#719e07">(</span>Metadata <span
style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;grpc-status&#34;</span>: <span
style="color:#2aa198">&#34;0&#34;</span>, <span
style="color:#2aa198">&#34;grpc-message&#34;</span>: <span
style="color:#2aa198">&#34;poll trailer successfully.&am [...]
+</span></span><span style="display:flex;"><span>trailer:
Some<span style="color:#719e07">(</span>Metadata <span
style="color:#719e07">{</span> inner: <span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;grpc-status&#34;</span>: <span
style="color:#2aa198">&#34;0&#34;</span>, <span
style="color:#2aa198">&#34;content-type&#34;</span>: <span
style="color:#2aa198">&#34;application/grpc&#34;< [...]
</span></span></code></pre></div></description></item></channel></rss>
\ No newline at end of file
diff --git a/zh/docs3-v2/rust-sdk/unix-transport/index.html
b/zh/docs3-v2/rust-sdk/unix-transport/index.html
index 6db792a2e5..fcce09d676 100644
--- a/zh/docs3-v2/rust-sdk/unix-transport/index.html
+++ b/zh/docs3-v2/rust-sdk/unix-transport/index.html
@@ -1,114 +1,40 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta
name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX,
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta
name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.110.0"><meta name=ROBOTS content="INDEX,
FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link
rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png
sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png
sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
as=style><link
href=/scss/main.min.8637cb48af1c2672dbf22e4e83652c0cebe2d667477b88c8a046be155bcf7cfe.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin=anonymous></script>
<link rel=stylesheet
href=https://cdn.jsdelivr.net/npm/@docsearch/css@3></head><body
class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand
href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path
class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05
25.45-22.11V7.25H68.46zm21.24-28h8.6V31H89.7zm0 [...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh/docs3-v2/rust-sdk/unix-transport.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+Edit+the+%22front+matter%22+sec
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=%e4%bd%bf%e7%94%a8Unix%e5%a5%97%e6%8e%a5%e5%ad%97%e8%bf%9e%e6%8e%a5%e5%99%a8%e9%80%9a%e4%bf%a1"
target=_blank><i class="fab fa-github fa-fw"></i> 提交文档问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav
id=TableOfContents><ul><li><a href=#1-triple-使用-unix-套接字连接器>1 Triple 使用 Unix
套接字连接器</a></li><li><a href=#2-使用-clientconnection-使用-unix-套接字连接器编写逻辑>2 使用
client/connection 使用 Unix 套接字连接器编写逻辑</a><ul><li><a href=#21-编写-client-端>2.1 编写
Client 端</a></li><li><a href=#22-编写-connection>2.2 编写
connection</a></li></ul></li><li><a href=#3-运行示例>3 运行示例</a></li></ul> [...]
-</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#719e07>impl</span> TripleServer {
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>fn</span> <span
style=color:#268bd2>new</span>(names: <span style=color:#b58900>Vec</span><span
style=color:#719e07><</span><span style=color:#b58900>String</span><span
style=color:#719e07>></span>) -> <span
style=color:#268bd2>TripleServer</span> {
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>Self</span> {
-</span></span><span style=display:flex><span> service_names: <span
style=color:#268bd2>names</span>,
-</span></span><span style=display:flex><span> s: <span
style=color:#268bd2>DubboServer</span>::new(),
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>async</span> <span
style=color:#719e07>fn</span> <span style=color:#268bd2>serve</span>(<span
style=color:#719e07>mut</span> <span style=color:#268bd2>self</span>, url:
<span style=color:#b58900>String</span>) {
-</span></span><span style=display:flex><span> {
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>let</span> lock <span style=color:#719e07>=</span> <span
style=color:#719e07>super</span>::TRIPLE_SERVICES.read().unwrap();
-</span></span><span style=display:flex><span> <span
style=color:#719e07>for</span> name <span style=color:#719e07>in</span> <span
style=color:#268bd2>self</span>.service_names.iter() {
-</span></span><span style=display:flex><span> <span
style=color:#719e07>if</span> lock.get(name).is_none() {
-</span></span><span style=display:flex><span>
tracing::warn<span style=color:#719e07>!</span>(<span
style=color:#2aa198>"service ({}) not register"</span>, name);
-</span></span><span style=display:flex><span> <span
style=color:#719e07>continue</span>;
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>let</span> svc <span style=color:#719e07>=</span>
lock.get(name).unwrap();
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>.s <span style=color:#719e07>=</span> <span
style=color:#268bd2>self</span>.s.add_service(name.clone(), svc.clone());
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>let</span> uri <span style=color:#719e07>=</span> <span
style=color:#719e07>match</span> http::Uri::from_str(<span
style=color:#719e07>&</span>url) {
-</span></span><span style=display:flex><span> <span
style=color:#b58900>Ok</span>(v) <span style=color:#719e07>=></span> v,
-</span></span><span style=display:flex><span> <span
style=color:#b58900>Err</span>(err) <span style=color:#719e07>=></span> {
-</span></span><span style=display:flex><span>
tracing::error<span style=color:#719e07>!</span>(<span
style=color:#2aa198>"http uri parse error: {}, url: {:?}"</span>, err,
<span style=color:#719e07>&</span>url);
-</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span>;
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> };
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>let</span> authority <span style=color:#719e07>=</span>
<span style=color:#719e07>match</span> uri.authority() {
-</span></span><span style=display:flex><span> <span
style=color:#b58900>Some</span>(v) <span style=color:#719e07>=></span>
v.to_owned(),
-</span></span><span style=display:flex><span> <span
style=color:#b58900>None</span> <span style=color:#719e07>=></span> {
-</span></span><span style=display:flex><span>
tracing::error<span style=color:#719e07>!</span>(<span
style=color:#2aa198>"http authority is none"</span>);
-</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span>;
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> };
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>.s
-</span></span><span style=display:flex><span> .with_listener(<span
style=color:#2aa198>"unix"</span>.to_string())
-</span></span><span style=display:flex><span> .serve(
-</span></span><span style=display:flex><span> authority
-</span></span><span style=display:flex><span> .to_string()
-</span></span><span style=display:flex><span>
.to_socket_addrs()
-</span></span><span style=display:flex><span> .unwrap()
-</span></span><span style=display:flex><span> .next()
-</span></span><span style=display:flex><span> .unwrap(),
-</span></span><span style=display:flex><span> )
-</span></span><span style=display:flex><span> .<span
style=color:#719e07>await</span>
-</span></span><span style=display:flex><span> .unwrap();
-</span></span><span style=display:flex><span> }
-</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-使用-clientconnection-使用-unix-套接字连接器编写逻辑>2 使用 client/connection 使用 Unix
套接字连接器编写逻辑</h2><h3 id=21-编写-client-端>2.1 编写 Client 端</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-rust data-lang=rust><span style=display:flex><span><span
style=color:#586e75>// examples/echo/src/echo/client.rs
-</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#719e07>..</span>.
-</span></span><span style=display:flex><span><span
style=color:#268bd2>let</span> <span style=color:#719e07>mut</span> cli <span
style=color:#719e07>=</span> EchoClient::connect(<span
style=color:#2aa198>"unix://0.0.0.0:8888"</span>.to_string());
-</span></span><span style=display:flex><span><span
style=color:#719e07>..</span>.
-</span></span></code></pre></div><h3 id=22-编写-connection>2.2 编写
connection</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-rust data-lang=rust><span style=display:flex><span><span
style=color:#586e75>// dubbo/src/triple/client/connection.rs
-</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#719e07>impl</span> Connection {
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>fn</span> <span
style=color:#268bd2>new</span>() -> <span style=color:#268bd2>Self</span> {
-</span></span><span style=display:flex><span> Connection {
-</span></span><span style=display:flex><span> host: <span
style=color:#268bd2>hyper</span>::Uri::default(),
-</span></span><span style=display:flex><span> connector: <span
style=color:#2aa198>"unix"</span>.to_string(),
-</span></span><span style=display:flex><span> builder: <span
style=color:#268bd2>Builder</span>::new(),
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>fn</span> <span
style=color:#268bd2>with_connector</span><span
style=color:#719e07><</span>C<span style=color:#719e07>></span>(<span
style=color:#719e07>mut</span> <span style=color:#268bd2>self</span>,
connector: <span style=color:#b58900>String</span>) -> <span
style=color:#268bd2>Self</span> {
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>.connector <span style=color:#719e07>=</span>
connector;
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>fn</span> <span
style=color:#268bd2>with_host</span>(<span style=color:#719e07>mut</span> <span
style=color:#268bd2>self</span>, uri: <span
style=color:#268bd2>hyper</span>::Uri) -> <span
style=color:#268bd2>Self</span> {
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>.host <span style=color:#719e07>=</span> uri;
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span> <span
style=color:#719e07>pub</span> <span style=color:#719e07>fn</span> <span
style=color:#268bd2>with_builder</span>(<span style=color:#719e07>mut</span>
<span style=color:#268bd2>self</span>, builder: <span
style=color:#268bd2>Builder</span>) -> <span style=color:#268bd2>Self</span>
{
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>.builder <span style=color:#719e07>=</span>
builder;
-</span></span><span style=display:flex><span> <span
style=color:#268bd2>self</span>
-</span></span><span style=display:flex><span> }
-</span></span><span style=display:flex><span>}
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div><div class=td-toc><nav
id=TableOfContents><ul><li><a href=#1-使用-unix-套接字连接器-说明>1 使用 Unix 套接字连接器
说明</a></li><li><a href=#2-使用-clientconnection-使用-unix-套接字连接器编写逻辑>2 使用
client/connection 使用 Unix 套接字连接器编写逻辑</a><ul><li><a href=#21-编写-client-端>2.1 编写
Client 端</a></li><li><a href=#22-编写-server-端>2.2 编写 Server
端</a></li></ul></li><li><a href=#3-运行示例>3 运行示例</a></li></ul></nav></div> [...]
+</span></span></span><span style=display:flex><span><span
style=color:#586e75>// 使用 ClientBuilder 初始化 Client
+</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#268bd2>let</span> builder <span
style=color:#719e07>=</span> ClientBuilder::new().with_connector(<span
style=color:#2aa198>"unix"</span>).with_host(<span
style=color:#2aa198>"unix://127.0.0.1:8888"</span>);
+</span></span><span style=display:flex><span><span
style=color:#268bd2>let</span> <span style=color:#719e07>mut</span> cli <span
style=color:#719e07>=</span> EchoClient::build(builder);
+</span></span></code></pre></div><h3 id=22-编写-server-端>2.2 编写 Server
端</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-rust data-lang=rust><span style=display:flex><span><span
style=color:#586e75>// examples/echo/src/echo/server.rs
+</span></span></span><span style=display:flex><span><span
style=color:#586e75>// 通过 serverbuilder 来初始化 Server
+</span></span></span><span style=display:flex><span><span
style=color:#586e75></span><span style=color:#268bd2>let</span> builder <span
style=color:#719e07>=</span> ServerBuilder::new()
+</span></span><span style=display:flex><span> .with_listener(<span
style=color:#2aa198>"unix"</span>.to_string())
+</span></span><span style=display:flex><span>
.with_service_names(vec![<span
style=color:#2aa198>"grpc.examples.echo.Echo"</span>.to_string()])
+</span></span><span style=display:flex><span> .with_addr(<span
style=color:#2aa198>"127.0.0.1:8888"</span>);
+</span></span><span style=display:flex><span>builder.build().serve().<span
style=color:#719e07>await</span>.unwrap();
</span></span></code></pre></div><h2 id=3-运行示例>3
运行示例</h2><ol><li>编译</li></ol><p>执行<code>cargo
build</code>来编译server和client。</p><ol
start=2><li>运行server</li></ol><p>执行<code>cargo run --bin
echo-server</code>来运行server,如上文dubbo.yaml所配置,server会监听8888端口,并以triple协议提供RPC服务:</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-sh data-lang=sh><span style=display:flex><span>$ cargo run
--bin echo-server
-</span></span><span style=display:flex><span>2022-12-05T10:40:20.829798Z INFO
dubbo::framework: url: triple://0.0.0.0:8888//grpc.examples.echo.Echo
-</span></span><span style=display:flex><span>2022-12-05T10:40:20.829830Z DEBUG
dubbo::framework: service name: grpc.examples.echo.Echo, service_config:
ServiceConfig <span style=color:#719e07>{</span> version: <span
style=color:#2aa198>"1.0.0"</span>, group: <span
style=color:#2aa198>"test"</span>, name: <span
style=color:#2aa198>""</span>, protocol: <span
style=color:#2aa198>"triple"</span>, registry: <span
style=color:#2aa198>"zookeeper"</span>, [...]
-</span></span><span style=display:flex><span>2022-12-05T10:40:20.829917Z INFO
dubbo::framework: protocol: <span style=color:#2aa198>""</span>,
service url: Url <span style=color:#719e07>{</span> uri: <span
style=color:#2aa198>"triple://0.0.0.0:8888//grpc.examples.echo.Echo"</span>,
protocol: <span style=color:#2aa198>"triple"</span>, location: <span
style=color:#2aa198>"0.0.0.0:8888"</span>, ip: <span
style=color:#2aa198>"0.0.0.0"</span>, port: <s [...]
-</span></span><span style=display:flex><span>2022-12-05T10:40:20.830028Z DEBUG
dubbo::triple::transport::listener: get_listener: <span
style=color:#2aa198>"unix"</span>
+</span></span><span style=display:flex><span>2023-01-19T08:36:25.663138Z INFO
dubbo::triple::server::builder: server starting. addr: Some<span
style=color:#719e07>(</span>127.0.0.1:8888<span style=color:#719e07>)</span>
</span></span></code></pre></div><ol start=3><li>运行client,可以看到 Unix
通信效果</li></ol><p>执行<code>cargo run --bin
echo-client</code>来运行client,调用<code>triple://127.0.0.1:8888/org.apache.dubbo.sample.tri.Greeter</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-sh data-lang=sh><span style=display:flex><span>$ cargo run
--bin echo-client
-</span></span><span style=display:flex><span><span style=color:#586e75># unary
call</span>
-</span></span><span style=display:flex><span>fake filter: Metadata <span
style=color:#719e07>{</span> inner: <span style=color:#719e07>{</span><span
style=color:#2aa198>"path"</span>: <span
style=color:#2aa198>"/grpc.examples.echo.Echo/UnaryEcho"</span>, <span
style=color:#2aa198>"tri-unit-info"</span>: <span
style=color:#2aa198>"dubbo-rust/0.1.0"</span>, <span
style=color:#2aa198>"grpc-accept-encoding"</span>: <span
style=color:#2aa198>"gzip&# [...]
+</span></span><span style=display:flex><span>2023-01-19T08:38:52.516792Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address: <span
style=color:#2aa198>"127.0.0.1"</span>
</span></span><span style=display:flex><span>Response: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"hello,
dubbo-rust"</span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span>2023-01-19T08:38:52.526697Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address: <span
style=color:#2aa198>"127.0.0.1"</span>
</span></span><span style=display:flex><span>client streaming, Response:
EchoResponse <span style=color:#719e07>{</span> message: <span
style=color:#2aa198>"hello client streaming"</span> <span
style=color:#719e07>}</span>
-</span></span><span style=display:flex><span>parts: Metadata <span
style=color:#719e07>{</span> inner: <span style=color:#719e07>{</span><span
style=color:#2aa198>"date"</span>: <span style=color:#2aa198>"Mon,
05 Dec 2022 10:43:57 GMT"</span>, <span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span><span
style=color:#719e07>}</span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span>2023-01-19T08:38:52.539439Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address: <span
style=color:#2aa198>"127.0.0.1"</span>
+</span></span><span style=display:flex><span>parts: Metadata <span
style=color:#719e07>{</span> inner: <span style=color:#719e07>{</span><span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span>, <span
style=color:#2aa198>"date"</span>: <span style=color:#2aa198>"Thu,
19 Jan 2023 08:38:52 GMT"</span><span style=color:#719e07>}</span> <span
style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"server
reply: \"msg1 from client\""</span> <span
style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"server
reply: \"msg2 from client\""</span> <span
style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"server
reply: \"msg3 from client\""</span> <span
style=color:#719e07>}</span>
-</span></span><span style=display:flex><span>trailer: Some<span
style=color:#719e07>(</span>Metadata <span style=color:#719e07>{</span> inner:
<span style=color:#719e07>{</span><span
style=color:#2aa198>"grpc-message"</span>: <span
style=color:#2aa198>"poll trailer successfully."</span>, <span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span>, <span
style=color:#2aa198>"grpc-accept-encoding"</span>: <spa [...]
-</span></span><span style=display:flex><span>parts: Metadata <span
style=color:#719e07>{</span> inner: <span style=color:#719e07>{</span><span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span>, <span
style=color:#2aa198>"date"</span>: <span style=color:#2aa198>"Mon,
05 Dec 2022 10:43:58 GMT"</span><span style=color:#719e07>}</span> <span
style=color:#719e07>}</span>
+</span></span><span style=display:flex><span>trailer: Some<span
style=color:#719e07>(</span>Metadata <span style=color:#719e07>{</span> inner:
<span style=color:#719e07>{</span><span
style=color:#2aa198>"grpc-accept-encoding"</span>: <span
style=color:#2aa198>"gzip,identity"</span>, <span
style=color:#2aa198>"grpc-status"</span>: <span
style=color:#2aa198>"0"</span>, <span
style=color:#2aa198>"grpc-message"</span>: <span
style=color:#2aa198>"po [...]
+</span></span><span style=display:flex><span>2023-01-19T08:38:52.645035Z INFO
dubbo::triple::transport::connector::unix_connector: host is ip address: <span
style=color:#2aa198>"127.0.0.1"</span>
+</span></span><span style=display:flex><span>parts: Metadata <span
style=color:#719e07>{</span> inner: <span style=color:#719e07>{</span><span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span>, <span
style=color:#2aa198>"date"</span>: <span style=color:#2aa198>"Thu,
19 Jan 2023 08:38:52 GMT"</span><span style=color:#719e07>}</span> <span
style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"msg1 from
server"</span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"msg2 from
server"</span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span>reply: EchoResponse <span
style=color:#719e07>{</span> message: <span style=color:#2aa198>"msg3 from
server"</span> <span style=color:#719e07>}</span>
-</span></span><span style=display:flex><span>trailer: Some<span
style=color:#719e07>(</span>Metadata <span style=color:#719e07>{</span> inner:
<span style=color:#719e07>{</span><span
style=color:#2aa198>"grpc-status"</span>: <span
style=color:#2aa198>"0"</span>, <span
style=color:#2aa198>"grpc-message"</span>: <span
style=color:#2aa198>"poll trailer successfully."</span>, <span
style=color:#2aa198>"grpc-accept-encoding"</span>: <span style=color:#2
[...]
+</span></span><span style=display:flex><span>trailer: Some<span
style=color:#719e07>(</span>Metadata <span style=color:#719e07>{</span> inner:
<span style=color:#719e07>{</span><span
style=color:#2aa198>"grpc-status"</span>: <span
style=color:#2aa198>"0"</span>, <span
style=color:#2aa198>"content-type"</span>: <span
style=color:#2aa198>"application/grpc"</span>, <span
style=color:#2aa198>"grpc-message"</span>: <span
style=color:#2aa198>"poll tr [...]
</span></span></code></pre></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div
class=d-print-none><h2 class=feedback--title>Feedback</h2><p
class=feedback--question>Was this page helpful?</p><button class="btn
btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer
feedback--answer-no">No</button><p class="feedback--response
feedback--response-yes">Glad to hear it! Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to
hear that. Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback
[...]
+<button class="btn btn-primary mb-4 feedback--answer
feedback--answer-no">No</button><p class="feedback--response
feedback--response-yes">Glad to hear it! Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to
hear that. Please <a
href=https://github.com/apache/dubbo-website/issues/new>tell us how we can
improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback
[...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js
integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index f535b09fe6..628a3b60f6 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/0/</loc><lastmod>2022-08-01T10:49:31+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
rel="alternate" hreflang="en"
href="https://dubbo.apache.org/en/docs3-v2/java-sdk/faq/0/"/><xhtml:link
rel="alternate" hreflang="zh" href="https://dubbo.a [...]
\ 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/docs3-v2/java-sdk/faq/0/</loc><lastmod>2022-08-01T10:49:31+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
rel="alternate" hreflang="en"
href="https://dubbo.apache.org/en/docs3-v2/java-sdk/faq/0/"/><xhtml:link
rel="alternate" hreflang="zh" href="https://dubbo.a [...]
\ No newline at end of file