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

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

dubbo服务正常,consumer偶尔会返回请求不到服务的问题分析_第1张图片
在consumer端调用privider端的服务,还是会随机返回调用不到服务的错误:
dubbo服务正常,consumer偶尔会返回请求不到服务的问题分析_第2张图片随后查日志发现:
dubbo服务正常,consumer偶尔会返回请求不到服务的问题分析_第3张图片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个来进行适配,观察服务器的压力情况进行增加或者减少。

你可能感兴趣的:(dubbo)