一直以来,dubbo线程监控都是一个痛点,目前很多业务都是只监控jvm线程使用情况,对于dubbo没有好的解决方案,今天有一个业务抢购,其中一个组件线程爆满了,通过日志查看线程满时有会打出如下日志:


10:42:57 WARN [] support.AbortPolicyWithReport.rejectedExecution:52 -  [DUBBO] **Thread pool is EXHAUSTED**! Thread Name: DubboServerHandler-xx.xx.xx.xx:20886, Pool Size: 50 (active: 50, core: 50, max: 50, largest: 50), Task: 4115489 (completed: 4115439), Executor status:(isShutdown:false, isTerminated:false, isTerminating:false), in dubbo://xx.xx.xx.xx:xx!, dubbo version: 2.4.10, current host: xx.xx.xx.xx``


我们没有设置dubbo,因此取的是默认值50,目前这50个线程已经爆满。


因此我们可以通过zabbix监控 日志有没有出现Thread pool is EXHAUSTED,如果有就告警。


另外我们可以通过echo status -l | nc -i 1 ip port|grep threadpool 查看dobbo线程使用情况

| threadpool | OK     | Pool status:OK, max:200, core:200, largest:200, active:1, task:777, service port: xx|