dubbo服务正常,consumer偶尔会返回请求不到服务的问题分析

现象:
提供方服务provider 启动好了
消费方服务consumer也启动好了,consumer配置的rpc.timeout=200000(200s)

在这里插入图片描述
在consumer端调用privider端的服务,还是会随机返回调用不到服务的错误:
在这里插入图片描述随后查日志发现:
在这里插入图片描述T hread pool is EXHAUSTED! Thread Name: DubboServerHandler-192.168.1.21:18049, Pool Size: 200 (active: 200, core: 200, max: 200, largest: 200), Task: 2022099 (completed: 2021899), Executor status:(isShutdown:false, isTerminated:false, isTe rminating:false), in dubbo://192.168.1.21:18049!

所以,可以知道是dubbo的服务连接池满了导致的。

因为consumer端设置的rpc超时时间过长,而有些服务的请求时间会过长,导致线程一直不能被释放,线程池满了以后,就会出现连接不到服务的问题。

解决办法:将consumer端的超时时间改成20s

另外:配置线程池的数量的原则,可以参照1核50个来进行适配,观察服务器的压力情况进行增加或者减少。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值