This is an automated email from the ASF dual-hosted git repository.
liujun 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 cb0020267a Add error code 2-2, 6-1, 6-2, 0-1, and introduction of
error code merchanism. (#1312)
cb0020267a is described below
commit cb0020267a9747cb23c15d399a62d3869f5e40dc
Author: Andy Cheung <[email protected]>
AuthorDate: Mon Aug 1 10:49:31 2022 +0800
Add error code 2-2, 6-1, 6-2, 0-1, and introduction of error code
merchanism. (#1312)
---
content/zh/docs3-v2/java-sdk/faq/0/1.md | 23 ++++++++++++++++
content/zh/docs3-v2/java-sdk/faq/0/_index.md | 9 ++++++
content/zh/docs3-v2/java-sdk/faq/1/13.md | 2 +-
content/zh/docs3-v2/java-sdk/faq/1/4.md | 2 +-
content/zh/docs3-v2/java-sdk/faq/2/2.md | 27 ++++++++++++++++++
content/zh/docs3-v2/java-sdk/faq/3/1.md | 2 +-
content/zh/docs3-v2/java-sdk/faq/3/_index.md | 1 -
content/zh/docs3-v2/java-sdk/faq/4/1.md | 2 +-
content/zh/docs3-v2/java-sdk/faq/4/2.md | 6 ++--
content/zh/docs3-v2/java-sdk/faq/4/_index.md | 1 -
content/zh/docs3-v2/java-sdk/faq/5/1.md | 2 +-
content/zh/docs3-v2/java-sdk/faq/5/_index.md | 1 -
content/zh/docs3-v2/java-sdk/faq/6/2.md | 27 ++++++++++++++++++
content/zh/docs3-v2/java-sdk/faq/6/_index.md | 7 +++++
content/zh/docs3-v2/java-sdk/faq/_index.md | 4 +--
content/zh/docs3-v2/java-sdk/faq/intro.md | 41 ++++++++++++++++++++++++++++
16 files changed, 144 insertions(+), 13 deletions(-)
diff --git a/content/zh/docs3-v2/java-sdk/faq/0/1.md
b/content/zh/docs3-v2/java-sdk/faq/0/1.md
new file mode 100644
index 0000000000..461a0d208b
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/0/1.md
@@ -0,0 +1,23 @@
+---
+type: docs
+title: "0-1 - 线程池资源枯竭"
+linkTitle: "0-1 - 线程池资源枯竭"
+weight: 1
+---
+
+## 可能的原因
+服务端的线程资源耗尽了。
+
+默认情况下,Dubbo 服务端的业务线程数是 200 个。如果多个并发请求量超过了 200,就会拒绝新的请求,抛出此错误。
+
+## 排查和解决步骤
+* 调整 Provider 端的 `dubbo.provider.threads` 参数的大小,调大一些即可。
+* 调整 Consumer 端的 `dubbo.consumer.actives` 参数的大小,调小一些即可。
+* 增加 Provider 端服务器的数量,让各个服务器分担压力。
+
+## 致谢
+这个错误码的 FAQ 页面参考了空冥同学的 [《Dubbo
常见错误及解决方法》](https://github.com/StabilityMan/StabilityGuide/blob/master/docs/diagnosis/plugin/rpc/%E7%B3%BB%E7%BB%9F%E7%A8%B3%E5%AE%9A%E6%80%A7%E2%80%94%E2%80%94Dubbo%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95.md)
。
+
+所引文章通过 [CC-BY-4.0](http://creativecommons.org/licenses/by/4.0/)
协议赋予了汇编的权利。在此向原作者表示感谢。
+
+<p style="margin-top: 3rem;"> </p>
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/0/_index.md
b/content/zh/docs3-v2/java-sdk/faq/0/_index.md
new file mode 100644
index 0000000000..7b382329e5
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/0/_index.md
@@ -0,0 +1,9 @@
+
+---
+type: docs
+title: "0 - Common 层"
+linkTitle: "0 - Common 层"
+weight: 1
+---
+
+这里主要是用于表示各个层通用的组件上所发生的错误。
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/1/13.md
b/content/zh/docs3-v2/java-sdk/faq/1/13.md
index 7ac5f8ae0e..1a25be1ce4 100644
--- a/content/zh/docs3-v2/java-sdk/faq/1/13.md
+++ b/content/zh/docs3-v2/java-sdk/faq/1/13.md
@@ -8,7 +8,7 @@ weight: 13
## 可能的原因
1. 注册中心离线。
-## 对策
+## 排查和解决步骤
1. 检查注册中心是否正常工作。
2. 检查注册中心所在服务器及其网络是否正常工作。
diff --git a/content/zh/docs3-v2/java-sdk/faq/1/4.md
b/content/zh/docs3-v2/java-sdk/faq/1/4.md
index 3bd6b61443..bfd5b2af9a 100644
--- a/content/zh/docs3-v2/java-sdk/faq/1/4.md
+++ b/content/zh/docs3-v2/java-sdk/faq/1/4.md
@@ -7,6 +7,6 @@ weight: 4
## 可能的原因
-## 对策
+## 排查和解决步骤
<p style="margin-top: 3rem;"> </p>
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/2/2.md
b/content/zh/docs3-v2/java-sdk/faq/2/2.md
new file mode 100644
index 0000000000..a2f4a609a6
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/2/2.md
@@ -0,0 +1,27 @@
+---
+type: docs
+title: "2-2 - 没有可用的 Provider(地址找不到)"
+linkTitle: "2-2 - 没有可用的 Provider(地址找不到)"
+weight: 2
+---
+
+## 可能的原因
+这时候可能有这么几种情况:
+
+* Provider 服务没启动,或者注册中心(比如 ZooKeeper,Nacos,Consul)宕机了。
+* Dubbo 的服务配置有误差,必须保证服务名,组别 (默认是 Dubbo),version 三者都正确。
+* 访问的环境有误:通常我们会有开发环境、测试环境、线上生产环境等多套环境。有时候发布的服务到了测试环境,而访问调用时却走了开发环境。
+
+## 排查和解决步骤
+1. 访问注册中心的 Ops
系统,查询对应的服务是否有提供者列表;同时检查调用者应用所在服务器的日志(一般每种注册服务的客户端都会有对应的日志记录),查看是否有地址信息的推送/拉取记录。
+2. 如无,则表明发布者发布服务失败,检查发布者的应用启动是否成功。
+3. 如有服务,则检查调用者应用所连接的注册中心,确认跟预期的环境要匹配。
+4. 如上述都没有问题,检查是否配置了路由过滤的规则等。
+
+## 致谢
+这个错误码的 FAQ 页面参考了空冥同学的 [《Dubbo
常见错误及解决方法》](https://github.com/StabilityMan/StabilityGuide/blob/master/docs/diagnosis/plugin/rpc/%E7%B3%BB%E7%BB%9F%E7%A8%B3%E5%AE%9A%E6%80%A7%E2%80%94%E2%80%94Dubbo%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95.md)
。
+
+所引文章通过 [CC-BY-4.0](http://creativecommons.org/licenses/by/4.0/)
协议赋予了汇编的权利。在此向原作者表示感谢。
+
+
+<p style="margin-top: 3rem;"> </p>
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/3/1.md
b/content/zh/docs3-v2/java-sdk/faq/3/1.md
index c81f1caa0f..49906dd772 100644
--- a/content/zh/docs3-v2/java-sdk/faq/3/1.md
+++ b/content/zh/docs3-v2/java-sdk/faq/3/1.md
@@ -14,7 +14,7 @@ weight: 1
-## 对策
+## 排查和解决步骤
1. 检查提供方和消费方双方的协议配置。
2. 更新注册中心的版本。
diff --git a/content/zh/docs3-v2/java-sdk/faq/3/_index.md
b/content/zh/docs3-v2/java-sdk/faq/3/_index.md
index b832e9c4bb..557c758a7f 100644
--- a/content/zh/docs3-v2/java-sdk/faq/3/_index.md
+++ b/content/zh/docs3-v2/java-sdk/faq/3/_index.md
@@ -3,6 +3,5 @@
type: docs
title: "3 - 动态代理层"
linkTitle: "3 - 动态代理层"
-
weight: 3
---
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/4/1.md
b/content/zh/docs3-v2/java-sdk/faq/4/1.md
index 4128235656..34effa3e0f 100644
--- a/content/zh/docs3-v2/java-sdk/faq/4/1.md
+++ b/content/zh/docs3-v2/java-sdk/faq/4/1.md
@@ -11,7 +11,7 @@ weight: 1
-## 对策
+## 排查和解决步骤
diff --git a/content/zh/docs3-v2/java-sdk/faq/4/2.md
b/content/zh/docs3-v2/java-sdk/faq/4/2.md
index 122d5c3248..aa14b71bb9 100644
--- a/content/zh/docs3-v2/java-sdk/faq/4/2.md
+++ b/content/zh/docs3-v2/java-sdk/faq/4/2.md
@@ -1,7 +1,7 @@
---
type: docs
-title: "4-2 - 不支持的协议"
-linkTitle: "4-2 - 不支持的协议"
+title: "4-2 - 用指定的协议为条件找不到服务实例"
+linkTitle: "4-2 - 用指定的协议为条件找不到服务实例"
weight: 2
---
@@ -11,7 +11,7 @@ weight: 2
-## 对策
+## 排查和解决步骤
diff --git a/content/zh/docs3-v2/java-sdk/faq/4/_index.md
b/content/zh/docs3-v2/java-sdk/faq/4/_index.md
index c8990b2278..b9e3ed6688 100644
--- a/content/zh/docs3-v2/java-sdk/faq/4/_index.md
+++ b/content/zh/docs3-v2/java-sdk/faq/4/_index.md
@@ -3,6 +3,5 @@
type: docs
title: "4 - 协议层"
linkTitle: "4 - 协议层"
-
weight: 4
---
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/5/1.md
b/content/zh/docs3-v2/java-sdk/faq/5/1.md
index a5349e65d1..f5abdbfcbc 100644
--- a/content/zh/docs3-v2/java-sdk/faq/5/1.md
+++ b/content/zh/docs3-v2/java-sdk/faq/5/1.md
@@ -12,7 +12,7 @@ weight: 1
3. 防火墙错误拦截了配置中心的端口。
-## 对策
+## 排查和解决步骤
1. 检查配置中心 IP 以及端口的配置。
2. 检查服务器是否开机,是否正常工作。
diff --git a/content/zh/docs3-v2/java-sdk/faq/5/_index.md
b/content/zh/docs3-v2/java-sdk/faq/5/_index.md
index 4a8ce4f5da..8f76f7403c 100644
--- a/content/zh/docs3-v2/java-sdk/faq/5/_index.md
+++ b/content/zh/docs3-v2/java-sdk/faq/5/_index.md
@@ -3,6 +3,5 @@
type: docs
title: "5 - 配置(中心)层"
linkTitle: "5 - 配置(中心)层"
-
weight: 5
---
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/6/2.md
b/content/zh/docs3-v2/java-sdk/faq/6/2.md
new file mode 100644
index 0000000000..7b946d8a69
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/6/2.md
@@ -0,0 +1,27 @@
+---
+type: docs
+title: "6-2 - 客户端超时"
+linkTitle: "6-2 - 客户端超时"
+weight: 2
+---
+超时是调用端发生在请求发出后,无法在指定的时间内获得对应的响应。
+
+## 可能的原因
+1. 服务端确实处理比较慢,无法在指定的时间返回结果,调用端就自动返回一个超时的异常响应来结束此次调用。
+2. 服务端如果响应的比较快,但当客户端 Load 很高,负载压力很大的时候,会因为客户端请求发不出去、响应卡在 TCP Buffer
等问题,造成超时。因为客户端接收到服务端发来的数据或者请求服务端的数据,都会在系统层面排队,如果系统负载比较高,在内核态的时间占比就会加长,从而造成客户端获取到值时已经超时。
+3. 通常是业务处理太慢,可在服务提供方机器上执行:`jstack [PID] > jstack.log`
分析线程都卡在哪个方法调用上,这里就是慢的原因。如果不能调优性能,请调高 timeout 阈值。
+
+
+## 排查和解决步骤
+
+1. 两边可能有 GC,检查服务端和客户端 GC 日志,耗时很长的
GC,会导致超时。超时的发生很可能意味着调用端或者服务端的资源(CPU,内存或者网络)出现了瓶颈,需要检查服务端的问题还是调用端的问题来排除 GC 抖动等嫌疑。
+2. 检查服务端的网络质量,比如重传率来排除网络嫌疑。
+3. 借助链路跟踪的分析服务(比如阿里的
[ARMS](https://help.aliyun.com/document_detail/63796.html) ,开源的
[OpenTracing](https://github.com/opentracing/opentracing-java)
+系的实现 [Zipkin](https://github.com/openzipkin/zipkin)
、[SkyWalking](https://github.com/apache/skywalking) 等)来分析下各个点的耗时情况。
+
+## 致谢
+这个错误码的 FAQ 页面参考了空冥同学的 [《Dubbo
常见错误及解决方法》](https://github.com/StabilityMan/StabilityGuide/blob/master/docs/diagnosis/plugin/rpc/%E7%B3%BB%E7%BB%9F%E7%A8%B3%E5%AE%9A%E6%80%A7%E2%80%94%E2%80%94Dubbo%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95.md)
。
+
+所引文章通过 [CC-BY-4.0](http://creativecommons.org/licenses/by/4.0/)
协议赋予了汇编的权利。在此向原作者表示感谢。
+
+<p style="margin-top: 3rem;"> </p>
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/6/_index.md
b/content/zh/docs3-v2/java-sdk/faq/6/_index.md
new file mode 100644
index 0000000000..d021455ac1
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/6/_index.md
@@ -0,0 +1,7 @@
+
+---
+type: docs
+title: "6 - 网络传输层"
+linkTitle: "6 - 网络传输层"
+weight: 6
+---
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/faq/_index.md
b/content/zh/docs3-v2/java-sdk/faq/_index.md
index 68da0f7607..8ade2c05af 100755
--- a/content/zh/docs3-v2/java-sdk/faq/_index.md
+++ b/content/zh/docs3-v2/java-sdk/faq/_index.md
@@ -1,8 +1,8 @@
---
type: docs
-title: "FAQ"
-linkTitle: "FAQ"
+title: "错误码 FAQ"
+linkTitle: "错误码 FAQ"
weight: 7
---
diff --git a/content/zh/docs3-v2/java-sdk/faq/intro.md
b/content/zh/docs3-v2/java-sdk/faq/intro.md
new file mode 100644
index 0000000000..645c17cc4a
--- /dev/null
+++ b/content/zh/docs3-v2/java-sdk/faq/intro.md
@@ -0,0 +1,41 @@
+
+---
+type: docs
+title: "错误码机制的介绍"
+linkTitle: "错误码机制的介绍"
+weight: 0
+---
+
+## 背景
+Dubbo 内部依赖的 Logger 抽象层提供了日志输出能力,但是大部分的异常日志都没有附带排查说明,导致用户看到异常后无法进行处理。
+
+为了解决这个问题,自 Dubbo 3.1 版本开始,引入了错误码机制。其将官方文档中的错误码 FAQ
与日志框架连接起来。在日志抽象输出异常的同时附带输出对应的官网文档链接,引导用户进行自主排查。
+
+## 错误码格式
+`[Cat]-[X]`
+
+两个空格均为数字。其中第一个数字为类别,第二个数字为具体错误码。
+
+## 提示显示的格式
+```
+This may be caused by ..., go to https://dubbo.apache.org/faq/[Cat]/[X] to
find instructions.
+```
+另外在这句话后可以指定补充的信息(即 extendedInformation)。
+
+## 显示的实例
+`[31/07/22 02:43:07:796 CST] main WARN support.AbortPolicyWithReport:
[DUBBO] Thread pool is EXHAUSTED! Thread Name: Test, Pool Size: 0 (active: 0,
core: 1, max: 1, largest: 0), Task: 0 (completed: 0), Executor
status:(isShutdown:false, isTerminated:false, isTerminating:false), in
dubbo://10.20.130.230:20880!, dubbo version: , current host: 10.20.130.230,
error code: 0-1. This may be caused by too much client requesting provider, go
to https://dubbo.apache.org/faq/0/1 to find instructions.`
+
+用户只需点击链接即可根据错误码查找到原因。
+
+## Logger 接口支持
+为确保兼容性,Dubbo 3.1 基于原本的 Logger 抽象,构建了一个新的接口 `ErrorTypeAwareLogger`。其对 warn
等级的方法进行了扩展如下:
+```
+void warn(String code, String cause, String extendedInformation, String msg);
+void warn(String code, String cause, String extendedInformation, String msg,
Throwable e);
+```
+
+其中 code 指错误码,cause 指可能的原因(即 caused by...),extendedInformation 作为补充信息。
+
+对于 error 级别也做了相同的扩展。
+
+<p style="margin-top: 3rem;"> </p>
\ No newline at end of file