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

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


The following commit(s) were added to refs/heads/asf-site-v2 by this push:
     new 227f12cea82 deploy: 8da99c6eb6683261a00a81b5805f4ddabc087959
227f12cea82 is described below

commit 227f12cea824be86047ebf7d3d615c1405b3201b
Author: Alanxtl <[email protected]>
AuthorDate: Fri Aug 7 12:58:59 2026 +0000

    deploy: 8da99c6eb6683261a00a81b5805f4ddabc087959
---
 .../mannual/golang-sdk/quickstart/rpc/index.html   | 108 ++++++++++++++-------
 en/sitemap.xml                                     |   2 +-
 sitemap.xml                                        |   2 +-
 zh-cn/index.xml                                    |  10 +-
 .../mannual/golang-sdk/quickstart/index.xml        |  10 +-
 .../mannual/golang-sdk/quickstart/rpc/index.html   | 108 ++++++++++++++-------
 zh-cn/sitemap.xml                                  |   2 +-
 7 files changed, 157 insertions(+), 85 deletions(-)

diff --git a/en/overview/mannual/golang-sdk/quickstart/rpc/index.html 
b/en/overview/mannual/golang-sdk/quickstart/rpc/index.html
index 7f2e0af3a7b..e1c311cf4e6 100644
--- a/en/overview/mannual/golang-sdk/quickstart/rpc/index.html
+++ b/en/overview/mannual/golang-sdk/quickstart/rpc/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn 
href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/><link
 rel=canonical 
href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/quickstart/rpc/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]
 [...]
+<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn 
href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/><link
 rel=canonical 
href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/quickstart/rpc/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]
 [...]
 <a class=dropdown-item href=/en/overview/notices/>Security Notices</a>
 <a class=dropdown-item href=/en/contact/>Contributor's Guide</a></div></li><li 
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/en/blog/><span>Blog</span></a></li><li class="nav-item nav-item-line px-2 
mb-2 mb-lg-0"><a class=nav-link 
href=/en/download/><span>DOWNLOAD</span></a></li><li class="nav-item dropdown 
d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown 
role=button data-toggle=dropdown aria-haspopup=true 
aria-expanded=false>ECOSYSTEM</ [...]
 <a class=dropdown-item 
href=/zh-cn/overview/mannual/control-plane/>Visualizable Console</a>
@@ -696,25 +696,23 @@
 <label for=m-enoverviewnoticeslog4j-check><a href=/en/overview/notices/log4j/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__page" 
id=m-enoverviewnoticeslog4j><span>Log4j Vulnerability 
Impact</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/en/overview/>Documentation</a></li><li class=breadcrumb-item><a  [...]
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span>git clone --depth <span 
style=color:#2aa198>1</span> https://github.com/apache/dubbo-go.git
-</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go/tools/protoc-gen-go-triple
-</span></span><span style=display:flex><span>go install .
-</span></span></code></pre></div><p>Make sure <code>protoc-gen-go</code> and 
<code>protoc-gen-go-triple</code> are in your <code>PATH</code>. You can verify 
this with <code>which protoc-gen-go</code>. If that command does not work, 
please execute the following commands:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span><span 
style=color:#71 [...]
+</span></span><span style=display:flex><span><span 
style=color:#719e07>(</span><span style=color:#b58900>cd</span> 
dubbo-go/tools/protoc-gen-go-triple <span style=color:#719e07>&amp;&amp;</span> 
go install .<span style=color:#719e07>)</span>
+</span></span></code></pre></div><p>Make sure <code>protoc-gen-go</code> and 
<code>protoc-gen-go-triple</code> are in your <code>PATH</code>. You can verify 
this with <code>which protoc-gen-go</code> and <code>which 
protoc-gen-go-triple</code>. If either command does not work, run:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span><span sty 
[...]
 </span></span><span style=display:flex><span><span 
style=color:#719e07>[</span> -n <span style=color:#2aa198>&#34;</span><span 
style=color:#719e07>$(</span>go env GOPATH<span 
style=color:#719e07>)</span><span style=color:#2aa198>&#34;</span> <span 
style=color:#719e07>]</span> <span style=color:#719e07>&amp;&amp;</span> <span 
style=color:#b58900>export</span> <span style=color:#268bd2>PATH</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;</span><span 
style=color:#719 [...]
 </span></span></code></pre></div><p><code>protoc-gen-go-triple</code> is now 
maintained in the dubbo-go repository under
 <a 
href=https://github.com/apache/dubbo-go/tree/main/tools/protoc-gen-go-triple 
target=_blank>tools/protoc-gen-go-triple</a>.
 Install it from that directory, and keep the generated 
<code>*.triple.go</code> files in sync when you change the <code>.proto</code>
-service definition.</p></li></ol><h2 id=quick-run-example>Quick Run 
Example</h2><h3 id=download-example-source-code>Download Example Source 
Code</h3><p>We maintain a series of dubbo-go usage examples in the <a 
href=https://github.com/apache/dubbo-go-samples/ 
target=_blank>apache/dubbo-go-samples</a> repository to help users quickly 
learn how to use dubbo-go.</p><p>You can <a 
href=https://github.com/apache/dubbo-go-samples/archive/refs/heads/main.zip 
target=_blank>download the example zip [...]
-</span></span></code></pre></div><p>Switch to the quick start example 
directory:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ <span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
-</span></span></code></pre></div><h3 id=run-server>Run Server</h3><p>In the 
<code>go-server/cmd</code> directory:</p><p>Run the following command to start 
the server:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ go run 
server.go
-</span></span></code></pre></div><p>Use <code>cURL</code> to verify that the 
server has been started correctly:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ curl 
<span style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;: &#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      http://localhost:20000/greet.GreetService/Greet
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>Greeting: Hello world
-</span></span></code></pre></div><h3 id=run-client>Run Client</h3><p>Open a 
new terminal and run the following command in the <code>go-client/cmd</code> 
directory to start the client:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ go run 
client.go
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>Greeting: Hello world
+service definition.</p></li></ol><h2 id=quick-run-example>Quick Run 
Example</h2><h3 id=download-example-source-code>Download Example Source 
Code</h3><p>We maintain a series of dubbo-go usage examples in the <a 
href=https://github.com/apache/dubbo-go-samples/ 
target=_blank>apache/dubbo-go-samples</a> repository to help users quickly 
learn how to use dubbo-go.</p><p>You can <a 
href=https://github.com/apache/dubbo-go-samples/archive/refs/heads/main.zip 
target=_blank>download the example zip [...]
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
+</span></span></code></pre></div><h3 id=run-server>Run Server</h3><p>Run all 
the following commands from the <code>helloworld</code> root directory. Start 
the server with:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>go run 
./go-server/cmd/main.go
+</span></span></code></pre></div><p>Use <code>cURL</code> to verify that the 
server has been started correctly:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>curl <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;:&#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  http://localhost:20000/greet.GreetService/Greet
+</span></span></code></pre></div><p>The response is:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-json data-lang=json><span style=display:flex><span>{<span 
style=color:#268bd2>&#34;greeting&#34;</span>:<span 
style=color:#2aa198>&#34;Dubbo&#34;</span>}
+</span></span></code></pre></div><h3 id=run-client>Run Client</h3><p>Open 
another terminal, return to the <code>helloworld</code> root directory, and 
start the client:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.go
+</span></span></code></pre></div><p>The logs include the following response 
(prefixes such as the timestamp, log level, and call site vary by 
environment):</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-text data-lang=text><span style=display:flex><span>Greet 
response: hello world
 </span></span></code></pre></div><p>This is a complete development process of 
a dubbo-go RPC communication service.</p><h2 id=source-code-explanation>Source 
Code Explanation</h2><p>Next, we will explain the source code of the 
<code>dubbo-go-samples/helloworld</code> example.</p><h3 
id=define-service>Define Service</h3><p>The example uses Protocol Buffer (IDL) 
to define the Dubbo service.</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4; [...]
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span><span 
style=color:#719e07>package</span> greet;
@@ -731,21 +729,43 @@ service definition.</p></li></ol><h2 
id=quick-run-example>Quick Run Example</h2>
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>service</span> GreetService {
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>rpc</span> Greet(GreetRequest) <span 
style=color:#719e07>returns</span> (GreetResponse) {}
 </span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>This file declares a service called 
<code>GreetService</code>, defining the Greet method along with its request 
parameter GreetRequest and return value GreetResponse.</p><h3 
id=generate-code>Generate Code</h3><p>Before running the server or client, we 
need to generate the relevant code using <code>protoc-gen-go</code> and 
<code>protoc-gen-go-triple</code>.</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-siz [...]
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --go-triple_out<span 
style=color:#719e07>=</span>. --go-triple_opt<span 
style=color:#719e07>=</span><span style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    ./greet.proto
-</span></span></code></pre></div><p>After running the above command, you will 
see the following generated files in the target directory:</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> 
proto
-</span></span><span style=display:flex><span>    ├── greet.pb.go
-</span></span><span style=display:flex><span>    ├── greet.proto
-</span></span><span style=display:flex><span>    └── greet.triple.go
-</span></span></code></pre></div><p>In the proto/greet/v1 package, there are 
two parts:</p><ul><li><code>greet.pb.go</code> is generated by Google&rsquo;s 
standard <code>protoc-gen-go</code>, which contains the structures of 
<code>GreetRequest</code>, <code>GreetResponse</code>, and the 
encoding/decoding rules.</li><li><code>greet.triple.go</code> is produced by 
the custom Dubbo plugin <code>protoc-gen-go-triple</code> and includes key 
information, including the generated interface <code [...]
+</span></span></code></pre></div><p><code>proto/greet.proto</code> declares 
the <code>GreetService</code> service and defines the <code>Greet</code> RPC, 
its <code>GreetRequest</code> request, and its <code>GreetResponse</code> 
response.</p><h3 id=generate-code>Generate Code</h3><p>Before running the 
server or client, generate the code with <code>protoc-gen-go</code> and 
<code>protoc-gen-go-triple</code> from the <code>helloworld</code> root 
directory:</p><div class=highlight><pre tabind [...]
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go_out<span style=color:#719e07>=</span>. <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go_opt<span style=color:#719e07>=</span><span 
style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go-triple_out<span style=color:#719e07>=</span>. 
<span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go-triple_opt<span 
style=color:#719e07>=</span><span style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  ./proto/greet.proto
+</span></span></code></pre></div><p>After the command completes, the 
<code>proto</code> directory has the following structure:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-text data-lang=text><span style=display:flex><span>proto/
+</span></span><span style=display:flex><span>├── greet.proto
+</span></span><span style=display:flex><span>├── greet.pb.go
+</span></span><span style=display:flex><span>└── greet.triple.go
+</span></span></code></pre></div><p>The generated files have different 
responsibilities:</p><ul><li><code>greet.pb.go</code> is generated by the 
standard <code>protoc-gen-go</code> plugin. It primarily contains Protobuf 
messages such as <code>GreetRequest</code> and <code>GreetResponse</code>, 
together with their encoding and decoding 
code.</li><li><code>greet.triple.go</code> is generated by 
<code>protoc-gen-go-triple</code>. It primarily contains Triple server 
registration, the client  [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>func</span> (srv <span 
style=color:#719e07>*</span>GreetTripleServer) <span 
style=color:#268bd2>Greet</span>(ctx context.Context, req <span 
style=color:#719e07>*</span>greet.GreetRequest) (<span 
style=color:#719e07>*</span>greet.GreetResponse, <span 
style=color:#dc322f>error</span>) {
+</span></span><span style=display:flex><span>  resp <span 
style=color:#719e07>:=</span> <span 
style=color:#719e07>&amp;</span>greet.GreetResponse{Greeting: req.Name}
+</span></span><span style=display:flex><span>  <span 
style=color:#719e07>return</span> resp, <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>}
+</span></span></code></pre></div><h3 id=start-server>Start 
Server</h3><p>Create a Server and register the <code>GreetTripleServer</code> 
implementation with <code>RegisterGreetServiceHandler</code>. The Server 
listens on port <code>20000</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:#719e07>package</span> main
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#719e07>import</span> (
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;context&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  _ <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/imports&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/protocol&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/server&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;github.com/dubbogo/gost/log/logger&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  greet <span 
style=color:#2aa198>&#34;github.com/apache/dubbo-go-samples/helloworld/proto&#34;</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>type</span> GreetTripleServer <span 
style=color:#268bd2>struct</span>{}
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>func</span> (srv <span 
style=color:#719e07>*</span>GreetTripleServer) <span 
style=color:#268bd2>Greet</span>(ctx context.Context, req <span 
style=color:#719e07>*</span>greet.GreetRequest) (<span 
style=color:#719e07>*</span>greet.GreetResponse, <span 
style=color:#dc322f>error</span>) {
 </span></span><span style=display:flex><span>  resp <span 
style=color:#719e07>:=</span> <span 
style=color:#719e07>&amp;</span>greet.GreetResponse{Greeting: req.Name}
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>return</span> resp, <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>}
-</span></span></code></pre></div><h3 id=start-server>Start 
Server</h3><p>Create a new Server, register the <code>GreetTripleServer</code> 
we implemented earlier, and then initialize and start the Server, which will 
listen for requests on the specified port.</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>func</span> <s [...]
+</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>() {
 </span></span><span style=display:flex><span>  srv, err <span 
style=color:#719e07>:=</span> server.<span style=color:#268bd2>NewServer</span>(
 </span></span><span style=display:flex><span>          server.<span 
style=color:#268bd2>WithServerProtocol</span>(
 </span></span><span style=display:flex><span>                  protocol.<span 
style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20000</span>),
@@ -753,37 +773,59 @@ service definition.</p></li></ol><h2 
id=quick-run-example>Quick Run Example</h2>
 </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>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create server: %v&#34;</span>, err)
+</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 
style=color:#719e07>if</span> err <span style=color:#719e07>:=</span> 
greet.<span style=color:#268bd2>RegisterGreetServiceHandler</span>(srv, <span 
style=color:#719e07>&amp;</span>GreetTripleServer{}); err <span 
style=color:#719e07>!=</span> <span style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
register greet service handler: %v&#34;</span>, err)
+</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 
style=color:#719e07>if</span> err <span style=color:#719e07>:=</span> srv.<span 
style=color:#268bd2>Serve</span>(); err <span style=color:#719e07>!=</span> 
<span style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Error</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
serve: %v&#34;</span>, err)
+</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></code></pre></div><h3 id=access-service>Access 
Service</h3><p>The simplest way is to use an HTTP/1.1 POST request to access 
the service, passing the parameters as standard JSON format in the HTTP 
payload. Here is an example using a cURL command:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>curl <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;: &#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    http://localhost:20000/greet.GreetService/Greet
-</span></span></code></pre></div><p>You can also use a Dubbo client to request 
the service. First, obtain the service proxy from the generated code in the 
<code>greet</code> package, specify the server address, and initialize it. Then 
you can initiate an RPC call.</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>func</s [...]
+</span></span></code></pre></div><p>You can also use a Dubbo client to request 
the service. First, obtain the service proxy from the generated code in the 
<code>greet</code> package, specify the server address, and initialize it. Then 
you can initiate an RPC call.</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:#719e07>package [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#719e07>import</span> (
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;context&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;time&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/client&#34;</span>
+</span></span><span style=display:flex><span>  _ <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/imports&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;github.com/dubbogo/gost/log/logger&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  greet <span 
style=color:#2aa198>&#34;github.com/apache/dubbo-go-samples/helloworld/proto&#34;</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>func</span> <span style=color:#268bd2>main</span>() {
 </span></span><span style=display:flex><span>  cli, err <span 
style=color:#719e07>:=</span> client.<span style=color:#268bd2>NewClient</span>(
 </span></span><span style=display:flex><span>          client.<span 
style=color:#268bd2>WithClientURL</span>(<span 
style=color:#2aa198>&#34;127.0.0.1:20000&#34;</span>),
 </span></span><span style=display:flex><span>  )
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create client: %v&#34;</span>, err)
+</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>  svc, err <span 
style=color:#719e07>:=</span> greet.<span 
style=color:#268bd2>NewGreetService</span>(cli)
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create greet service: %v&#34;</span>, err)
+</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>  resp, err <span 
style=color:#719e07>:=</span> svc.<span 
style=color:#268bd2>Greet</span>(context.<span 
style=color:#268bd2>Background</span>(), <span 
style=color:#719e07>&amp;</span>greet.GreetRequest{Name: <span 
style=color:#2aa198>&#34;hello world&#34;</span>})
+</span></span><span style=display:flex><span>  ctx, cancel <span 
style=color:#719e07>:=</span> context.<span 
style=color:#268bd2>WithTimeout</span>(context.<span 
style=color:#268bd2>Background</span>(), time.Second)
+</span></span><span style=display:flex><span>  <span 
style=color:#719e07>defer</span> <span style=color:#268bd2>cancel</span>()
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  resp, err <span 
style=color:#719e07>:=</span> svc.<span style=color:#268bd2>Greet</span>(ctx, 
<span style=color:#719e07>&amp;</span>greet.GreetRequest{Name: <span 
style=color:#2aa198>&#34;hello world&#34;</span>})
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Error</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
greet: %v&#34;</span>, err)
+</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>  logger.<span 
style=color:#268bd2>Infof</span>(<span style=color:#2aa198>&#34;Greet response: 
%s&#34;</span>, resp.Greeting)
 </span></span><span style=display:flex><span>}
diff --git a/en/sitemap.xml b/en/sitemap.xml
index a89f86426d9..32e94c734bf 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="zh-cn" 
href="https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="zh-cn" 
href="https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5
 [...]
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index a50280abdfd..f012bbfd14e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-07-29T17:42:13+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-06-23T02:09:33+00:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-07T20:51:37+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-07T20:51:37+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index febfd4706ab..4819d9ba992 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -7797,14 +7797,8 @@ Zipkin: &lt;a 
href="https://github.com/openzipkin/zipkin-helm"&gt;https://github
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-shell" data-lang="shell"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;go install 
google.golang.org/protobuf/cmd/protoc-gen-go@latest
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git 
clone --depth &lt;span style="color:#2aa198"&gt;1&lt;/span&gt; 
https://github.com/apache/dubbo-go.git
-&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#b58900"&gt;cd&lt;/span&gt; dubbo-go/tools/protoc-gen-go-triple
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;go 
install .
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确保 
&lt;code&gt;protoc-gen-go&lt;/code&gt;、&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 在你的 &lt;code&gt;PATH&lt;/code&gt; 中。这可以通过 &lt;code&gt;which 
protoc-gen-go&lt;/code&gt; 验证,如果该命令不能正常工作的话,请执行以下命令:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-shell" data-lang="shell"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;[&lt;/span&gt; -n &lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt;&lt;span 
style="color:#719e07"&gt;$(&lt;/span&gt;go env GOBIN&lt;span 
style="color:#719e07"&gt;)&lt;/span&gt;&lt;span style="color:#2aa198"&gt; [...]
-&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;[&lt;/span&gt; -n &lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt;&lt;span 
style="color:#719e07"&gt;$(&lt;/span&gt;go env GOPATH&lt;span 
style="color:#719e07"&gt;)&lt;/span&gt;&lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt; &lt;span 
style="color:#719e07"&gt;]&lt;/span&gt; &lt;span 
style="color:#719e07"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span 
style="color:#b58900" [...]
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 现在维护在 dubbo-go 仓库的
-&lt;a 
href="https://github.com/apache/dubbo-go/tree/main/tools/protoc-gen-go-triple"; 
target="_blank"&gt;tools/protoc-gen-go-triple&lt;/a&gt;
-目录下。请从该目录安装;修改 &lt;code&gt;.proto&lt;/code&gt; 服务定义后,请同步重新生成 
&lt;code&gt;*.triple.go&lt;/code&gt; 
文件。&lt;/p&gt;</description></item><item><title>可观测性</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</guid><description>&lt;p&gt;管理
 Dubbo 最直接的方式就是通过 Dubbo 控制面(即 dubbo-control-plane)提供的可视化界面,之前我们在& [...]
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;(&lt;/span&gt;&lt;span 
style="color:#b58900"&gt;cd&lt;/span&gt; dubbo-go/tools/protoc-gen-go-triple 
&lt;span style="color:#719e07"&gt;&amp;amp;&amp;amp;&lt;/span&gt; go install 
.&lt;span style="color:#719e07"&gt;)&lt;/span&gt;
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确保 
&lt;code&gt;protoc-gen-go&lt;/code&gt;、&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 在你的 &lt;code&gt;PATH&lt;/code&gt; 中。这可以通过 &lt;code&gt;which 
protoc-gen-go&lt;/code&gt; 和 &lt;code&gt;which 
protoc-gen-go-triple&lt;/code&gt; 
验证。如果命令不能正常工作,请执行以下命令:&lt;/p&gt;</description></item><item><title>可观测性</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/observability/console/</link><pubDate>Mon,
 0 [...]
 &lt;p&gt;&lt;strong&gt;&lt;code&gt;dubbo-control-plane&lt;/code&gt; 
支持可视化的展示、监控集群状态,还支持实时下发流量管控规则。&lt;/strong&gt;&lt;/p&gt;
 &lt;h2 id="安装控制台"&gt;安装控制台&lt;/h2&gt;
 &lt;p&gt;为了体验效果,我们首先需要安装 dubbo-control-plane,以下是在 Linux 环境下安装 
dubbo-control-plane 的具体步骤:&lt;/p&gt;
diff --git a/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml 
b/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
index dc3bebef74d..15fec7ee351 100644
--- a/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
+++ b/zh-cn/overview/mannual/golang-sdk/quickstart/index.xml
@@ -14,14 +14,8 @@
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-shell" data-lang="shell"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;go install 
google.golang.org/protobuf/cmd/protoc-gen-go@latest
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git 
clone --depth &lt;span style="color:#2aa198"&gt;1&lt;/span&gt; 
https://github.com/apache/dubbo-go.git
-&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#b58900"&gt;cd&lt;/span&gt; dubbo-go/tools/protoc-gen-go-triple
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;go 
install .
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确保 
&lt;code&gt;protoc-gen-go&lt;/code&gt;、&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 在你的 &lt;code&gt;PATH&lt;/code&gt; 中。这可以通过 &lt;code&gt;which 
protoc-gen-go&lt;/code&gt; 验证,如果该命令不能正常工作的话,请执行以下命令:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-shell" data-lang="shell"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;[&lt;/span&gt; -n &lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt;&lt;span 
style="color:#719e07"&gt;$(&lt;/span&gt;go env GOBIN&lt;span 
style="color:#719e07"&gt;)&lt;/span&gt;&lt;span style="color:#2aa198"&gt; [...]
-&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;[&lt;/span&gt; -n &lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt;&lt;span 
style="color:#719e07"&gt;$(&lt;/span&gt;go env GOPATH&lt;span 
style="color:#719e07"&gt;)&lt;/span&gt;&lt;span 
style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt; &lt;span 
style="color:#719e07"&gt;]&lt;/span&gt; &lt;span 
style="color:#719e07"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span 
style="color:#b58900" [...]
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 现在维护在 dubbo-go 仓库的
-&lt;a 
href="https://github.com/apache/dubbo-go/tree/main/tools/protoc-gen-go-triple"; 
target="_blank"&gt;tools/protoc-gen-go-triple&lt;/a&gt;
-目录下。请从该目录安装;修改 &lt;code&gt;.proto&lt;/code&gt; 服务定义后,请同步重新生成 
&lt;code&gt;*.triple.go&lt;/code&gt; 
文件。&lt;/p&gt;</description></item><item><title>开发微服务</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/</guid><description>&lt;p&gt;本示例演示了使用
 dubbo-go 开发微服务应用,为应用增加包括服务发现、负载均衡、流量管控等微服务核心能力。&lt;/p&gt;
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;&lt;span 
style="color:#719e07"&gt;(&lt;/span&gt;&lt;span 
style="color:#b58900"&gt;cd&lt;/span&gt; dubbo-go/tools/protoc-gen-go-triple 
&lt;span style="color:#719e07"&gt;&amp;amp;&amp;amp;&lt;/span&gt; go install 
.&lt;span style="color:#719e07"&gt;)&lt;/span&gt;
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确保 
&lt;code&gt;protoc-gen-go&lt;/code&gt;、&lt;code&gt;protoc-gen-go-triple&lt;/code&gt;
 在你的 &lt;code&gt;PATH&lt;/code&gt; 中。这可以通过 &lt;code&gt;which 
protoc-gen-go&lt;/code&gt; 和 &lt;code&gt;which 
protoc-gen-go-triple&lt;/code&gt; 
验证。如果命令不能正常工作,请执行以下命令:&lt;/p&gt;</description></item><item><title>开发微服务</title><link>https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/microservices/</link><pubDate>Mon,
 0 [...]
 &lt;p&gt;示例源码:&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/registry/nacos"; 
target="_blank"&gt;dubbo-go-samples/registry/nacos&lt;/a&gt;。&lt;/p&gt;
 &lt;h2 id="前置条件"&gt;前置条件&lt;/h2&gt;
 &lt;p&gt;本示例我们继续使用 Protobuf 开发微服务应用,请参考 &lt;a href="../rpc"&gt;开发 rpc server 和 
rpc client&lt;/a&gt; 了解如何安装 protoc、protoc-gen-go-triple 等必须插件。&lt;/p&gt;
diff --git a/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/index.html 
b/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/index.html
index aa78d75d7d5..655a2e7c80e 100644
--- a/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/index.html
+++ b/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=en 
href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/quickstart/rpc/><link
 rel=canonical 
href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]
 [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=en 
href=https://dubbo.apache.org/en/overview/mannual/golang-sdk/quickstart/rpc/><link
 rel=canonical 
href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/quickstart/rpc/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.org"]),_paq.push(["trackPageView"]
 [...]
 <a class=dropdown-item href=/zh-cn/overview/notices/>安全公告</a>
 <a class=dropdown-item href=/zh-cn/contact/>贡献者指南</a></div></li><li 
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item nav-item-line 
px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/download/><span>下载</span></a></li><li class="nav-item dropdown 
d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown 
role=button data-toggle=dropdown aria-haspopup=true 
aria-expanded=false>生态</a><div class="dropdo [...]
 <a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -691,24 +691,22 @@
 <label for=m-zh-cnoverviewnoticeslog4j-check><a 
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 
漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove 
[...]
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span>git clone --depth <span 
style=color:#2aa198>1</span> https://github.com/apache/dubbo-go.git
-</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go/tools/protoc-gen-go-triple
-</span></span><span style=display:flex><span>go install .
-</span></span></code></pre></div><p>确保 
<code>protoc-gen-go</code>、<code>protoc-gen-go-triple</code> 在你的 
<code>PATH</code> 中。这可以通过 <code>which protoc-gen-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-shell data-lang=shell><span style=display:flex><span><span 
style=color:#719e07>[</span> -n <span style=color:#2aa198>&#34;</span><span 
style=color:#719e07>$ [...]
+</span></span><span style=display:flex><span><span 
style=color:#719e07>(</span><span style=color:#b58900>cd</span> 
dubbo-go/tools/protoc-gen-go-triple <span style=color:#719e07>&amp;&amp;</span> 
go install .<span style=color:#719e07>)</span>
+</span></span></code></pre></div><p>确保 
<code>protoc-gen-go</code>、<code>protoc-gen-go-triple</code> 在你的 
<code>PATH</code> 中。这可以通过 <code>which protoc-gen-go</code> 和 <code>which 
protoc-gen-go-triple</code> 验证。如果命令不能正常工作,请执行以下命令:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span><span 
style=color:#719e07>[</span> -n <span style=color:#2aa198> [...]
 </span></span><span style=display:flex><span><span 
style=color:#719e07>[</span> -n <span style=color:#2aa198>&#34;</span><span 
style=color:#719e07>$(</span>go env GOPATH<span 
style=color:#719e07>)</span><span style=color:#2aa198>&#34;</span> <span 
style=color:#719e07>]</span> <span style=color:#719e07>&amp;&amp;</span> <span 
style=color:#b58900>export</span> <span style=color:#268bd2>PATH</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;</span><span 
style=color:#719 [...]
 </span></span></code></pre></div><p><code>protoc-gen-go-triple</code> 现在维护在 
dubbo-go 仓库的
 <a 
href=https://github.com/apache/dubbo-go/tree/main/tools/protoc-gen-go-triple 
target=_blank>tools/protoc-gen-go-triple</a>
-目录下。请从该目录安装;修改 <code>.proto</code> 服务定义后,请同步重新生成 <code>*.triple.go</code> 
文件。</p></li></ol><h2 id=快速运行示例>快速运行示例</h2><h3 id=下载示例源码>下载示例源码</h3><p>我们在 <a 
href=https://github.com/apache/dubbo-go-samples/ 
target=_blank>apache/dubbo-go-samples</a> 仓库维护了一系列 dubbo-go 使用示例,用来帮助用户快速学习 
dubbo-go 使用方式。</p><p>你可以 <a 
href=https://github.com/apache/dubbo-go-samples/archive/refs/heads/main.zip 
target=_blank>下载示例 zip 包并解压</a>,或者克隆仓库:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-c [...]
-</span></span></code></pre></div><p>切换到快速开始示例目录:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ <span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
-</span></span></code></pre></div><h3 id=运行-server>运行 server</h3><p>在 
<code>go-server/cmd</code> 目录:</p><p>运行以下命令,启动 server:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ go run 
server.go
-</span></span></code></pre></div><p>使用 <code>cURL</code> 验证 server 
已经正常启动:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ curl 
<span style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;: &#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>      http://localhost:20000/greet.GreetService/Greet
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>Greeting: Hello world
-</span></span></code></pre></div><h3 id=运行-client>运行 client</h3><p>打开一个新的 
terminal,运行以下命令,在 <code>go-client/cmd</code> 目录运行以下命令,启动 client</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>$ go run 
client.go
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>Greeting: Hello world
+目录下。请从该目录安装;修改 <code>.proto</code> 服务定义后,请同步重新生成 <code>*.triple.go</code> 
文件。</p></li></ol><h2 id=快速运行示例>快速运行示例</h2><h3 id=下载示例源码>下载示例源码</h3><p>我们在 <a 
href=https://github.com/apache/dubbo-go-samples/ 
target=_blank>apache/dubbo-go-samples</a> 仓库维护了一系列 dubbo-go 使用示例,用来帮助用户快速学习 
dubbo-go 使用方式。</p><p>你可以 <a 
href=https://github.com/apache/dubbo-go-samples/archive/refs/heads/main.zip 
target=_blank>下载示例 zip 包并解压</a>,或者克隆仓库:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-c [...]
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
+</span></span></code></pre></div><h3 id=运行-server>运行 server</h3><p>以下命令均从 
<code>helloworld</code> 根目录运行。启动 server:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>go run 
./go-server/cmd/main.go
+</span></span></code></pre></div><p>使用 <code>cURL</code> 验证 server 
已经正常启动:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>curl <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;:&#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  http://localhost:20000/greet.GreetService/Greet
+</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-json data-lang=json><span style=display:flex><span>{<span 
style=color:#268bd2>&#34;greeting&#34;</span>:<span 
style=color:#2aa198>&#34;Dubbo&#34;</span>}
+</span></span></code></pre></div><h3 id=运行-client>运行 
client</h3><p>打开一个新的终端,重新进入 <code>helloworld</code> 根目录并启动 client:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/helloworld
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.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-text data-lang=text><span style=display:flex><span>Greet 
response: hello world
 </span></span></code></pre></div><p>以上就是一个完整的 dubbo-go RPC 通信服务开发过程。</p><h2 
id=源码讲解>源码讲解</h2><p>接下来,我们将对 <code>dubbo-go-samples/helloworld</code> 
示例进行源码层面的讲解。</p><h3 id=定义服务>定义服务</h3><p>示例使用 Protocol Buffer (IDL) 来定义 Dubbo 
服务。</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-protobuf data-lang=protobuf><span 
style=display:flex><span>syntax <span style=color:#719e07>=</span> <span 
style=color [...]
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span><span 
style=color:#719e07>package</span> greet;
@@ -725,21 +723,43 @@
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>service</span> GreetService {
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>rpc</span> Greet(GreetRequest) <span 
style=color:#719e07>returns</span> (GreetResponse) {}
 </span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p>这个文件声明了一个叫做 <code>GreetService</code> 
的服务,为这个服务定义了 Greet 方法以及它的请求参数 GreetRequest 和返回值 GreetResponse。</p><h3 
id=生成代码>生成代码</h3><p>在运行 server 或者 client 之前,我们需要使用 
<code>protoc-gen-go</code>、<code>protoc-gen-go-triple</code> 生成相关的代码</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>protoc 
--go_out<span style=col [...]
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --go-triple_out<span 
style=color:#719e07>=</span>. --go-triple_opt<span 
style=color:#719e07>=</span><span style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
-</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    ./greet.proto
-</span></span></code></pre></div><p>运行以上命令后,在目标目录中看到以下生成的文件:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span> 
proto
-</span></span><span style=display:flex><span>    ├── greet.pb.go
-</span></span><span style=display:flex><span>    ├── greet.proto
-</span></span><span style=display:flex><span>    └── greet.triple.go
-</span></span></code></pre></div><p>在 proto/greet/v1 
包下有两部分内容:</p><ul><li><code>greet.pb.go</code> 是由谷歌标准的 
<code>protoc-gen-go</code>生成,它包含 
<code>GreetRequest</code>、<code>GreetResponse</code> 
结构体和响应的编解码规则。</li><li><code>greet.triple.go</code> 是由 Dubbo 
自定义的插件<code>protoc-gen-go-triple</code>成,其中关键的信息包括生成的接口 
<code>GreetService</code>、构造器等。</li></ul><h3 
id=实现服务>实现服务</h3><p>接下来我们就需要添加业务逻辑了,实现 <code>greet.GreetService</code> 
接口即可。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;b [...]
+</span></span></code></pre></div><p><code>proto/greet.proto</code> 声明了名为 
<code>GreetService</code> 的服务,并定义了 RPC 方法 <code>Greet</code>、请求 
<code>GreetRequest</code> 和响应 <code>GreetResponse</code>。</p><h3 
id=生成代码>生成代码</h3><p>在运行 server 或 client 之前,需要在 <code>helloworld</code> 根目录使用 
<code>protoc-gen-go</code> 和 <code>protoc-gen-go-triple</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=lang [...]
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go_out<span style=color:#719e07>=</span>. <span 
style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go_opt<span style=color:#719e07>=</span><span 
style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go-triple_out<span style=color:#719e07>=</span>. 
<span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  --go-triple_opt<span 
style=color:#719e07>=</span><span style=color:#268bd2>paths</span><span 
style=color:#719e07>=</span>source_relative <span style=color:#cb4b16>\
+</span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>  ./proto/greet.proto
+</span></span></code></pre></div><p>运行后,<code>proto</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-text data-lang=text><span style=display:flex><span>proto/
+</span></span><span style=display:flex><span>├── greet.proto
+</span></span><span style=display:flex><span>├── greet.pb.go
+</span></span><span style=display:flex><span>└── greet.triple.go
+</span></span></code></pre></div><p>其中:</p><ul><li><code>greet.pb.go</code> 
由标准的 <code>protoc-gen-go</code> 生成,主要包含 
<code>GreetRequest</code>、<code>GreetResponse</code> 等 Protobuf 
消息及编解码代码。</li><li><code>greet.triple.go</code> 由 
<code>protoc-gen-go-triple</code> 生成,主要包含 Triple 服务端注册、客户端代理和 RPC 调用相关代码,例如 
<code>RegisterGreetServiceHandler</code> 和 
<code>NewGreetService</code>。</li></ul><p>修改 <code>proto/greet.proto</code> 
后,需要重新运行上述命令,同时更新这两个生成文件。</p><h3 id=实现服务>实现服务</h3><p>接下来添加业务逻辑。<code [...]
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>func</span> (srv <span 
style=color:#719e07>*</span>GreetTripleServer) <span 
style=color:#268bd2>Greet</span>(ctx context.Context, req <span 
style=color:#719e07>*</span>greet.GreetRequest) (<span 
style=color:#719e07>*</span>greet.GreetResponse, <span 
style=color:#dc322f>error</span>) {
+</span></span><span style=display:flex><span>  resp <span 
style=color:#719e07>:=</span> <span 
style=color:#719e07>&amp;</span>greet.GreetResponse{Greeting: req.Name}
+</span></span><span style=display:flex><span>  <span 
style=color:#719e07>return</span> resp, <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>}
+</span></span></code></pre></div><h3 id=启动-server>启动 Server</h3><p>创建 
Server,并通过 <code>RegisterGreetServiceHandler</code> 注册上一步实现的 
<code>GreetTripleServer</code>。Server 在 <code>20000</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:#719e07>package</span> main
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#719e07>import</span> (
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;context&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  _ <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/imports&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/protocol&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/server&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;github.com/dubbogo/gost/log/logger&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  greet <span 
style=color:#2aa198>&#34;github.com/apache/dubbo-go-samples/helloworld/proto&#34;</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>type</span> GreetTripleServer <span 
style=color:#268bd2>struct</span>{}
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span><span 
style=color:#268bd2>func</span> (srv <span 
style=color:#719e07>*</span>GreetTripleServer) <span 
style=color:#268bd2>Greet</span>(ctx context.Context, req <span 
style=color:#719e07>*</span>greet.GreetRequest) (<span 
style=color:#719e07>*</span>greet.GreetResponse, <span 
style=color:#dc322f>error</span>) {
 </span></span><span style=display:flex><span>  resp <span 
style=color:#719e07>:=</span> <span 
style=color:#719e07>&amp;</span>greet.GreetResponse{Greeting: req.Name}
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>return</span> resp, <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>}
-</span></span></code></pre></div><h3 id=启动-server>启动 Server</h3><p>创建一个新的 
Server,把我们上一步中实现的 <code>GreeterServer</code>注册给它,接下来就可以直接初始化和启动 Server 
了,它将在指定的端口接收请求。</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>func</span> <span style=color:#268bd2>main</span>() {
+</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>() {
 </span></span><span style=display:flex><span>  srv, err <span 
style=color:#719e07>:=</span> server.<span style=color:#268bd2>NewServer</span>(
 </span></span><span style=display:flex><span>          server.<span 
style=color:#268bd2>WithServerProtocol</span>(
 </span></span><span style=display:flex><span>                  protocol.<span 
style=color:#268bd2>WithPort</span>(<span style=color:#2aa198>20000</span>),
@@ -747,37 +767,59 @@
 </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>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create server: %v&#34;</span>, err)
+</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 
style=color:#719e07>if</span> err <span style=color:#719e07>:=</span> 
greet.<span style=color:#268bd2>RegisterGreetServiceHandler</span>(srv, <span 
style=color:#719e07>&amp;</span>GreetTripleServer{}); err <span 
style=color:#719e07>!=</span> <span style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
register greet service handler: %v&#34;</span>, err)
+</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 
style=color:#719e07>if</span> err <span style=color:#719e07>:=</span> srv.<span 
style=color:#268bd2>Serve</span>(); err <span style=color:#719e07>!=</span> 
<span style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Error</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
serve: %v&#34;</span>, err)
+</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></code></pre></div><h3 id=访问服务>访问服务</h3><p>最简单方式是使用 HTTP/1.1 
POST 请求访问服务,参数则作以标准 JSON 格式作为 HTTP 负载传递。如下是使用 cURL 命令的访问示例:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-shell data-lang=shell><span style=display:flex><span>curl <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --header <span 
style=color:#2aa198>&#34;Content-Type: application/json&#34;</span> <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    --data <span 
style=color:#2aa198>&#39;{&#34;name&#34;: &#34;Dubbo&#34;}&#39;</span> <span 
style=color:#cb4b16>\
 </span></span></span><span style=display:flex><span><span 
style=color:#cb4b16></span>    http://localhost:20000/greet.GreetService/Greet
-</span></span></code></pre></div><p>也可以使用 Dubbo client 请求服务,我们首先需要从生成代码即 
<code>greet</code> 包中获取服务代理,为它指定 server 地址并初始化,之后就可以发起 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-go data-lang=go><span style=display:flex><span><span 
style=color:#268bd2>func</span> <span style=color:#268bd2>main</span>() {
+</span></span></code></pre></div><p>也可以使用 Dubbo client 请求服务,我们首先需要从生成代码即 
<code>greet</code> 包中获取服务代理,为它指定 server 地址并初始化,之后就可以发起 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-go data-lang=go><span style=display:flex><span><span 
style=color:#719e07>package</span> main
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#719e07>import</span> (
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;context&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;time&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/client&#34;</span>
+</span></span><span style=display:flex><span>  _ <span 
style=color:#2aa198>&#34;dubbo.apache.org/dubbo-go/v3/imports&#34;</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#2aa198>&#34;github.com/dubbogo/gost/log/logger&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  greet <span 
style=color:#2aa198>&#34;github.com/apache/dubbo-go-samples/helloworld/proto&#34;</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>func</span> <span style=color:#268bd2>main</span>() {
 </span></span><span style=display:flex><span>  cli, err <span 
style=color:#719e07>:=</span> client.<span style=color:#268bd2>NewClient</span>(
 </span></span><span style=display:flex><span>          client.<span 
style=color:#268bd2>WithClientURL</span>(<span 
style=color:#2aa198>&#34;127.0.0.1:20000&#34;</span>),
 </span></span><span style=display:flex><span>  )
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create client: %v&#34;</span>, err)
+</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>  svc, err <span 
style=color:#719e07>:=</span> greet.<span 
style=color:#268bd2>NewGreetService</span>(cli)
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          <span 
style=color:#b58900>panic</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
create greet service: %v&#34;</span>, err)
+</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>  resp, err <span 
style=color:#719e07>:=</span> svc.<span 
style=color:#268bd2>Greet</span>(context.<span 
style=color:#268bd2>Background</span>(), <span 
style=color:#719e07>&amp;</span>greet.GreetRequest{Name: <span 
style=color:#2aa198>&#34;hello world&#34;</span>})
+</span></span><span style=display:flex><span>  ctx, cancel <span 
style=color:#719e07>:=</span> context.<span 
style=color:#268bd2>WithTimeout</span>(context.<span 
style=color:#268bd2>Background</span>(), time.Second)
+</span></span><span style=display:flex><span>  <span 
style=color:#719e07>defer</span> <span style=color:#268bd2>cancel</span>()
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>  resp, err <span 
style=color:#719e07>:=</span> svc.<span style=color:#268bd2>Greet</span>(ctx, 
<span style=color:#719e07>&amp;</span>greet.GreetRequest{Name: <span 
style=color:#2aa198>&#34;hello world&#34;</span>})
 </span></span><span style=display:flex><span>  <span 
style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span 
style=color:#cb4b16>nil</span> {
-</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Error</span>(err)
+</span></span><span style=display:flex><span>          logger.<span 
style=color:#268bd2>Errorf</span>(<span style=color:#2aa198>&#34;failed to 
greet: %v&#34;</span>, err)
+</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>  logger.<span 
style=color:#268bd2>Infof</span>(<span style=color:#2aa198>&#34;Greet response: 
%s&#34;</span>, resp.Greeting)
 </span></span><span style=display:flex><span>}
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index aa2363c40a3..ec2ba7f4e34 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://dubbo.apach [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://dubbo.apach [...]
\ No newline at end of file

Reply via email to