0-1 - 线程池资源耗尽

服务器的线程资源已耗尽。默认情况下,Dubbo 服务器上的业务线程数为 200。如果并发请求数超过 200,则新请求将被拒绝并抛出此错误。

可能原因

  1. 来自消费者的并发请求量过大,导致提供程序上创建的线程数超过限制。
  2. 可能是在提供程序端执行业务时,线程因为业务调用外部应用程序接口而被阻塞,导致线程池无法回收线程。

故障排除和解决步骤

  • 启用 Dubbo 的访问日志功能,检查短时间内是否有大量对 RPC 服务的调用。
  • 通过 jpsjstack 指令检查线程池中每个线程的状态,查看是否有业务调用外部应用程序接口导致阻塞。
  • 如果来自消费者的并发请求量过大,则调整提供程序端的 dubbo.provider.threads 参数以增加 Dubbo 线程池的数量。
  • 如果提供程序业务的 QPS 过大,当前服务器数量无法处理,则增加提供程序端服务器的数量,以便更多服务器可以分担压力。

此错误代码的常见问题解答页面请参阅“Dubbo 常见错误和解决方案”。引用的文章根据许可证CC-BY-4.0编译。在此感谢原作者。