dubbo线程池exhausted

在项目开发中使用dubbo的场景很多, 如果运气好, 会遇到以下异常

Request processing failed; nested exception is org.apache.dubbo.rpc.RpcException: Failed to invoke the method findUserInfoList in the service com.infuq.facade.UserInfoFacade. Tried 3 times of the providers [127.0.0.1:20880] (1/1) from the registry 127.0.0.1:2181 on the consumer 127.0.0.1 using the dubbo version 2.7.4.1. Last error is: Failed to invoke remote method: findUserInfoList, provider: dubbo://127.0.0.1:20880/com.infuq.facade.UserInfoFacade?anyhost=true&application=infuq-java&bean.name=com.infuq.facade.UserInfoFacade&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.infuq.facade.UserInfoFacade&lazy=false&methods=findUserInfoList&pid=12507&register.ip=127.0.0.1&release=2.7.4.1&remote.application=infuq-java&revision=1.0-SNAPSHOT&side=consumer&sticky=false&timestamp=1575963075117&version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: Server side(127.0.0.1,20880) threadpool is exhausted ,detail msg:Thread pool is EXHAUSTED! Thread Name: DubboServerHandler-127.0.0.1:20880, Pool Size: 20 (active: 20, core: 20, max: 20, largest: 20), Task: 103 (completed: 83), Executor status:(isShutdown:false, isTerminated:false, isTerminating:false), in dubbo://127.0.0.1:20880!

意思是dubbo线程池满

在配置中使用
<dubbo:protocol name=“dubbo” port=“20880” threads=“20” />
手动指定线程20个, 默认200个

这个一般都是dubbo客户端在调用dubbo服务端接口时, 由于服务端dubbo线程阻塞或其他原因, 不能及时响应dubbo客户端, 最终将服务端的dubbo线程池占满. 结合监控或者jstack PID等工具, 查看dubbo服务端的服务器上的线程情况, 排查出具体是什么原因导致没有及时响应dubbo客户端的请求.

DubboServerHandler
DubboClientHandler

微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值