本文主要是介绍线程池这样用,架构师看了都说好,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
你是否在项目中使用线程池遇到过以下问题?
- 创建线程池核心参数不好评估,随着业务流量的波动,极有可能出现生产故障。
- 不支持优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 不支持运行时监控,使用过程中业务无响应,不知道是不是线程池引起。
- 三方框架 RocketMQ、Dubbo 等线程池无法动态修改参数,修改后只能重启应用。
在真实业务场景中,线程池可能遇到的问题比这里描述的还要多,稀奇古怪。
笔者所经历过的项目,因为业务对线程池参数没有合理配置,就触发过几起生产事故。大概在 21 年 6 月份左右,开始在网上搜索动态线程池的项目。
在开源平台找了挺多动态线程池项目,从功能性以及健壮性而言,个人感觉不满足企业级应用。
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
GitHub:github.com/opengoofy/h…
Gitee:gitee.com/opengoofy/h…
核心功能
通过对 JDK 线程池的增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
Hippo4j 框架提供以下功能支持:
- 全局管控 - 管理客户端应用全部线程池实例。
- 动态变更 - 应用运行时动态变更线程池核心参数。
- 通知报警 - 内置多种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
- 数据采集 - 支持多种方式采集线程池数据,包括但不限于:日志、内置采集、Prometheus、InfluxDB、ElasticSearch 等。 <
这篇关于线程池这样用,架构师看了都说好的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!