ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

生产线程池爆炸

2020-09-10 16:33:27  阅读:255  来源: 互联网

标签:程池 爆炸 consumerGroup 生产线 线程 reject mq consumer


生产线程池开始抛出一系列reject异常,具体日志如下。

 

 

项目整体请求量不大,所以怀疑个别任务的消费速度过慢导致,因这个线程池在项目各处大量分散使用,不能快速定位具体是哪个任务。

 

最后通过arthas定位到这个task。

暂时下掉相关逻辑问题得到解决。

第二天排查问题原因是有个http请求,没有设置超时时间,下游的服务刚好数据库连接出现问题,超时30s后才响应500,导致线程池的任务在这里堆积。

启发:

1.耗时较高的任务不要随便丢线程池,可能会影响其他业务,对第三方的服务最好有熔断降级策略。

2.对于关键的异步,可以考虑用mq来实现,这样至少不会被reject。

说到mq,consumer本地也是有线程池的,会不会也会相互影响呢:

 

 

 

 

可以看到consumer的线程池是以consumerGroup进行隔离的。

那framework里是怎么定义consumerGroup的呢:

 

默认是以项目名作为groupName的。那么不同topic的线程池其实是同一个,还是会相互影响。

 

标签:程池,爆炸,consumerGroup,生产线,线程,reject,mq,consumer
来源: https://www.cnblogs.com/lccsblog/p/13646542.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有