DynamicTp 简介
DynamicTp 是一个基于配置核心实现的轻量级动静线程池管理工具,次要性能能够总结为 动静调参、告诉报警、运行监控、三方包线程池治理等几大类。
通过几个版本迭代,目前最新版本 v1.0.6 具备以下个性
个性 ✅
- 代码零侵入 :所有配置都放在配置核心,对业务代码零侵入
- 轻量简略 :基于 springboot 实现,引入 starter,接入只需简略 4 步就可实现,顺利 3 分钟搞定
- 高可扩大 :框架外围性能都提供 SPI 接口供用户自定义个性化实现(配置核心、配置文件解析、告诉告警、监控数据采集、工作包装等等)
- 线上大规模利用 :参考美团线程池实际,美团外部曾经有该实践成熟的利用教训
- 多平台告诉报警 :提供多种报警维度(配置变更告诉、活性报警、容量阈值报警、回绝触发报警、工作执行或期待超时报警),已反对企业微信、钉钉、飞书报警,同时提供 SPI 接口可自定义扩大实现
- 监控 :定时采集线程池指标数据,反对通过 MicroMeter、JsonLog 日志输入、Endpoint 三种形式,可通过 SPI 接口自定义扩大实现
- 工作加强 :提供工作包装性能,实现 TaskWrapper 接口即可,如 TtlTaskWrapper 能够反对线程池上下文信息传递,以及给工作设置标识 id,不便问题追踪
- 兼容性 :JUC 一般线程池也能够被框架监控,@Bean 定义时加 @DynamicTp 注解即可
- 可靠性 :框架提供的线程池实现 Spring 生命周期办法,能够在 Spring 容器敞开前尽可能多的解决队列中的工作
- 多模式 :参考 Tomcat 线程池提供了 IO 密集型场景应用的 EagerDtpExecutor 线程池
- 反对多配置核心 :基于支流配置核心实现线程池参数动静调整,实时失效,已反对 Nacos、Apollo、Zookeeper、Consul,同时也提供 SPI 接口可自定义扩大实现
- 中间件线程池治理 :集成治理罕用第三方组件的线程池,已集成 Tomcat、Jetty、Undertow、Dubbo、RocketMq、Hystrix 等组件的线程池治理(调参、监控报警)
官网上线
随着 v1.0.6 的公布咱们上线了 DynamicTp 官网:https://dynamictp.cn
介绍文档、应用阐明等都能够查看官网理解更多,当前新个性也会优先公布到官网上
欢送大家体验 👏🏻
v1.0.6 公布记录
间隔 v1.0.5 公布曾经有差不多 2 个月工夫,这个版本框架源码调整还是比拟大的,重构了好一些性能,次要是围绕第三方中间件线程池集成来改变的,是向前兼容的,同时修复了三个小 bug。
如果你有下述痛点,快快降级体验吧。
1)如果你在应用 Dubbo,那么你大概率遇到过 Dubbo 线程池耗尽的状况,是不是很懊恼呢?尝试应用下 DynamicTp 的 Dubbo 线程池治理性能,联合告警、实时监控、动静调参等性能尽可能升高 Dubbo 线程池耗尽,申请回绝的危险。
2)mq 应该是很多互联网零碎都会应用到的中间件,应用 mq 常常会遇到的其中一个问题就是音讯积压问题,具体啥起因导致积压须要具体问题具体分析,就 RocketMq 来说,生产端是应用线程池进行解决音讯的,所以说线程池的设置也会间接或者间接影响到生产速度,须要对此进行监控、告警、以及动静调参,尽可能升高因线程池设置而导致的积压危险。
留神:springboot 内置的三大 webserver 集成包默认会引入,不须要额定引入,其余三方组件的包须要本人引入,具体查看官网
Features
- 报警渠道接入飞书
- 反对 Apache Dubbo & Alibab Dubbo 服务端提供端线程池治理
- 反对 RocketMq 生产端线程池治理
- 反对 Hystrix 线程池治理
- 反对 SpringBoot 内置三大 WebServer(Tomcat、Jetty、Undertow)线程池治理
- 减少线程池别名配置,晋升告警信息可读易懂性
- 提供工作包装类 NamedRunable,提交工作时设置标识名称,不便问题追踪
- 告警项自定义配置,不配置的项用默认值
BugFix
- 修复并发导致告诉报警信息发送多条的问题
- 修复告诉渠道配置批改不能动静更新问题
- 修复钉钉手机端报警信息高亮生效问题
Refactor
- 重构局部告诉告警模块实现,反对三方中间件告诉告警
- 重构调整 adapter、starter 模块代码组织构造
我的项目地址
目前累计 1.3k star,感激你的 star,欢送 pr,业务之余一起给开源奉献一份力量
官网 :https://dynamictp.cn
gitee 地址 :https://gitee.com/dromara/dynamic-tp
github 地址 :https://github.com/dromara/dynamic-tp
退出社群
应用过程中有任何问题,或者对我的项目有什么想法或者倡议,能够退出社群,跟群友一起交换探讨。
微信群已满 200 人,能够加我集体微信 yanhom1314 拉群(备注:dynamic-tp)。
此文章版权归属 dromara 开源组织所有(https://dromara.org/)