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

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


The following commit(s) were added to refs/heads/cn-site by this push:
     new 7c4d0830070 deploy: 3499c246b1f97d504fde5c36237d48c257634ae9
7c4d0830070 is described below

commit 7c4d0830070204a35308a352a19311347371cfa5
Author: Alanxtl <[email protected]>
AuthorDate: Sun Aug 9 05:47:36 2026 +0000

    deploy: 3499c246b1f97d504fde5c36237d48c257634ae9
---
 css/app.css                                        |   2 +-
 css/chunk-vendors.css                              |   2 +-
 en/index.xml                                       |   2 +-
 .../golang-sdk/tutorial/observability/index.xml    |   2 +-
 .../tutorial/observability/probe/index.html        | 128 ++++++++++++++++-----
 en/sitemap.xml                                     |   2 +-
 js/app.js                                          |   3 +-
 js/chunk-vendors.js                                |  61 +---------
 sitemap.xml                                        |   2 +-
 zh-cn/index.xml                                    |   4 +-
 .../golang-sdk/tutorial/observability/index.xml    |   4 +-
 .../tutorial/observability/probe/index.html        | 128 ++++++++++++++++-----
 zh-cn/sitemap.xml                                  |   2 +-
 13 files changed, 207 insertions(+), 135 deletions(-)

diff --git a/css/app.css b/css/app.css
index 44c2a2c2469..b9457c8de14 100644
--- a/css/app.css
+++ b/css/app.css
@@ -1 +1 @@
-h3[data-v-76eccb7f]{margin:40px 0 
0}ul[data-v-76eccb7f]{list-style-type:none;padding:0}li[data-v-76eccb7f]{display:inline-block;margin:0
 
10px}a[data-v-76eccb7f]{color:#42b983}.form-layout[data-v-76eccb7f]{display:flex;justify-content:space-between;align-items:flex-start}.left-form[data-v-76eccb7f]{flex:1;max-width:calc(50%
 - 
20px);margin-right:20px}.right-text[data-v-76eccb7f]{flex-shrink:0;width:calc(50%
 - 20px)}.left-form 
.el-form-item__label[data-v-76eccb7f]{text-align:left}.left-form [...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build 
time*/
\ No newline at end of file
diff --git a/css/chunk-vendors.css b/css/chunk-vendors.css
index 61c66238ea8..b9457c8de14 100644
--- a/css/chunk-vendors.css
+++ b/css/chunk-vendors.css
@@ -1 +1 @@
-@font-face{font-family:element-icons;src:url(../fonts/element-icons.ff18efd1.woff)
 format("woff"),url(../fonts/element-icons.f1a45d74.ttf) 
format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*="
 
el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:gr
 [...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build 
time*/
\ No newline at end of file
diff --git a/en/index.xml b/en/index.xml
index e00593dedb8..080fbf709fb 100644
--- a/en/index.xml
+++ b/en/index.xml
@@ -3405,7 +3405,7 @@ For 
example:&lt;/p&gt;</description></item><item><title>Dubbo SPI Plugins and De
 &lt;/ul&gt;
 &lt;p&gt;For a complete runnable example, see:&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe"&gt;https://github.com/apache/dubbo-go-samples/tree/main/observability/probe&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;hr&gt;
 &lt;h1 id="1-design-goals"&gt;1. Design Goals&lt;/h1&gt;
diff --git a/en/overview/mannual/golang-sdk/tutorial/observability/index.xml 
b/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
index 990fcee5925..dbbadfbf60d 100644
--- a/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
+++ b/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
@@ -49,7 +49,7 @@
 &lt;/ul&gt;
 &lt;p&gt;For a complete runnable example, see:&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe"&gt;https://github.com/apache/dubbo-go-samples/tree/main/observability/probe&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;hr&gt;
 &lt;h1 id="1-design-goals"&gt;1. Design Goals&lt;/h1&gt;
diff --git 
a/en/overview/mannual/golang-sdk/tutorial/observability/probe/index.html 
b/en/overview/mannual/golang-sdk/tutorial/observability/probe/index.html
index e4811fef7d1..94923c7aca0 100644
--- a/en/overview/mannual/golang-sdk/tutorial/observability/probe/index.html
+++ b/en/overview/mannual/golang-sdk/tutorial/observability/probe/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://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/probe/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.
 [...]
+<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/probe/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.
 [...]
 <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>
@@ -693,8 +693,8 @@
 <label for=m-enoverviewnoticesprotocol-check><a 
href=/en/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-enoverviewnoticesprotocol><span>RPC Protocol 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticesregistry-li><input 
type=checkbox id=m-enoverviewnoticesregistry-check>
 <label for=m-enoverviewnoticesregistry-check><a 
href=/en/overview/notices/registry/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-enoverviewnoticesregistry><span>Registry Center 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticesadmin-li><input 
type=checkbox id=m-enoverviewnoticesadmin-check>
 <label for=m-enoverviewnoticesadmin-check><a href=/en/overview/notices/admin/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__page" 
id=m-enoverviewnoticesadmin><span>Dubbo Admin 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticeslog4j-li><input 
type=checkbox id=m-enoverviewnoticeslog4j-check>
-<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></code></pre></div><p>The following paths are 
available:</p><table><thead><tr><th>Endpoint</th><th>Description</th></tr></thead><tbody><tr><td>GET
 /live</td><td>Process liveness check</td></tr><tr><td>GET 
/ready</td><td>Service readiness check</td></tr><tr><td>GET 
/startup</td><td>Application startup check</td></tr></tbody></table><hr><h2 
id=response-rules>Response 
Rules</h2><table><thead><tr><th>Condition</th><th>HTTP Status 
Code</th></tr></thead><tbody><tr><td>All checks  [...]
+<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></code></pre></div><p>The following paths are 
available:</p><table><thead><tr><th>Endpoint</th><th>Description</th></tr></thead><tbody><tr><td>GET
 /live</td><td>Process liveness check</td></tr><tr><td>GET 
/ready</td><td>Service readiness check</td></tr><tr><td>GET 
/startup</td><td>Application startup check</td></tr></tbody></table><hr><h2 
id=response-rules>Response 
Rules</h2><table><thead><tr><th>Condition</th><th>HTTP Status 
Code</th></tr></thead><tbody><tr><td>All checks  [...]
 </span></span><span style=display:flex><span>  dubbo.<span 
style=color:#268bd2>WithMetrics</span>(
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbeEnabled</span>(),
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbePort</span>(<span 
style=color:#2aa198>22222</span>),
@@ -704,7 +704,7 @@
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbeUseInternalState</span>(<span 
style=color:#cb4b16>true</span>),
 </span></span><span style=display:flex><span>  ),
 </span></span><span style=display:flex><span>)
-</span></span></code></pre></div><hr><h2 id=available-options>Available 
Options</h2><table><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td>WithProbeEnabled()</td><td>Enable
 Probe</td></tr><tr><td>WithProbePort(int)</td><td>Set Probe HTTP 
port</td></tr><tr><td>WithProbeLivenessPath(string)</td><td>Set liveness 
path</td></tr><tr><td>WithProbeReadinessPath(string)</td><td>Set readiness 
path</td></tr><tr><td>WithProbeStartupPath(string)</td><td>Set startup 
path</td> [...]
+</span></span></code></pre></div><hr><h2 id=available-options>Available 
Options</h2><table><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td>WithProbeEnabled()</td><td>Enable
 Probe</td></tr><tr><td>WithProbePort(int)</td><td>Set Probe HTTP 
port</td></tr><tr><td>WithProbeLivenessPath(string)</td><td>Set liveness 
path</td></tr><tr><td>WithProbeReadinessPath(string)</td><td>Set readiness 
path</td></tr><tr><td>WithProbeStartupPath(string)</td><td>Set startup 
path</td> [...]
 </span></span><span style=display:flex><span>  <span 
style=color:#268bd2>probe</span>:
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
@@ -733,33 +733,99 @@
 </span></span><span style=display:flex><span>    <span style=color:#586e75>// 
check warmup completion</span>
 </span></span><span style=display:flex><span>    <span 
style=color:#719e07>return</span> <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>})
-</span></span></code></pre></div><hr><h2 id=execution-logic>Execution 
Logic</h2><ul><li>All registered checks will be executed.</li><li>If any check 
returns an error,</li><li>The probe returns HTTP 503.</li></ul><hr><h1 
id=6-semantic-recommendations>6. Semantic Recommendations</h1><h2 
id=liveness>Liveness</h2><p>Recommended usage:</p><ul><li>Detect process 
crashes</li><li>Detect fatal core dependency failure</li></ul><p>⚠️ Failure 
will trigger Pod restart.</p><hr><h2 id=readiness>Readine [...]
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /live
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>15</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>3</span>
+</span></span></code></pre></div><hr><h2 id=execution-logic>Execution 
Logic</h2><ul><li>All registered checks will be executed.</li><li>If any check 
returns an error,</li><li>The probe returns HTTP 503.</li></ul><hr><h1 
id=6-semantic-recommendations>6. Semantic Recommendations</h1><h2 
id=liveness>Liveness</h2><p>Recommended usage:</p><ul><li>Detect process 
crashes</li><li>Detect fatal core dependency failure</li></ul><p>⚠️ Failure 
will trigger Pod restart.</p><hr><h2 id=readiness>Readine [...]
+</span></span></code></pre></div><p>The script contents are:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#719e07>#!/bin/bash
+</span></span></span><span style=display:flex><span><span 
style=color:#719e07></span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
Licensed to the Apache Software Foundation (ASF) under one or more</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
contributor license agreements.  See the NOTICE file distributed with</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  this 
work for additional information regarding copyright ownership.</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  The 
ASF licenses this file to You under the Apache License, Version 2.0</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  (the 
&#34;License&#34;); you may not use this file except in compliance with</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  the 
License.  You may obtain a copy of the License at</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#      
http://www.apache.org/licenses/LICENSE-2.0</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
Unless required by applicable law or agreed to in writing, software</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
distributed under the License is distributed on an &#34;AS IS&#34; BASIS,</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  See 
the License for the specific language governing permissions and</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
limitations under the License.</span>
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>readinessProbe</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /ready
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>2</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>set</span> -e
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>startupProbe</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /startup
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span 
style=color:#2aa198>25</span> <span style=color:#586e75># 120s startup budget 
=&gt; ceil(120 / 5) + 1</span>
-</span></span></code></pre></div><hr><h1 id=8-example-usage>8. Example 
Usage</h1><p>Example path:</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>metrics/probe/
-</span></span></code></pre></div><hr><h2 id=run-locally>Run Locally</h2><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./metrics/probe/go-server/cmd/main.go
+</span></span><span style=display:flex><span><span 
style=color:#b58900>echo</span> <span style=color:#2aa198>&#34;Building probe 
server image...&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Build 
from repository root.</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> <span style=color:#2aa198>&#34;</span><span 
style=color:#719e07>$(</span>dirname <span 
style=color:#2aa198>&#34;</span><span style=color:#268bd2>$0</span><span 
style=color:#2aa198>&#34;</span><span style=color:#719e07>)</span><span 
style=color:#2aa198>/../../..&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Build 
linux binary first. This uses local `replace =&gt; ../dubbo-go` if 
present.</span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>TARGET_OS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>${</span><span style=color:#268bd2>TARGET_OS</span><span 
style=color:#719e07>:-</span><span style=color:#268bd2>linux</span><span 
style=color:#2aa198>}</span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>TARGET_ARCH</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>${</span><span style=color:#268bd2>TARGET_ARCH</span><span 
style=color:#719e07>:-</span><span style=color:#268bd2>amd64</span><span 
style=color:#2aa198>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>CGO_ENABLED</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>0</span> <span style=color:#268bd2>GOOS</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;</span><span 
style=color:#268bd2>$TARGET_OS</span><span style=color:#2aa198>&#34;</span> 
<span style=color:#268bd2>GOARCH</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;</span><span style=color:#268bd2>$TARGE [...]
+</span></span><span style=display:flex><span>docker build -f 
observability/probe/go-server/Dockerfile -t dubbo-go-probe-server:latest .
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>echo</span> <span style=color:#2aa198>&#34;Build completed 
successfully.&#34;</span>
+</span></span></code></pre></div><p>If you use a local Minikube cluster, you 
can also load the image:</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>minikube 
image load dubbo-go-probe-server:latest
+</span></span></code></pre></div><p>The following complete Deployment is based 
on <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/observability/probe/deploy/server-deployment.yml>server-deployment.yml</a>
 in dubbo-go-samples and configures liveness, readiness, and startup probes on 
the container:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=di [...]
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: Deployment
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>replicas</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>selector</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchLabels</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>template</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span>        <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>containers</span>:
+</span></span><span style=display:flex><span>        - <span 
style=color:#268bd2>name</span>: server
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>image</span>: dubbo-go-probe-server:latest
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>imagePullPolicy</span>: IfNotPresent
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>ports</span>:
+</span></span><span style=display:flex><span>            - <span 
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>20000</span>
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>name</span>: triple
+</span></span><span style=display:flex><span>            - <span 
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>22222</span>
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>name</span>: probe
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>livenessProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /live
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>readinessProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /ready
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>startupProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /startup
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>30</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>1</span>
+</span></span></code></pre></div><hr><p>Deploy to Kubernetes:</p><p>Run the 
following commands from the dubbo-go-samples repository root:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>kubectl 
apply -f observability/probe/deploy/server-deployment.yml
+</span></span><span style=display:flex><span>kubectl rollout status 
deploy/dubbo-go-probe-server
+</span></span></code></pre></div><hr><h1 id=8-example-usage>8. Example 
Usage</h1><p>The example path and run commands below use the dubbo-go-samples 
repository root as their working directory.</p><p>Example path:</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>observability/probe/
+</span></span></code></pre></div><hr><h2 id=run-locally>Run Locally</h2><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./observability/probe/go-server/cmd/main.go
+</span></span></code></pre></div><hr><h2 id=verify-probes-with-curl>Verify 
Probes with curl</h2><p>After the service starts, you can request the three 
probe endpoints separately:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#586e75># liveness, expected 200</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> http://127.0.0.1:22222/live
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># 
readiness, expected 503 before the service is ready</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> http://127.0.0.1:22222/ready
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># 
startup, expected 503 before startup is complete</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> 
http://127.0.0.1:22222/startup
+</span></span></code></pre></div><p>You can also inspect the response 
body:</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>curl -i 
http://127.0.0.1:22222/live
+</span></span><span style=display:flex><span>curl -i 
http://127.0.0.1:22222/ready
+</span></span><span style=display:flex><span>curl -i 
http://127.0.0.1:22222/startup
 </span></span></code></pre></div><hr><h2 
id=monitor-probe-status-in-real-time>Monitor Probe Status in Real Time</h2><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>watch -n 
<span style=color:#2aa198>1</span> <span style=color:#2aa198>&#39;
 </span></span></span><span style=display:flex><span><span 
style=color:#2aa198>for p in live ready startup; do
 </span></span></span><span style=display:flex><span><span style=color:#2aa198> 
 url=&#34;http://127.0.0.1:22222/$p&#34;
@@ -772,10 +838,10 @@
 </span></span></span><span style=display:flex><span><span 
style=color:#2aa198>&#39;</span>
 </span></span></code></pre></div><hr><h2 id=expected-behavior>Expected 
Behavior</h2><table><thead><tr><th>Phase</th><th>/live</th><th>/ready</th><th>/startup</th></tr></thead><tbody><tr><td>Just
 started</td><td>200</td><td>503</td><td>503</td></tr><tr><td>Warm-up 
phase</td><td>200</td><td>503</td><td>503</td></tr><tr><td>Warm-up 
complete</td><td>200</td><td>200</td><td>200</td></tr></tbody></table><hr><h1 
id=9-production-best-practices>9. Production Best Practices</h1><h2 
id=recommended- [...]
 </span></span></code></pre></div><h2 id=operational-guidance>Operational 
Guidance</h2><ul><li>Keep <code>liveness</code> simple and reserve it for 
failures that require a restart</li><li>Put service registry, database, Redis, 
and downstream RPC checks in <code>readiness</code></li><li>Let 
<code>startup</code> absorb slow initialization instead of inflating 
<code>liveness.initialDelaySeconds</code></li><li>In microservice clusters, 
enable <code>use-internal-state: true</code> and combine  [...]
-<button class="btn btn-primary mb-4 
feedback--no">No</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable
 [...]
+<button class="btn btn-primary mb-4 
feedback--no">No</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable
 [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/en//overview/mannual/golang-sdk/tutorial/observability/probe?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=Kubernetes%20Lifecycle%20Probe";
 target=_blank><i class="fab fa-github fa-fw"></i> Create an issue</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> Create project issue</a></div><nav 
id=TableOfContents><ul><li><a href=#response-rules>Response 
Rules</a></li></ul><ul><li><a href=#31-new-api-configuration-recommended>3.1 
New API Configuration (Recommended)</a></li><li><a 
href=#available-options>Available Options</a></li><li><a 
href=#32-old-api-yaml-configuration>3.2 Old API YAML 
Configuration</a></li><li><a href=#configuration-fields>Con [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> Create project issue</a></div><nav 
id=TableOfContents><ul><li><a href=#response-rules>Response 
Rules</a></li></ul><ul><li><a href=#31-new-api-configuration-recommended>3.1 
New API Configuration (Recommended)</a></li><li><a 
href=#available-options>Available Options</a></li><li><a 
href=#32-yaml-configuration-file>3.2 YAML Configuration File</a></li><li><a 
href=#configuration-fields>Configura [...]
 <button class="contact-btn qr-container" 
onmouseover='showQRCode("dingding-qr")' 
onmouseout='hideQRCode("dingding-qr")'>DINGTALK CHANNEL<div class=qr-code 
id=dingding-qr style=display:none><img 
src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg
 alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a 
href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div 
class=footer-container-right><ul><li>DOCUMENTATION</li><li><a 
href=/en/overview/>Overview</a></li><li><a href=/en/overview/quickstart/>Quick 
Start</a></li><li><a 
href=/en/contact/contributor/software-donation-guide_dev/>Developer 
guide</a></li></ul><ul><li>RESOURCES</li><li><a 
href=/en/contact/>Community</a></li></ul></div></div><div 
style="width:85.125rem;height:0;border:1px solid #ddd [...]
 project logo are either registered trademarks or trademarks of The Apache 
Software Foundation in the United States
diff --git a/en/sitemap.xml b/en/sitemap.xml
index 5ec0fa16f3a..1f88903df2c 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://cn.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://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/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://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7
 [...]
\ No newline at end of file
diff --git a/js/app.js b/js/app.js
index b17e7b31a97..069248774b1 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1,2 +1 @@
-(function(){"use strict";var t={5030:function(t,e,r){var 
n=r(2856),o=function(){var t=this,e=t._self._c;return 
e("div",{attrs:{id:"app"}},[e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"30px"}},[t._v("Dubbo
 
基准测试")])])],1),e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"15px","text-align":"right"}},[e("a",{attrs:{target:"_blank",href:"https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-
 [...]
-//# sourceMappingURL=app.a7f8f515.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build 
time
\ No newline at end of file
diff --git a/js/chunk-vendors.js b/js/chunk-vendors.js
index e33ee56a2ec..069248774b1 100644
--- a/js/chunk-vendors.js
+++ b/js/chunk-vendors.js
@@ -1,60 +1 @@
-(self["webpackChunkdubbo_benchmark"]=self["webpackChunkdubbo_benchmark"]||[]).push([[504],{1656:function(e,t,n){"use
 strict";function i(e,t,n,i,r,o,a,s){var l,u="function"===typeof 
e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof
 __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&& [...]
-/**
- * @license
- * Lodash <https://lodash.com/>
- * Copyright JS Foundation and other contributors <https://js.foundation/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & 
Editors
- */(function(){var o,a="4.17.10",s=200,l="Unsupported core-js use. Try 
https://npms.io/search?q=ponyfill.",u="Expected a 
function",c="__lodash_hash_undefined__",h=500,d="__lodash_placeholder__",p=1,f=2,g=4,v=1,m=2,y=1,b=2,_=4,x=8,w=16,S=32,C=64,k=128,M=256,T=512,D=30,I="...",O=800,A=16,E=1,P=2,L=3,N=1/0,R=9007199254740991,$=17976931348623157e292,z=NaN,V=4294967295,F=V-1,B=V>>>1,j=[["ary",k],["bind",y],["bindKey",b],["curry",x],["curryRight",w],["flip",T],["partial",S],["partialRight",C],
 [...]
-/**
- * @fileOverview Kickass library to create and place poppers near their 
reference elements.
- * @version {{version}}
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */(function(o,a){i=a,r="function"===typeof i?i.call(t,n,t,e):i,void 
0===r||(e.exports=r)})(0,function(){var 
e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function
 n(e,n,i){this._reference=e [...]
-/*!
- * jQuery JavaScript Library v3.7.1
- * https://jquery.com/
- *
- * Copyright OpenJS Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
- *
- * Date: 2023-08-28T13:37Z
- */
-function(t,n){"use strict";"object"===typeof 
e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new 
Error("jQuery requires a window with a document");return 
n(e)}:n(t)}("undefined"!==typeof window?window:this,function(n,o){"use 
strict";var a=[],s=Object.getPrototypeOf,l=a.slice,u=a.flat?function(e){return 
a.flat.call(e)}:function(e){return 
a.concat.apply([],e)},c=a.push,h=a.indexOf,d={},p=d.toString,f=d.hasOwnProperty,g=f.toString,v=g.call(Object),m={},y=function(e){
 [...]
-/**
- * Checks if an event is supported in the current execution environment.
- *
- * NOTE: This will not work correctly for non-generic events such as `change`,
- * `reset`, `load`, `error`, and `select`.
- *
- * Borrows from Modernizr.
- *
- * @param {string} eventNameSuffix Event name, e.g. "click".
- * @param {?boolean} capture Check if the capture phase is supported.
- * @return {boolean} True if the event is supported.
- * @internal
- * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */
-function o(e,t){if(!r.canUseDOM||t&&!("addEventListener"in 
document))return!1;var n="on"+e,o=n in document;if(!o){var 
a=document.createElement("div");a.setAttribute(n,"return;"),o="function"===typeof
 
a[n]}return!o&&i&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=o},9030:function(e,t,n){"use
 strict";var i=n(8656),r=n(2021),o= [...]
-//# sourceMappingURL=chunk-vendors.8eb077c9.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build 
time
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 3331f1d3384..7360b417736 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-09T13:24:26+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-09T13:24:26+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-09T13:40:17+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-09T13:40:17+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index 2e2ce4aa4ba..6039c5afc77 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -14167,7 +14167,7 @@ dubbo http服务需要传递 rest-service-version 和 
rest-service-group 两个h
 &lt;li&gt;可选内部生命周期对齐&lt;/li&gt;
 &lt;li&gt;可控的重启风险&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;以下是一个具体的使用示例,可查看 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe"&gt;示例完整源码&lt;/a&gt;。&lt;/p&gt;
+&lt;p&gt;以下是一个具体的使用示例,可查看 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe"&gt;示例完整源码&lt;/a&gt;。&lt;/p&gt;
 &lt;hr&gt;
 &lt;h1 id="一设计目标"&gt;一、设计目标&lt;/h1&gt;
 &lt;table&gt;
@@ -14245,7 +14245,7 @@ dubbo http服务需要传递 rest-service-version 和 
rest-service-group 两个h
 &lt;/table&gt;
 &lt;hr&gt;
 &lt;h1 id="三配置方式"&gt;三、配置方式&lt;/h1&gt;
-&lt;p&gt;Dubbo-Go 支持 &lt;strong&gt;New API(推荐)&lt;/strong&gt; 与 
&lt;strong&gt;Old API(YAML)&lt;/strong&gt; 
两种配置方式。&lt;/p&gt;</description></item><item><title>Dubbo Maven Plugin 
的配置方式</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/maven-plugin/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/maven-plugin/</guid><description>&lt;p&gt;本文主要讲解
 Dub [...]
+&lt;p&gt;Dubbo-Go 支持 &lt;strong&gt;New API(推荐)&lt;/strong&gt; 与 
&lt;strong&gt;配置文件方式(YAML)&lt;/strong&gt; 
两种配置方式。&lt;/p&gt;</description></item><item><title>Dubbo Maven Plugin 
的配置方式</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/maven-plugin/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/maven-plugin/</guid><description>&lt;p&gt;本文主要讲解
 Dubb [...]
 &lt;p&gt;当前 Dubbo Maven Plugin 支持以下功能:&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Dubbo Maven Plugin For Protobuf:生成 Dubbo 服务接口的 Stub 代码&lt;/li&gt;
diff --git a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml 
b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
index 9b8ec11e329..b9d1134cbab 100644
--- a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
+++ b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
@@ -104,7 +104,7 @@
 &lt;li&gt;可选内部生命周期对齐&lt;/li&gt;
 &lt;li&gt;可控的重启风险&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;以下是一个具体的使用示例,可查看 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe"&gt;示例完整源码&lt;/a&gt;。&lt;/p&gt;
+&lt;p&gt;以下是一个具体的使用示例,可查看 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe"&gt;示例完整源码&lt;/a&gt;。&lt;/p&gt;
 &lt;hr&gt;
 &lt;h1 id="一设计目标"&gt;一、设计目标&lt;/h1&gt;
 &lt;table&gt;
@@ -182,7 +182,7 @@
 &lt;/table&gt;
 &lt;hr&gt;
 &lt;h1 id="三配置方式"&gt;三、配置方式&lt;/h1&gt;
-&lt;p&gt;Dubbo-Go 支持 &lt;strong&gt;New API(推荐)&lt;/strong&gt; 与 
&lt;strong&gt;Old API(YAML)&lt;/strong&gt; 
两种配置方式。&lt;/p&gt;</description></item><item><title>链路追踪</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/tracing/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/tracing/</guid><description>&lt;p&gt;Dubbo-go
 支持基于 &lt;a href="https://open [...]
+&lt;p&gt;Dubbo-Go 支持 &lt;strong&gt;New API(推荐)&lt;/strong&gt; 与 
&lt;strong&gt;配置文件方式(YAML)&lt;/strong&gt; 
两种配置方式。&lt;/p&gt;</description></item><item><title>链路追踪</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/tracing/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/tracing/</guid><description>&lt;p&gt;Dubbo-go
 支持基于 &lt;a href="https://opent [...]
 &lt;ul&gt;
 &lt;li&gt;&lt;a 
href="https://opentelemetry.io/docs/specs/otel/logs/sdk_exporters/stdout/"&gt;Stdout
 exporter&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a 
href="https://opentelemetry.io/docs/languages/js/exporters/#jaeger"&gt;Jaeger 
exporter&lt;/a&gt;&lt;/li&gt;
diff --git 
a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/index.html 
b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/index.html
index 1e3a04fa54d..e87d0a32544 100644
--- a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/index.html
+++ b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/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://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/probe/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.
 [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=en 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/probe/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.dubbo.apache.
 [...]
 <a class=dropdown-item href=/zh-cn/overview/notices/>安全公告</a>
 <a class=dropdown-item href=/zh-cn/contact/>贡献者指南</a></div></li><li 
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item nav-item-line 
px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/download/><span>下载</span></a></li><li class="nav-item dropdown 
d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown 
role=button data-toggle=dropdown aria-haspopup=true 
aria-expanded=false>生态</a><div class="dropdo [...]
 <a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -688,8 +688,8 @@
 <label for=m-zh-cnoverviewnoticesprotocol-check><a 
href=/zh-cn/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticesprotocol><span>RPC 
协议安全</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" 
id=m-zh-cnoverviewnoticesregistry-li><input type=checkbox 
id=m-zh-cnoverviewnoticesregistry-check>
 <label for=m-zh-cnoverviewnoticesregistry-check><a 
href=/zh-cn/overview/notices/registry/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" 
id=m-zh-cnoverviewnoticesregistry><span>注册中心安全</span></a></label></li><li 
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" 
id=m-zh-cnoverviewnoticesadmin-li><input type=checkbox 
id=m-zh-cnoverviewnoticesadmin-check>
 <label for=m-zh-cnoverviewnoticesadmin-check><a 
href=/zh-cn/overview/notices/admin/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticesadmin><span>Dubbo Admin 
安全</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticeslog4j-li><input 
type=checkbox id=m-zh-cnoverviewnoticeslog4j-check>
-<label for=m-zh-cnoverviewnoticeslog4j-check><a 
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 
漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove 
[...]
-</span></span></code></pre></div><p>暴露以下路径:</p><table><thead><tr><th>Endpoint</th><th>说明</th></tr></thead><tbody><tr><td>GET
 /live</td><td>进程存活检查</td></tr><tr><td>GET 
/ready</td><td>服务就绪检查</td></tr><tr><td>GET 
/startup</td><td>启动阶段检查</td></tr></tbody></table><hr><h2 
id=响应规则>响应规则</h2><table><thead><tr><th>条件</th><th>HTTP 
状态码</th></tr></thead><tbody><tr><td>所有检查通过</td><td>200</td></tr><tr><td>任意检查失败</td><td>503</td></tr></tbody></table><hr><h1
 id=三配置方式>三、配置方式</h1><p>Dubbo-Go 支持 <strong>New [...]
+<label for=m-zh-cnoverviewnoticeslog4j-check><a 
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 
漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove 
[...]
+</span></span></code></pre></div><p>暴露以下路径:</p><table><thead><tr><th>Endpoint</th><th>说明</th></tr></thead><tbody><tr><td>GET
 /live</td><td>进程存活检查</td></tr><tr><td>GET 
/ready</td><td>服务就绪检查</td></tr><tr><td>GET 
/startup</td><td>启动阶段检查</td></tr></tbody></table><hr><h2 
id=响应规则>响应规则</h2><table><thead><tr><th>条件</th><th>HTTP 
状态码</th></tr></thead><tbody><tr><td>所有检查通过</td><td>200</td></tr><tr><td>任意检查失败</td><td>503</td></tr></tbody></table><hr><h1
 id=三配置方式>三、配置方式</h1><p>Dubbo-Go 支持 <strong>New [...]
 </span></span><span style=display:flex><span>  dubbo.<span 
style=color:#268bd2>WithMetrics</span>(
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbeEnabled</span>(),
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbePort</span>(<span 
style=color:#2aa198>22222</span>),
@@ -699,7 +699,7 @@
 </span></span><span style=display:flex><span>    metrics.<span 
style=color:#268bd2>WithProbeUseInternalState</span>(<span 
style=color:#cb4b16>true</span>),
 </span></span><span style=display:flex><span>  ),
 </span></span><span style=display:flex><span>)
-</span></span></code></pre></div><hr><h2 id=可用-option>可用 
Option</h2><table><thead><tr><th>Option</th><th>说明</th></tr></thead><tbody><tr><td>WithProbeEnabled()</td><td>启用
 Probe</td></tr><tr><td>WithProbePort(int)</td><td>设置 Probe 
端口</td></tr><tr><td>WithProbeLivenessPath(string)</td><td>设置 liveness 
路径</td></tr><tr><td>WithProbeReadinessPath(string)</td><td>设置 readiness 
路径</td></tr><tr><td>WithProbeStartupPath(string)</td><td>设置 startup 
路径</td></tr><tr><td>WithProbeUseInternalState(bool)</ [...]
+</span></span></code></pre></div><hr><h2 id=可用-option>可用 
Option</h2><table><thead><tr><th>Option</th><th>说明</th></tr></thead><tbody><tr><td>WithProbeEnabled()</td><td>启用
 Probe</td></tr><tr><td>WithProbePort(int)</td><td>设置 Probe 
端口</td></tr><tr><td>WithProbeLivenessPath(string)</td><td>设置 liveness 
路径</td></tr><tr><td>WithProbeReadinessPath(string)</td><td>设置 readiness 
路径</td></tr><tr><td>WithProbeStartupPath(string)</td><td>设置 startup 
路径</td></tr><tr><td>WithProbeUseInternalState(bool)</ [...]
 </span></span><span style=display:flex><span>  <span 
style=color:#268bd2>probe</span>:
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
 </span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
@@ -728,33 +728,99 @@
 </span></span><span style=display:flex><span>    <span style=color:#586e75>// 
check warmup completion</span>
 </span></span><span style=display:flex><span>    <span 
style=color:#719e07>return</span> <span style=color:#cb4b16>nil</span>
 </span></span><span style=display:flex><span>})
-</span></span></code></pre></div><hr><h2 
id=执行逻辑>执行逻辑</h2><ul><li>所有注册的检查函数都会执行</li><li>只要有一个返回 error</li><li>Probe 返回 
503</li></ul><hr><h1 id=六语义建议>六、语义建议</h1><h2 
id=liveness>Liveness</h2><ul><li><p>建议仅用于:</p><ul><li>进程是否崩溃</li><li>核心依赖是否彻底不可用</li></ul></li></ul><p>⚠️
 失败会触发 Pod 重启。</p><hr><h2 
id=readiness>Readiness</h2><ul><li><p>可绑定:</p><ul><li>注册中心状态</li><li>数据库</li><li>Redis</li><li>下游
 RPC</li><li>本地缓存</li></ul></li></ul><p>用于控制流量是否进入。</p><hr><h2 
id=startup>Startup</h2><ul><li><p>用于: [...]
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /live
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>15</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>3</span>
+</span></span></code></pre></div><hr><h2 
id=执行逻辑>执行逻辑</h2><ul><li>所有注册的检查函数都会执行</li><li>只要有一个返回 error</li><li>Probe 返回 
503</li></ul><hr><h1 id=六语义建议>六、语义建议</h1><h2 
id=liveness>Liveness</h2><ul><li><p>建议仅用于:</p><ul><li>进程是否崩溃</li><li>核心依赖是否彻底不可用</li></ul></li></ul><p>⚠️
 失败会触发 Pod 重启。</p><hr><h2 
id=readiness>Readiness</h2><ul><li><p>可绑定:</p><ul><li>注册中心状态</li><li>数据库</li><li>Redis</li><li>下游
 RPC</li><li>本地缓存</li></ul></li></ul><p>用于控制流量是否进入。</p><hr><h2 
id=startup>Startup</h2><ul><li><p>用于: [...]
+</span></span></code></pre></div><p>脚本内容如下:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#719e07>#!/bin/bash
+</span></span></span><span style=display:flex><span><span 
style=color:#719e07></span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
Licensed to the Apache Software Foundation (ASF) under one or more</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
contributor license agreements.  See the NOTICE file distributed with</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  this 
work for additional information regarding copyright ownership.</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  The 
ASF licenses this file to You under the Apache License, Version 2.0</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  (the 
&#34;License&#34;); you may not use this file except in compliance with</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  the 
License.  You may obtain a copy of the License at</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#      
http://www.apache.org/licenses/LICENSE-2.0</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
Unless required by applicable law or agreed to in writing, software</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
distributed under the License is distributed on an &#34;AS IS&#34; BASIS,</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  See 
the License for the specific language governing permissions and</span>
+</span></span><span style=display:flex><span><span style=color:#586e75>#  
limitations under the License.</span>
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>readinessProbe</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /ready
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>2</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>set</span> -e
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>startupProbe</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>httpGet</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>path</span>: /startup
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>port</span>: <span style=color:#2aa198>22222</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>timeoutSeconds</span>: <span style=color:#2aa198>2</span>
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>failureThreshold</span>: <span 
style=color:#2aa198>25</span> <span style=color:#586e75># 120 秒启动预算 =&gt; 
ceil(120 / 5) + 1</span>
-</span></span></code></pre></div><hr><h1 
id=八示例运行说明>八、示例运行说明</h1><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>metrics/probe/
-</span></span></code></pre></div><hr><h2 id=本地运行>本地运行</h2><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./metrics/probe/go-server/cmd/main.go
+</span></span><span style=display:flex><span><span 
style=color:#b58900>echo</span> <span style=color:#2aa198>&#34;Building probe 
server image...&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Build 
from repository root.</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> <span style=color:#2aa198>&#34;</span><span 
style=color:#719e07>$(</span>dirname <span 
style=color:#2aa198>&#34;</span><span style=color:#268bd2>$0</span><span 
style=color:#2aa198>&#34;</span><span style=color:#719e07>)</span><span 
style=color:#2aa198>/../../..&#34;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Build 
linux binary first. This uses local `replace =&gt; ../dubbo-go` if 
present.</span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>TARGET_OS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>${</span><span style=color:#268bd2>TARGET_OS</span><span 
style=color:#719e07>:-</span><span style=color:#268bd2>linux</span><span 
style=color:#2aa198>}</span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>TARGET_ARCH</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>${</span><span style=color:#268bd2>TARGET_ARCH</span><span 
style=color:#719e07>:-</span><span style=color:#268bd2>amd64</span><span 
style=color:#2aa198>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>CGO_ENABLED</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>0</span> <span style=color:#268bd2>GOOS</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;</span><span 
style=color:#268bd2>$TARGET_OS</span><span style=color:#2aa198>&#34;</span> 
<span style=color:#268bd2>GOARCH</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;</span><span style=color:#268bd2>$TARGE [...]
+</span></span><span style=display:flex><span>docker build -f 
observability/probe/go-server/Dockerfile -t dubbo-go-probe-server:latest .
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>echo</span> <span style=color:#2aa198>&#34;Build completed 
successfully.&#34;</span>
+</span></span></code></pre></div><p>如果使用 Minikube 本地集群,可以再执行:</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>minikube 
image load dubbo-go-probe-server:latest
+</span></span></code></pre></div><p>以下是一个完整的 Deployment 示例,参考自 <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/observability/probe/deploy/server-deployment.yml>dubbo-go-samples
 的 server-deployment.yml</a>,将 liveness、readiness、startup 三类探针配置在容器上:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersio [...]
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: Deployment
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>replicas</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>selector</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchLabels</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>template</span>:
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span>        <span 
style=color:#268bd2>app</span>: dubbo-go-probe-server
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>containers</span>:
+</span></span><span style=display:flex><span>        - <span 
style=color:#268bd2>name</span>: server
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>image</span>: dubbo-go-probe-server:latest
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>imagePullPolicy</span>: IfNotPresent
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>ports</span>:
+</span></span><span style=display:flex><span>            - <span 
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>20000</span>
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>name</span>: triple
+</span></span><span style=display:flex><span>            - <span 
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>22222</span>
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>name</span>: probe
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>livenessProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /live
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>10</span>
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>readinessProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /ready
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>initialDelaySeconds</span>: <span 
style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>5</span>
+</span></span><span style=display:flex><span>          <span 
style=color:#268bd2>startupProbe</span>:
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>httpGet</span>:
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>path</span>: /startup
+</span></span><span style=display:flex><span>              <span 
style=color:#268bd2>port</span>: probe
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>failureThreshold</span>: <span style=color:#2aa198>30</span>
+</span></span><span style=display:flex><span>            <span 
style=color:#268bd2>periodSeconds</span>: <span style=color:#2aa198>1</span>
+</span></span></code></pre></div><hr><p>部署到 Kubernetes:</p><p>在 
dubbo-go-samples 仓库根目录执行:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>kubectl 
apply -f observability/probe/deploy/server-deployment.yml
+</span></span><span style=display:flex><span>kubectl rollout status 
deploy/dubbo-go-probe-server
+</span></span></code></pre></div><hr><h1 
id=八示例运行说明>八、示例运行说明</h1><p>示例路径和运行命令均以 dubbo-go-samples 
仓库根目录为基准。</p><p>示例路径:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>observability/probe/
+</span></span></code></pre></div><hr><h2 id=本地运行>本地运行</h2><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./observability/probe/go-server/cmd/main.go
+</span></span></code></pre></div><hr><h2 id=使用-curl-验证探针>使用 curl 
验证探针</h2><p>服务启动后,可以分别请求三个探针端点:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#586e75># liveness,预期 200</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> http://127.0.0.1:22222/live
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># 
readiness,未就绪时预期 503</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> http://127.0.0.1:22222/ready
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># 
startup,未启动完成时预期 503</span>
+</span></span><span style=display:flex><span>curl -s -o /dev/null -w <span 
style=color:#2aa198>&#34;%{http_code}\n&#34;</span> 
http://127.0.0.1:22222/startup
+</span></span></code></pre></div><p>也可以直接查看响应体:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>curl -i 
http://127.0.0.1:22222/live
+</span></span><span style=display:flex><span>curl -i 
http://127.0.0.1:22222/ready
+</span></span><span style=display:flex><span>curl -i 
http://127.0.0.1:22222/startup
 </span></span></code></pre></div><hr><h2 id=实时观察-probe-状态>实时观察 Probe 
状态</h2><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>watch -n 
<span style=color:#2aa198>1</span> <span style=color:#2aa198>&#39;
 </span></span></span><span style=display:flex><span><span 
style=color:#2aa198>for p in live ready startup; do
 </span></span></span><span style=display:flex><span><span style=color:#2aa198> 
 url=&#34;http://127.0.0.1:22222/$p&#34;
@@ -767,10 +833,10 @@
 </span></span></span><span style=display:flex><span><span 
style=color:#2aa198>&#39;</span>
 </span></span></code></pre></div><hr><h2 
id=预期行为>预期行为</h2><table><thead><tr><th>阶段</th><th>/live</th><th>/ready</th><th>/startup</th></tr></thead><tbody><tr><td>刚启动</td><td>200</td><td>503</td><td>503</td></tr><tr><td>预热阶段</td><td>200</td><td>503</td><td>503</td></tr><tr><td>预热完成</td><td>200</td><td>200</td><td>200</td></tr></tbody></table><hr><h1
 id=九生产最佳实践>九、生产最佳实践</h1><h2 id=推荐参数起点>推荐参数起点</h2><table><thead><tr><th>Probe 
类型</th><th>推荐值</th><th>说明</th></tr></thead><tbody><tr><td>livenes [...]
 </span></span></code></pre></div><h2 
id=落地建议>落地建议</h2><ul><li><code>liveness</code> 
保持简单,只检测“必须重启才能恢复”的故障</li><li><code>readiness</code> 绑定注册中心、数据库、Redis、下游 RPC 
等波动依赖</li><li><code>startup</code> 单独承担慢启动保护,避免把大 
<code>initialDelaySeconds</code> 堆到 <code>liveness</code> 上</li><li>微服务集群建议开启 
<code>use-internal-state: true</code>,再结合 <code>probe.SetReady(...)</code> 
做主动摘流</li></ul><div id=pre-footer><h2>反馈</h2><p 
class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 
feedbac [...]
-<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
+<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/golang-sdk/tutorial/observability/probe?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Ed
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=Kubernetes%20%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f%e6%8e%a2%e9%92%88";
 target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a 
href=#响应规则>响应规则</a></li></ul><ul><li><a href=#31-new-api-配置方式推荐>3.1 New API 
配置方式(推荐)</a></li><li><a href=#可用-option>可用 Option</a></li><li><a 
href=#32-old-api-yaml-配置方式>3.2 Old API YAML 配置方式</a></li><li><a 
href=#配置项说明>配置项说明</a></li></ul><ul><li><a href=#内部状态机制>内部状态机制</a></li><li><a 
href=#默认行为>默认行为</a></li><li><a href=#当设置为-false>当设置为 false< [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a 
href=#响应规则>响应规则</a></li></ul><ul><li><a href=#31-new-api-配置方式推荐>3.1 New API 
配置方式(推荐)</a></li><li><a href=#可用-option>可用 Option</a></li><li><a 
href=#32-yaml-配置文件方式>3.2 YAML 配置文件方式</a></li><li><a 
href=#配置项说明>配置项说明</a></li></ul><ul><li><a href=#内部状态机制>内部状态机制</a></li><li><a 
href=#默认行为>默认行为</a></li><li><a href=#当设置为-false>当设置为 false</a></li></ul [...]
 <button class="contact-btn qr-container" 
onmouseover='showQRCode("dingding-qr")' 
onmouseout='hideQRCode("dingding-qr")'>钉钉<div class=qr-code id=dingding-qr 
style=display:none><img 
src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg
 alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a 
href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div 
class=footer-container-right><ul><li>文档</li><li><a 
href=/zh-cn/overview/home/>概览</a></li><li><a 
href=/zh-cn/overview/quickstart/>快速开始</a></li><li><a 
href=/zh-cn/contact/contributor/software-donation-guide_dev/>开发者指南</a></li></ul><ul><li>资源</li><li><a
 href=/zh-cn/contact/>社区</a></li></ul></div></div><div 
style="width:85.125rem;height:0;border:1px solid 
#dddee4;margin-bottom:32px"></div>< [...]
 project logo are either registered trademarks or trademarks of The Apache 
Software Foundation in the United States
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 511f2a5dd94..e2776a8b01a 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file

Reply via email to