0-1 - 线程池资源耗尽
服务器的线程资源已耗尽。默认情况下,Dubbo 服务器上的业务线程数为 200。如果并发请求数超过 200,则新请求将被拒绝并抛出此错误。
可能原因
- 来自消费者的并发请求量过大,导致提供程序上创建的线程数超过限制。
- 可能是在提供程序端执行业务时,线程因为业务调用外部应用程序接口而被阻塞,导致线程池无法回收线程。
故障排除和解决步骤
- 启用 Dubbo 的访问日志功能,检查短时间内是否有大量对 RPC 服务的调用。
- 通过
jps
和jstack
指令检查线程池中每个线程的状态,查看是否有业务调用外部应用程序接口导致阻塞。 - 如果来自消费者的并发请求量过大,则调整提供程序端的
dubbo.provider.threads
参数以增加 Dubbo 线程池的数量。 - 如果提供程序业务的 QPS 过大,当前服务器数量无法处理,则增加提供程序端服务器的数量,以便更多服务器可以分担压力。
此错误代码的常见问题解答页面请参阅“Dubbo 常见错误和解决方案”。引用的文章根据许可证CC-BY-4.0编译。在此感谢原作者。
上次修改时间:2023 年 1 月 3 日:合并错误代码 3-3 到 3-8,6-4 到 99-0。(#1796)(a687d30ae03)