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:</p></description></item><item><title>Dubbo SPI Plugins and De
</ul>
<p>For a complete runnable example, see:</p>
<blockquote>
-<p><a
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe">https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe</a></p>
+<p><a
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe">https://github.com/apache/dubbo-go-samples/tree/main/observability/probe</a></p>
</blockquote>
<hr>
<h1 id="1-design-goals">1. Design Goals</h1>
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 @@
</ul>
<p>For a complete runnable example, see:</p>
<blockquote>
-<p><a
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe">https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe</a></p>
+<p><a
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe">https://github.com/apache/dubbo-go-samples/tree/main/observability/probe</a></p>
</blockquote>
<hr>
<h1 id="1-design-goals">1. Design Goals</h1>
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
"License"); 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 "AS IS" 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
=> 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>"Building probe
server image..."</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>"</span><span
style=color:#719e07>$(</span>dirname <span
style=color:#2aa198>"</span><span style=color:#268bd2>$0</span><span
style=color:#2aa198>"</span><span style=color:#719e07>)</span><span
style=color:#2aa198>/../../.."</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 => ../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>"</span><span
style=color:#268bd2>$TARGET_OS</span><span style=color:#2aa198>"</span>
<span style=color:#268bd2>GOARCH</span><span style=color:#719e07>=</span><span
style=color:#2aa198>"</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>"Build completed
successfully."</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>"%{http_code}\n"</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>"%{http_code}\n"</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>"%{http_code}\n"</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>'
</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="http://127.0.0.1:22222/$p"
@@ -772,10 +838,10 @@
</span></span></span><span style=display:flex><span><span
style=color:#2aa198>'</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&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
<li>可选内部生命周期对齐</li>
<li>可控的重启风险</li>
</ul>
-<p>以下是一个具体的使用示例,可查看 <a
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe">示例完整源码</a>。</p>
+<p>以下是一个具体的使用示例,可查看 <a
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe">示例完整源码</a>。</p>
<hr>
<h1 id="一设计目标">一、设计目标</h1>
<table>
@@ -14245,7 +14245,7 @@ dubbo http服务需要传递 rest-service-version 和
rest-service-group 两个h
</table>
<hr>
<h1 id="三配置方式">三、配置方式</h1>
-<p>Dubbo-Go 支持 <strong>New API(推荐)</strong> 与
<strong>Old API(YAML)</strong>
两种配置方式。</p></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><p>本文主要讲解
Dub [...]
+<p>Dubbo-Go 支持 <strong>New API(推荐)</strong> 与
<strong>配置文件方式(YAML)</strong>
两种配置方式。</p></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><p>本文主要讲解
Dubb [...]
<p>当前 Dubbo Maven Plugin 支持以下功能:</p>
<ul>
<li>Dubbo Maven Plugin For Protobuf:生成 Dubbo 服务接口的 Stub 代码</li>
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 @@
<li>可选内部生命周期对齐</li>
<li>可控的重启风险</li>
</ul>
-<p>以下是一个具体的使用示例,可查看 <a
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics/probe">示例完整源码</a>。</p>
+<p>以下是一个具体的使用示例,可查看 <a
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/probe">示例完整源码</a>。</p>
<hr>
<h1 id="一设计目标">一、设计目标</h1>
<table>
@@ -182,7 +182,7 @@
</table>
<hr>
<h1 id="三配置方式">三、配置方式</h1>
-<p>Dubbo-Go 支持 <strong>New API(推荐)</strong> 与
<strong>Old API(YAML)</strong>
两种配置方式。</p></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><p>Dubbo-go
支持基于 <a href="https://open [...]
+<p>Dubbo-Go 支持 <strong>New API(推荐)</strong> 与
<strong>配置文件方式(YAML)</strong>
两种配置方式。</p></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><p>Dubbo-go
支持基于 <a href="https://opent [...]
<ul>
<li><a
href="https://opentelemetry.io/docs/specs/otel/logs/sdk_exporters/stdout/">Stdout
exporter</a></li>
<li><a
href="https://opentelemetry.io/docs/languages/js/exporters/#jaeger">Jaeger
exporter</a></li>
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
"License"); 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 "AS IS" 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 秒启动预算 =>
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>"Building probe
server image..."</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>"</span><span
style=color:#719e07>$(</span>dirname <span
style=color:#2aa198>"</span><span style=color:#268bd2>$0</span><span
style=color:#2aa198>"</span><span style=color:#719e07>)</span><span
style=color:#2aa198>/../../.."</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 => ../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>"</span><span
style=color:#268bd2>$TARGET_OS</span><span style=color:#2aa198>"</span>
<span style=color:#268bd2>GOARCH</span><span style=color:#719e07>=</span><span
style=color:#2aa198>"</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>"Build completed
successfully."</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>"%{http_code}\n"</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>"%{http_code}\n"</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>"%{http_code}\n"</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>'
</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="http://127.0.0.1:22222/$p"
@@ -767,10 +833,10 @@
</span></span></span><span style=display:flex><span><span
style=color:#2aa198>'</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&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