You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/07/19 10:03:07 UTC

[dubbo-website] branch master updated: Optimize qos docs (#1259)

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

albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/master by this push:
     new f397b2a1d8 Optimize qos docs (#1259)
f397b2a1d8 is described below

commit f397b2a1d876c4162a92ccdd584b47c38a5623c2
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Tue Jul 19 18:03:03 2022 +0800

    Optimize qos docs (#1259)
    
    * opt docs
    
    * opt docs
    
    * opt docs
---
 .../observability/profiler.md                      |   9 +
 .../observability/router-snapshot.md               |   9 +
 .../others/dubbo-kubernetes-probe.md               |  12 +-
 .../java-sdk/reference-manual/qos/command.md       | 209 ++-------------------
 .../java-sdk/reference-manual/qos/overview.md      | 150 +++++++++++++++
 .../java-sdk/reference-manual/qos/probe.md         |  42 +++++
 .../java-sdk/reference-manual/qos/profiler.md      |  74 ++++++++
 .../reference-manual/qos/router-snapshot.md        | 106 +++++++++++
 .../reference-manual/qos/service-management.md     |  74 ++++++++
 .../reference-manual/spi/description/liveness.md   |  74 ++++++++
 .../reference-manual/spi/description/readiness.md  |  76 ++++++++
 .../reference-manual/spi/description/startup.md    |  75 ++++++++
 12 files changed, 714 insertions(+), 196 deletions(-)

diff --git a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/profiler.md b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/profiler.md
new file mode 100644
index 0000000000..553e666b62
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/profiler.md
@@ -0,0 +1,9 @@
+---
+type: docs
+title: "请求耗时采样"
+linkTitle: "请求耗时采样"
+weight: 1
+description: "请求耗时采样"
+---
+
+TBD
diff --git a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/router-snapshot.md b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/router-snapshot.md
new file mode 100644
index 0000000000..016fc4db88
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/observability/router-snapshot.md
@@ -0,0 +1,9 @@
+---
+type: docs
+title: "路由状态采集"
+linkTitle: "路由状态采集"
+weight: 2
+description: "路由状态采集"
+---
+
+TBD
diff --git a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md
index 18f8b63a98..60bd9b8a2e 100644
--- a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md
+++ b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md
@@ -21,24 +21,24 @@ description: "了解 Dubbo3 与 Kubernetes 生命周期对齐探针的扩展与
 接口将自动获取当前应用所有 SPI 的实现,对应接口的 SPI 实现均成功就绪则接口返回成功。
 SPI的介绍见[Dubbo SPI扩展](https://dubbo.apache.org/zh/docs3-building/java-sdk/reference-manual/spi/description/)
 
-#### 存活检测[](https://dubbo.apache.org/zh/docs/references/lifecycle/brief/#%E5%AD%98%E6%B4%BB%E6%A3%80%E6%B5%8B)
+#### 存活检测
 
 对于 livenessProbe 存活检测,由于 Dubbo3 框架本身无法获取到应用的存活状态,因此本接口无默认实现,且默认返回成功。开发者可以根据 SPI 定义对此 SPI 接口进行拓展,从应用层次对是否存活进行判断。
 
-#### 就绪检测[](https://dubbo.apache.org/zh/docs/references/lifecycle/brief/#%E5%B0%B1%E7%BB%AA%E6%A3%80%E6%B5%8B)
+#### 就绪检测
 
 对于 readinessProbe 就绪检测,目前 Dubbo3 默认提供了两个检测维度,一是对 Dubbo3 服务自身是否启停做判断,另外是对所有服务是否存在已注册接口,如果所有服务均已从注册中心下线(可以通过 QOS 运维进行操作)将返回未就绪的状态。
 
-#### 启动检测[](https://dubbo.apache.org/zh/docs/references/lifecycle/brief/#%E5%90%AF%E5%8A%A8%E6%A3%80%E6%B5%8B)
+#### 启动检测
 
 对于 startupProbe 启动检测,目前 Dubbo3 默认提供了一个检测维度,即是在所有启动流程(接口暴露、注册中心写入等)均结束后返回已就绪状态。
 
 
-关于 [liveness 存活探针](https://dubbo.apache.org/zh/docs/references/lifecycle/liveness/) 扩展示例
+关于 [liveness 存活探针](../../../reference-manual/spi/description/liveness/) 扩展示例
 
-关于 [readiness 就绪探针](https://dubbo.apache.org/zh/docs/references/lifecycle/readiness/) 扩展示例
+关于 [readiness 就绪探针](../../../reference-manual/spi/description/readiness/) 扩展示例
 
-关于 [startup 启动探针](https://dubbo.apache.org/zh/docs/references/lifecycle/startup/) 扩展示例
+关于 [startup 启动探针](../../../reference-manual/spi/description/startup/) 扩展示例
 
 ## 使用场景
 - kubelet 使用 `liveness probe` 来确定你的应用程序是否正在运行,查看是否存活。一般来说,如果你的程序一旦崩溃了, Kubernetes 就会立刻知道这个程序已经终止了,然后就会重启这个程序。而我们的 liveness probe 的目的就是来捕获到当前应用程序还没有终止,还没有崩溃,如果出现了这些情况,那么就重启处于该状态下的容器,使应用程序在存在 bug 的情况下依然能够继续运行下去。
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/command.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/command.md
index 488bdbe09e..892e8fb265 100644
--- a/content/zh/docs3-building/java-sdk/reference-manual/qos/command.md
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/command.md
@@ -1,162 +1,14 @@
 ---
 type: docs
-title: "QOS 命令手册"
-linkTitle: "QOS 命令手册"
+title: "基础命令手册"
+linkTitle: "基础命令手册"
 weight: 2
-description: "新版本 telnet 命令使用说明"
+description: "基础命令手册"
 ---
-## 特性说明
-dubbo `2.5.8` 新版本增加了 QOS 模块,提供了新的 telnet 命令支持。
 
-#### 相关参数说明
-QoS 提供了一些启动参数,来对启动进行配置,他们主要包括:
 
-| 参数               | 说明              | 默认值 |
-| ------------------ | ----------------- | ------ |
-| qos-enable          | 是否启动QoS       | true   |
-| qos-port            | 启动QoS绑定的端口 | 22222  |
-| qos-accept-foreign-ip | 是否允许远程访问  | false  |
+## help 命令
 
-> 注意,从2.6.4/2.7.0开始,qos-accept-foreign-ip默认配置改为false,如果qos-accept-foreign-ip设置为true,有可能带来安全风险,请仔细评估后再打开。
-
-#### QoS 参数配置
-
-* 系统属性
-* dubbo.properties
-* XML方式
-* Spring-boot 自动装配方式
-
-其中,上述方式的优先顺序为系统属性 > dubbo.properties > XML/Spring-boot 自动装配方式。
-
-## 使用场景
-
-- 当线上的 QPS 比较高的时候,当刚重启机器的时候,由于没有进行 JIT 预热或相关资源没有预热,可能会导致大量超时,这个时候,可通过分批发布服务,逐渐加大流量。
-- 当由于某台机器由于某种原因,需要下线服务,然后又需要重新上线服务。
-
-## 使用说明
-#### 端口
-新版本的 telnet 端口 与 dubbo 协议的端口是不同的端口,默认为 `22222`
-
-可以通过配置文件`dubbo.properties` 修改:
-```
-dubbo.application.qos-port=33333
-```
-或者
-可以通过设置 JVM 参数:
-```
--Ddubbo.application.qos-port=33333
-```
-
-#### 安全
-默认情况下,dubbo 接收任何主机发起的命令
-
-可以通过配置文件`dubbo.properties` 修改:
-```
-dubbo.application.qos-accept-foreign-ip=false
-```
-或者
-
-可以通过设置 JVM 参数:
-```
--Ddubbo.application.qos-accept-foreign-ip=false
-```
-拒绝远端主机发出的命令,只允许服务本机执行。
-
-
-#### telnet 与 http 协议
-
-telnet 模块现在同时支持 http 协议和 telnet 协议,方便各种情况的使用
-示例:
-```
-➜  ~ telnet localhost 22222
-Trying ::1...
-telnet: connect to address ::1: Connection refused
-Trying 127.0.0.1...
-Connected to localhost.
-Escape character is '^]'.
-  ████████▄  ███    █▄  ▀█████████▄  ▀█████████▄   ▄██████▄
-  ███   ▀███ ███    ███   ███    ███   ███    ███ ███    ███
-  ███    ███ ███    ███   ███    ███   ███    ███ ███    ███
-  ███    ███ ███    ███  ▄███▄▄▄██▀   ▄███▄▄▄██▀  ███    ███
-  ███    ███ ███    ███ ▀▀███▀▀▀██▄  ▀▀███▀▀▀██▄  ███    ███
-  ███    ███ ███    ███   ███    ██▄   ███    ██▄ ███    ███
-  ███   ▄███ ███    ███   ███    ███   ███    ███ ███    ███
-  ████████▀  ████████▀  ▄█████████▀  ▄█████████▀   ▀██████▀
-
-
-dubbo>ls
-As Provider side:
-+----------------------------------+---+
-|       Provider Service Name      |PUB|
-+----------------------------------+---+
-|org.apache.dubbo.demo.DemoService| N |
-+----------------------------------+---+
-As Consumer side:
-+---------------------+---+
-|Consumer Service Name|NUM|
-+---------------------+---+
-
-dubbo>
-```
-
-
-```
-➜  ~ curl "localhost:22222/ls?arg1=xxx&arg2=xxxx"
-As Provider side:
-+----------------------------------+---+
-|       Provider Service Name      |PUB|
-+----------------------------------+---+
-|org.apache.dubbo.demo.DemoService| N |
-+----------------------------------+---+
-As Consumer side:
-+---------------------+---+
-|Consumer Service Name|NUM|
-+---------------------+---+
-```
-
-#### 支持的命令
-
-#### ls 列出消费者和提供者
-
-```
-dubbo>ls
-As Provider side:
-+----------------------------------+---+
-|       Provider Service Name      |PUB|
-+----------------------------------+---+
-|org.apache.dubbo.demo.DemoService| Y |
-+----------------------------------+---+
-As Consumer side:
-+---------------------+---+
-|Consumer Service Name|NUM|
-+---------------------+---+
-```
-列出 dubbo 的所提供的服务和消费的服务,以及消费的服务地址数
-
-#### Online 上线服务命令
-当使用延迟发布功能的时候(通过设置 org.apache.dubbo.config.AbstractServiceConfig#register 为 false),后续需要上线的时候,可通过 Online 命令
-```
-//上线所有服务
-dubbo>online
-OK
-
-//根据正则,上线部分服务
-dubbo>online com.*
-OK
-```
-#### Offline 下线服务命令
-由于故障等原因,需要临时下线服务保持现场,可以使用 Offline 下线命令。
-```
-//下线所有服务
-dubbo>offline
-OK
-
-//根据正则,下线部分服务
-dubbo>offline com.*
-OK
-```
-
-#### help 命令
 ```
 //列出所有命令
 dubbo>help
@@ -172,48 +24,25 @@ dubbo>help online
 
 dubbo>
 ```
-#### 使用系统属性方式配置
-```
--Ddubbo.application.qos-enable=true
--Ddubbo.application.qos-port=33333
--Ddubbo.application.qos-accept-foreign-ip=false
-```
 
-#### 使用 dubbo.properties 文件配置
-在项目的`src/main/resources`目录下添加 dubbo.properties文件,内容如下:
-```
-dubbo.application.qos-enable=true
-dubbo.application.qos-port=33333
-dubbo.application.qos-accept-foreign-ip=false
+## version 命令
+
+显示当前运行的 Dubbo 的版本号
+
 ```
+dubbo>version
+dubbo version "3.0.10-SNAPSHOT"
 
-#### 使用XML方法配置
-如果要通过 XML 配置响应的QoS相关的参数,可以进行如下配置:
-```xml
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-       http://www.springframework.org/schema/beans/spring-beans.xsd
-       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
-  <dubbo:application name="demo-provider">
-    <dubbo:parameter key="qos-enable" value="true"/>
-    <dubbo:parameter key="qos-accept-foreign-ip" value="false"/>
-    <dubbo:parameter key="qos-port" value="33333"/>
-  </dubbo:application>
-  <dubbo:registry address="multicast://224.5.6.7:1234"/>
-  <dubbo:protocol name="dubbo" port="20880"/>
-  <dubbo:service interface="org.apache.dubbo.demo.provider.DemoService" ref="demoService"/>
-  <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
-</beans>
+dubbo>
 ```
 
-#### 使用 spring-boot 自动装配方式配置
-如果是 spring-boot 的应用,可以在`application.properties`或者`application.yml`上配置:
+## quit 命令
+
+退出命令状态
 
 ```
-dubbo.application.qos-enable=true
-dubbo.application.qos-port=33333
-dubbo.application.qos-accept-foreign-ip=false
-```
+dubbo>quit
+BYE!
+Connection closed by foreign host.
+
+```
\ No newline at end of file
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/overview.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/overview.md
index a8efb54f69..040ef9edd6 100644
--- a/content/zh/docs3-building/java-sdk/reference-manual/qos/overview.md
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/overview.md
@@ -4,3 +4,153 @@ title: "QOS 概述"
 linkTitle: "QOS 概述"
 weight: 1
 ---
+
+## 特性说明
+dubbo `2.5.8` 新版本增加了 QOS 模块,提供了新的 telnet 命令支持。
+
+#### 相关参数说明
+QoS 提供了一些启动参数,来对启动进行配置,他们主要包括:
+
+| 参数               | 说明              | 默认值 |
+| ------------------ | ----------------- | ------ |
+| qos-enable          | 是否启动QoS       | true   |
+| qos-port            | 启动QoS绑定的端口 | 22222  |
+| qos-accept-foreign-ip | 是否允许远程访问  | false  |
+
+> 注意,从2.6.4/2.7.0开始,qos-accept-foreign-ip默认配置改为false,如果qos-accept-foreign-ip设置为true,有可能带来安全风险,请仔细评估后再打开。
+
+#### QoS 参数配置
+
+* 系统属性
+* dubbo.properties
+* XML方式
+* Spring-boot 自动装配方式
+
+其中,上述方式的优先顺序为系统属性 > dubbo.properties > XML/Spring-boot 自动装配方式。
+
+## 使用说明
+#### 端口
+新版本的 telnet 端口 与 dubbo 协议的端口是不同的端口,默认为 `22222`
+
+可以通过配置文件`dubbo.properties` 修改:
+```
+dubbo.application.qos-port=33333
+```
+或者
+可以通过设置 JVM 参数:
+```
+-Ddubbo.application.qos-port=33333
+```
+
+#### 安全
+默认情况下,dubbo 接收任何主机发起的命令
+
+可以通过配置文件`dubbo.properties` 修改:
+```
+dubbo.application.qos-accept-foreign-ip=false
+```
+或者
+
+可以通过设置 JVM 参数:
+```
+-Ddubbo.application.qos-accept-foreign-ip=false
+```
+拒绝远端主机发出的命令,只允许服务本机执行。
+
+
+#### telnet 与 http 协议
+
+telnet 模块现在同时支持 http 协议和 telnet 协议,方便各种情况的使用
+示例:
+```
+➜  ~ telnet localhost 22222
+Trying ::1...
+telnet: connect to address ::1: Connection refused
+Trying 127.0.0.1...
+Connected to localhost.
+Escape character is '^]'.
+  ████████▄  ███    █▄  ▀█████████▄  ▀█████████▄   ▄██████▄
+  ███   ▀███ ███    ███   ███    ███   ███    ███ ███    ███
+  ███    ███ ███    ███   ███    ███   ███    ███ ███    ███
+  ███    ███ ███    ███  ▄███▄▄▄██▀   ▄███▄▄▄██▀  ███    ███
+  ███    ███ ███    ███ ▀▀███▀▀▀██▄  ▀▀███▀▀▀██▄  ███    ███
+  ███    ███ ███    ███   ███    ██▄   ███    ██▄ ███    ███
+  ███   ▄███ ███    ███   ███    ███   ███    ███ ███    ███
+  ████████▀  ████████▀  ▄█████████▀  ▄█████████▀   ▀██████▀
+
+
+dubbo>ls
+As Provider side:
++----------------------------------+---+
+|       Provider Service Name      |PUB|
++----------------------------------+---+
+|org.apache.dubbo.demo.DemoService| N |
++----------------------------------+---+
+As Consumer side:
++---------------------+---+
+|Consumer Service Name|NUM|
++---------------------+---+
+
+dubbo>
+```
+
+
+```
+➜  ~ curl "localhost:22222/ls?arg1=xxx&arg2=xxxx"
+As Provider side:
++----------------------------------+---+
+|       Provider Service Name      |PUB|
++----------------------------------+---+
+|org.apache.dubbo.demo.DemoService| N |
++----------------------------------+---+
+As Consumer side:
++---------------------+---+
+|Consumer Service Name|NUM|
++---------------------+---+
+```
+
+#### 使用系统属性方式配置
+```
+-Ddubbo.application.qos-enable=true
+-Ddubbo.application.qos-port=33333
+-Ddubbo.application.qos-accept-foreign-ip=false
+```
+
+#### 使用 dubbo.properties 文件配置
+在项目的`src/main/resources`目录下添加 dubbo.properties文件,内容如下:
+```
+dubbo.application.qos-enable=true
+dubbo.application.qos-port=33333
+dubbo.application.qos-accept-foreign-ip=false
+```
+
+#### 使用XML方法配置
+如果要通过 XML 配置响应的QoS相关的参数,可以进行如下配置:
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+       http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
+  <dubbo:application name="demo-provider">
+    <dubbo:parameter key="qos-enable" value="true"/>
+    <dubbo:parameter key="qos-accept-foreign-ip" value="false"/>
+    <dubbo:parameter key="qos-port" value="33333"/>
+  </dubbo:application>
+  <dubbo:registry address="multicast://224.5.6.7:1234"/>
+  <dubbo:protocol name="dubbo" port="20880"/>
+  <dubbo:service interface="org.apache.dubbo.demo.provider.DemoService" ref="demoService"/>
+  <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
+</beans>
+```
+
+#### 使用 spring-boot 自动装配方式配置
+如果是 spring-boot 的应用,可以在`application.properties`或者`application.yml`上配置:
+
+```
+dubbo.application.qos-enable=true
+dubbo.application.qos-port=33333
+dubbo.application.qos-accept-foreign-ip=false
+```
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/probe.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/probe.md
new file mode 100644
index 0000000000..c699274cec
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/probe.md
@@ -0,0 +1,42 @@
+---
+type: docs
+title: "框架状态命令"
+linkTitle: "框架状态命令"
+weight: 4
+description: "框架状态命令"
+---
+
+参考文档:[Kubernetes 生命周期探针](../../../advanced-features-and-usage/others/dubbo-kubernetes-probe/)
+
+## startup 命令
+
+检测当前框架是否已经启动完毕
+
+```
+dubbo>startup
+true
+
+dubbo>
+```
+
+## ready 命令
+
+检测当前框架是否能正常提供服务(可能是临时下线)
+
+```
+dubbo>ready
+true
+
+dubbo>
+```
+
+## live 命令
+
+检测当前框架是否正常运行(可能是永久异常)
+
+```
+dubbo>live
+true
+
+dubbo>
+```
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/profiler.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/profiler.md
new file mode 100644
index 0000000000..5318d5f6d7
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/profiler.md
@@ -0,0 +1,74 @@
+---
+type: docs
+title: "性能采样命令"
+linkTitle: "性能采样命令"
+weight: 7
+description: "性能采样命令"
+---
+
+性能采样功能可以对 Dubbo 处理链路上的各处耗时进行检测,在出现超时的时候 `( usageTime / timeout > profilerWarnPercent * 100 )` 通过日志记录调用的耗时。
+
+此功能分为 `simple profiler` 和 `detail profiler` 两个模式,其中 `simple profiler` 模式默认开启,`detail profiler` 模式默认关闭。
+`detail profiler` 相较 `simple profiler` 模式多采集了每个 filter 的处理耗时、协议上的具体耗时等。
+在 `simple profiler` 模式下如果发现 Dubbo 框架内部存在耗时长的情况,可以开启 `detail profiler` 模式,以便更好地排查问题。
+
+参考链接:[请求耗时采样](../../../advanced-features-and-usage/observability/profiler/)
+
+## enableSimpleProfiler 命令
+
+开启 `simple profiler` 模式,默认开启
+
+```
+dubbo>enableSimpleProfiler
+OK
+
+dubbo>
+```
+
+## disableSimpleProfiler 命令
+
+关闭 `simple profiler` 模式,关闭后 `detail profiler` 也将不启用
+
+```
+dubbo>disableSimpleProfiler
+OK
+
+dubbo>
+```
+
+## enableDetailProfiler 命令
+
+开启 `detail profiler` 模式,默认关闭,需要开启 `simple profiler` 模式才会真实开启
+
+```
+dubbo>enableDetailProfiler
+OK. This will cause performance degradation, please be careful!
+
+dubbo>
+```
+
+## disableDetailProfiler 命令
+
+关闭 `detail profiler` 模式,关闭后不影响 `simple profiler`
+
+```
+dubbo>disableDetailProfiler
+OK
+
+dubbo>
+```
+
+## setProfilerWarnPercent 命令
+
+设置超时时间的警告百分比
+
+命令:`setProfilerWarnPercent {profilerWarnPercent}`
+
+profilerWarnPercent: 超时时间的警告百分比,取值范围 0.0 ~ 1.0,默认值为 0.75
+
+```
+dubbo>setProfilerWarnPercent 0.75
+OK
+
+dubbo>
+```
\ No newline at end of file
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/router-snapshot.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/router-snapshot.md
new file mode 100644
index 0000000000..1600b9e3c9
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/router-snapshot.md
@@ -0,0 +1,106 @@
+---
+type: docs
+title: "路由状态命令"
+linkTitle: "路由状态命令"
+weight: 8
+description: "路由状态命令"
+---
+
+Dubbo 的很多流量治理能力是基于 Router 进行实现的,在生产环境中,如果出现流量结果不符合预期的情况,可以通过路由状态命令来查看路由的状态,以此来定位可能存在的问题。
+
+参考链接:[路由状态采集](../../../advanced-features-and-usage/observability/router-snapshot/)
+
+## getRouterSnapshot 命令
+
+获取当前的每层路由的分组状态。(仅支持 StateRouter)
+
+```
+dubbo>getRouterSnapshot com.dubbo.dubbointegration.BackendService
+com.dubbo.dubbointegration.BackendService@2c2e824a
+[ All Invokers:2 ] [ Valid Invokers: 2 ]
+
+MockInvokersSelector  Total: 2
+[ Mocked -> Empty (Total: 0) ]
+[ Normal -> 172.18.111.187:20880,172.18.111.183:20880 (Total: 2) ]
+            ↓ 
+StandardMeshRuleRouter not support
+            ↓ 
+TagStateRouter not support
+            ↓ 
+ServiceStateRouter not support
+            ↓ 
+AppStateRouter not support
+            ↓ 
+TailStateRouter End
+
+
+dubbo>
+```
+
+## enableRouterSnapshot 命令
+
+开启路由结果采集模式
+
+命令:`enableRouterSnapshot {serviceName}`
+
+`serviceName` 为需要采集的服务名,支持匹配
+
+```
+dubbo>enableRouterSnapshot com.dubbo.*
+OK. Found service count: 1. This will cause performance degradation, please be careful!
+
+dubbo>
+```
+
+## disableRouterSnapshot 命令
+
+关闭路由结果采集模式
+
+命令:`disableRouterSnapshot {serviceName}`
+
+`serviceName` 为需要采集的服务名,支持匹配
+
+```
+dubbo>disableRouterSnapshot com.dubbo.*
+OK. Found service count: 1
+
+dubbo>
+```
+
+## getEnabledRouterSnapshot 命令
+
+获取当前已经开启采集的服务
+
+```
+dubbo>getEnabledRouterSnapshot
+com.dubbo.dubbointegration.BackendService
+
+dubbo>
+```
+
+## getRecentRouterSnapshot 命令
+
+通过 qos 命令获取历史的路由状态。
+
+```
+dubbo>getRecentRouterSnapshot
+1658224330156 - Router snapshot service com.dubbo.dubbointegration.BackendService from registry 172.18.111.184 on the consumer 172.18.111.184 using the dubbo version 3.0.9 is below: 
+[ Parent (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) ] Input: 172.18.111.187:20880,172.18.111.183:20880 -> Chain Node Output: 172.18.111.187:20880,172.18.111.183:20880
+  [ MockInvokersSelector (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: invocation.need.mock not set. Return normal Invokers. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+    [ StandardMeshRuleRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: MeshRuleCache has not been built. Skip route. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+      [ TagStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Disable Tag Router. Reason: tagRouterRule is invalid or disabled ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+        [ ServiceStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+          [ AppStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+
+1658224330156 - Router snapshot service com.dubbo.dubbointegration.BackendService from registry 172.18.111.184 on the consumer 172.18.111.184 using the dubbo version 3.0.9 is below: 
+[ Parent (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) ] Input: 172.18.111.187:20880,172.18.111.183:20880 -> Chain Node Output: 172.18.111.187:20880,172.18.111.183:20880
+  [ MockInvokersSelector (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: invocation.need.mock not set. Return normal Invokers. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+    [ StandardMeshRuleRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: MeshRuleCache has not been built. Skip route. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+      [ TagStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Disable Tag Router. Reason: tagRouterRule is invalid or disabled ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+        [ ServiceStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+          [ AppStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880,172.18.111.183:20880
+
+···
+
+dubbo>
+```
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/qos/service-management.md b/content/zh/docs3-building/java-sdk/reference-manual/qos/service-management.md
new file mode 100644
index 0000000000..d06fb86a5d
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/qos/service-management.md
@@ -0,0 +1,74 @@
+---
+type: docs
+title: "服务管理命令"
+linkTitle: "服务管理命令"
+weight: 3
+description: "服务管理命令"
+---
+
+
+## ls 命令
+
+列出消费者和提供者
+
+```
+dubbo>ls
+As Provider side:
++------------------------------------------------------------------------+---------------------+
+|                          Provider Service Name                         |         PUB         |
++------------------------------------------------------------------------+---------------------+
+|DubboInternal - UserRead/org.apache.dubbo.metadata.MetadataService:1.0.0|                     |
++------------------------------------------------------------------------+---------------------+
+|               com.dubbo.dubbointegration.UserReadService               |nacos-A(Y)/nacos-I(Y)|
++------------------------------------------------------------------------+---------------------+
+As Consumer side:
++-----------------------------------------+-----------------+
+|          Consumer Service Name          |       NUM       |
++-----------------------------------------+-----------------+
+|com.dubbo.dubbointegration.BackendService|nacos-AF(I-2,A-2)|
++-----------------------------------------+-----------------+
+
+```
+
+列出 dubbo 的所提供的服务和消费的服务,以及消费的服务地址数。
+
+注:
+- 带有 `DubboInternal` 前缀的服务是 Dubbo 内置的服务,默认不向注册中心中注册。
+- 服务发布状态中的 `nacos-A(Y)` 第一部分是对应的注册中心名,第二部分是注册的模式(`A` 代表应用级地址注册,`I` 代表接口级地址注册),第三部分代表对应模式是否已经注册
+- 服务订阅状态中的 `nacos-AF(I-2,A-2)` 第一部分是对应的注册中心名,第二部分是订阅的模式(`AF` 代表双订阅模式,`FA` 代表仅应用级订阅,`FI` 代表仅接口级订阅),第三部分中前半部分代表地址模式来源(`A` 代表应用级地址,`I` 代表接口级地址)后半部分代表对应的地址数量
+
+# 上线
+
+## online 命令
+
+Online 上线服务命令
+
+当使用延迟发布功能的时候(通过设置 org.apache.dubbo.config.AbstractServiceConfig#register 为 false),后续需要上线的时候,可通过 Online 命令
+```
+//上线所有服务
+dubbo>online
+OK
+
+//根据正则,上线部分服务
+dubbo>online com.*
+OK
+```
+
+# 下线
+
+
+## offline 命令
+
+下线服务命令
+
+由于故障等原因,需要临时下线服务保持现场,可以使用 Offline 下线命令。
+
+```
+//下线所有服务
+dubbo>offline
+OK
+
+//根据正则,下线部分服务
+dubbo>offline com.*
+OK
+```
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/spi/description/liveness.md b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/liveness.md
new file mode 100644
index 0000000000..68904d0789
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/liveness.md
@@ -0,0 +1,74 @@
+---
+type: docs
+title: "Liveness 存活探针"
+linkTitle: "存活探针"
+weight: 12
+---
+
+## 扩展说明
+
+
+拓展应用存活的检测点。
+
+
+## 扩展接口
+
+
+`org.apache.dubbo.qos.probe.LivenessProbe`
+
+
+## 扩展配置
+
+
+Dubbo QOS `live` 命令自动发现
+
+
+## 已知扩展
+
+
+暂无默认实现
+
+
+## 扩展示例
+
+
+Maven 项目结构:
+
+
+```
+src
+ |-main
+    |-java
+        |-com
+            |-xxx
+                |-XxxLivenessProbe.java (实现LivenessProbe接口)
+    |-resources
+        |-META-INF
+            |-dubbo
+                |-org.apache.dubbo.qos.probe.LivenessProbe (纯文本文件,内容为:xxx=com.xxx.XxxLivenessProbe)
+```
+
+
+XxxLivenessProbe.java:
+
+
+```java
+package com.xxx;
+ 
+public class XxxLivenessProbe implements LivenessProbe {
+    
+    public boolean check() {
+        // ...
+    }
+}
+```
+
+
+META-INF/dubbo/org.apache.dubbo.qos.probe.LivenessProbe:
+
+
+```
+xxx=com.xxx.XxxLivenessProbe
+```
+
+
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/spi/description/readiness.md b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/readiness.md
new file mode 100644
index 0000000000..049fdec269
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/readiness.md
@@ -0,0 +1,76 @@
+---
+type: docs
+title: "Readiness 就绪探针"
+linkTitle: "就绪探针"
+weight: 12
+---
+
+## 扩展说明
+
+
+拓展应用就绪的检测点。
+
+
+## 扩展接口
+
+
+`org.apache.dubbo.qos.probe.ReadinessProbe`
+
+
+## 扩展配置
+
+
+Dubbo QOS `ready`  命令自动发现
+
+
+## 已知扩展
+
+
+- `org.apache.dubbo.qos.probe.impl.BootstrapReadinessProbe`
+- `org.apache.dubbo.qos.probe.impl.ProviderReadinessProbe`
+
+
+
+## 扩展示例
+
+
+Maven 项目结构:
+
+
+```
+src
+ |-main
+    |-java
+        |-com
+            |-xxx
+                |-XxxReadinessProbe.java (实现ReadinessProbe接口)
+    |-resources
+        |-META-INF
+            |-dubbo
+                |-org.apache.dubbo.qos.probe.ReadinessProbe (纯文本文件,内容为:xxx=com.xxx.XxxReadinessProbe)
+```
+
+
+XxxReadinessProbe.java:
+
+
+```java
+package com.xxx;
+ 
+public class XxxReadinessProbe implements ReadinessProbe {
+    
+    public boolean check() {
+        // ...
+    }
+}
+```
+
+
+META-INF/dubbo/org.apache.dubbo.qos.probe.ReadinessProbe:
+
+
+```
+xxx=com.xxx.XxxReadinessProbe
+```
+
+
diff --git a/content/zh/docs3-building/java-sdk/reference-manual/spi/description/startup.md b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/startup.md
new file mode 100644
index 0000000000..e513de9122
--- /dev/null
+++ b/content/zh/docs3-building/java-sdk/reference-manual/spi/description/startup.md
@@ -0,0 +1,75 @@
+---
+type: docs
+title: "Startup 启动探针"
+linkTitle: "启动探针"
+weight: 12
+---
+
+## 扩展说明
+
+
+拓展应用启动的检测点。
+
+
+## 扩展接口
+
+
+`org.apache.dubbo.qos.probe.StartupProbe`
+
+
+## 扩展配置
+
+
+Dubbo QOS `startup`   命令自动发现
+
+
+## 已知扩展
+
+
+- `org.apache.dubbo.qos.probe.impl.BootstrapLivenessProbe`
+
+
+
+## 扩展示例
+
+
+Maven 项目结构:
+
+
+```
+src
+ |-main
+    |-java
+        |-com
+            |-xxx
+                |-XxxStartupProbe.java (实现StartupProbe接口)
+    |-resources
+        |-META-INF
+            |-dubbo
+                |-org.apache.dubbo.qos.probe.StartupProbe (纯文本文件,内容为:xxx=com.xxx.XxxStartupProbe)
+```
+
+
+XxxStartupProbee.java:
+
+
+```java
+package com.xxx;
+ 
+public class XxxStartupProbe implements StartupProbe {
+    
+    public boolean check() {
+        // ...
+    }
+}
+```
+
+
+META-INF/dubbo/org.apache.dubbo.qos.probe.StartupProbe:
+
+
+```
+xxx=com.xxx.XxxStartupProbe
+```
+
+