对于 DynamicTp
DynamicTp 是一个基于配置核心实现的轻量级动静线程池管理工具,次要性能能够总结为动静调参、告诉报警、运行监控、三方包线程池治理等几大类。
通过多个版本迭代,目前最新版本 v1.0.8 具备以下个性
个性 ✅
- 代码零侵入 :所有配置都放在配置核心,对业务代码零侵入
- 轻量简略 :基于 springboot 实现,引入 starter,接入只需简略 4 步就可实现,顺利 3 分钟搞定
- 高可扩大 :框架外围性能都提供 SPI 接口供用户自定义个性化实现(配置核心、配置文件解析、告诉告警、监控数据采集、工作包装等等)
- 线上大规模利用 :参考美团线程池实际,美团外部曾经有该实践成熟的利用教训
- 多平台告诉报警 :提供多种报警维度(配置变更告诉、活性报警、容量阈值报警、回绝触发报警、工作执行或期待超时报警),已反对企业微信、钉钉、飞书报警,同时提供 SPI 接口可自定义扩大实现
- 监控 :定时采集线程池指标数据,反对通过 MicroMeter、JsonLog 日志输入、Endpoint 三种形式,可通过 SPI 接口自定义扩大实现
- 工作加强 :提供工作包装性能,实现 TaskWrapper 接口即可,如 MdcTaskWrapper、TtlTaskWrapper、SwTraceTaskWrapper,能够反对线程池上下文信息传递
- 兼容性 :JUC 一般线程池和 Spring 中的 ThreadPoolTaskExecutor 也能够被框架监控,@Bean 定义时加 @DynamicTp 注解即可
- 可靠性 :框架提供的线程池实现 Spring 生命周期办法,能够在 Spring 容器敞开前尽可能多的解决队列中的工作
- 多模式 :参考 Tomcat 线程池提供了 IO 密集型场景应用的 EagerDtpExecutor 线程池
- 反对多配置核心 :基于支流配置核心实现线程池参数动静调整,实时失效,已反对 Nacos、Apollo、Zookeeper、Consul、Etcd,同时也提供 SPI 接口可自定义扩大实现
- 中间件线程池治理 :集成治理罕用第三方组件的线程池,已集成 Tomcat、Jetty、Undertow、Dubbo、RocketMq、Hystrix 等组件的线程池治理(调参、监控报警)
依赖 groupId 变更
v1.0.8 开始,依赖包的 groupId 从之前的 io.github.lyh200 改为 cn.dynamictp,对使用者通明。
v1.0.8 公布记录
间隔 v1.0.7 公布曾经有差不多 2 个月工夫,这个里程碑版本新增了好些性能,同时优化重构了一些代码设计,欢送大家降级体验哦!
Features
- 新增内存平安队列 MemorySafeLinkedBlockingQueue,感激 @dragon-zhang 提供实现
- WebServer 线程池治理反对 Reactive 环境下应用,感激 @abbottliu.liu 提供实现
- 反对 Dubbox 线程池治理,感激 @Redick01 提供实现
- 反对 Spring 中的 ThreadPoolTaskExecutor 线程池治理,感激 @Redick01 提供实现
- 反对 Etcd 配置核心接入,感激 @Redick01 提供实现
- 监控指标采集器新增输入到利用日志中的 InternalLogCollector,感激 @Redick01 提供实现
- 三方中间件线程池告诉告警反对别名配置,感激 @renbiao002 提供实现
- 新增 extension 模块,搁置一些扩大性能
- 三方中间件线程池治理反对告诉告警性能
- 指标数据采集反对同时配置多种采集形式
- 新增 MdcTaskWrapper 工作包装器,反对 MDC 上下文传递
- 新增 SwTraceTaskWrapper 工作包装器,反对 Skywalking TID 传递
- 新增告诉告警集群限流插件,见 extension-limiter-redis 模块
- ThreadPoolCreator 类新增一些内存平安快捷创立线程池办法
BugFix
- 兼容 JDK11 以后要设置外围线程数不能大于上次设置的最大线程数限度
- 修复外围线程预热设置 preStartAllCoreThreads 不失效问题
- 修复 Hystrix 线程池获取失败 & 调参被笼罩问题
- 修复采集类型为 logging 模式时,配置更新后日志输入到利用日志中的问题
Refactor
- 重构 logging 模块,去掉事件监听依赖
- 重构形象 adapter 模块代码
- 责任链模式重构 notify 模块
Optimize
- example 增加 Hystrix 线程池的测试例子
- 低版本 Apollo 配置文件格式兼容
- Undertow 容器开启沉闷线程池数采集性能
- Endpoint 端点接口反对三方中间件线程池指标数据获取
- 优化三方中间件参数刷新逻辑,减少校验判断逻辑及日志输入
- 各模块代码优化
我的项目地址
目前累计 1.6k star,感激你的 star,欢送 pr,业务之余一起给开源奉献一份力量
官网 :https://dynamictp.cn
gitee 地址 :https://gitee.com/dromara/dynamic-tp
github 地址 :https://github.com/dromara/dynamic-tp
退出社群
看到这儿,不便的话给我的项目一个 star,你的反对是咱们后退的能源!
应用过程中有任何问题,或者对我的项目有什么想法或者倡议,能够退出社群,跟群友一起交换探讨。
微信群已满 200 人,能够加我集体微信拉群(备注:dynamic-tp)。