1. 背景
在大规模应用中,线程池是实现并发控制的关键组件之一。为了更好地管理和监控线程池的运行状况,我们需要一种动态的监控机制,以适应不同框架和应用场景。
这里, 我们先提出以下一些问题, 这是我想学习dynamic-tp动态线程池的动力.
-
大家都知道线程池7大参数, 在构建线程池的时候, 怎么确保你设定的参数到了生产一定不会有问题呢? 如果有了问题怎么修改呢?
-
基于上一个问题, 修改生产环境能修改线程池参数最合适的地方就是配置中心了. 那如何保障能够适配不同类型的配置中心呢? 比如nacos, zookeeper, apollo?
-
监控线上的线程池情况, 通知如何接入, 比如接入钉钉, 企业, 微信的通知?
-
怎么兼容不同的指标采集类型, 比如micrometer? Jsonlogs?
我带着这些疑问开始尝试学习这套dynamic-tp的源码.
2. DynamicTp架构
3. Quick Start
-
引入相应配置中心的依赖 maven 依赖
-
配置中心配置线程池实例 配置文件
-
启动类加 @EnableDynamicTp 注解
-
使用 @Resource 或 @Autowired 进行依赖注入,或通过 DtpRegistry.getExecutor("name") 获取线程池.
4. 源码模块
框架功能大体包含的模块
配置变更监听模块
线程池管理模块
监控模块
通知告警模块
三方组件线程池管理模块