当前位置: 首页 > 后端技术 > Java

2月,动态线程池DynamicTp发布里程碑版本V1.0.8

时间:2023-04-01 21:40:14 Java

关于DynamicTpDynamicTp是一款基于配置中心的轻量级动态线程池管理工具。主要功能可以概括为动态参数调整、通知告警、运行监控、三方包线程池管理等几类。经过多次版本迭代,最新版本v1.0.8具有以下特点。?零代码入侵:所有配置都放在配置中心,业务代码零入侵。轻量简单:基于springboot实现,引入starter,轻松接入4步即可完成,3分钟即可顺利完成。高扩展性:框架核心功能提供SPI接口,供用户自定义个性化实现(配置中心、配置文件分析、通知告警、监控数据采集、任务打包等)线上大规模应用:参考线程池在美团的实践中,美团已经对这一理论有了成熟的应用经验。多平台通知告警:提供多种告警维度(配置变更通知、活动告警、容量阈值告警、拒绝触发告警、任务执行或等待超时告警),已支持企业微信、钉钉、飞书告警,并提供SPI可自定义扩展实现监控的接口:定时采集线程池指标数据,支持MicroMeter、JsonLog日志输出、Endpoint三种方式,可通过自定义扩展SPI接口实现任务增强:提供任务打包功能,实现即可TaskWrapper接口,如MdcTaskWrapper、TtlTask??Wrapper、SwTraceTaskWrapper,可以支持线程池上下文信息传递兼容性:JUC普通线程池和Spring中的ThreadPoolTask??Executor也可以使用Framework监控,在定义@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个月了。这个里程碑版本增加了许多新功能,优化和重构了一些代码设计。欢迎升级您的体验!特性新增内存安全队列MemorySafeLinkedBlockingQueue,感谢@dragon-zhang提供WebServer线程池管理的实现支持Reactive环境,感谢@abbottliu.liu为Dubbox线程池管理提供实现支持,感谢@Redick01提供实现支持对于SpringManagement中的ThreadPoolTask??Executor线程池,感谢@Redick01提供了访问Etcd配置中心的支持,感谢@Redick01提供了实现监控指标收集器新输出到应用日志的InternalLogCollector,感谢@Redick01redick01提供三方中间件线程池通知和告警的实现支持别名配置,感谢@renbiao002提供新扩展模块的实现,放置一些扩展功能三方中间件线程池管理支持通知告警功能指标数据采集支持同时配置多种收集方式添加MdcTaskWrapper任务包装器,支持MDC上下文传输添加新的SwTraceTaskWrapper任务包装器,支持SkywalkingTID传递新的通知和警报集群限流插件,见extension-limiter-redis模块ThreadPoolCreator类添加一些内存安全和快速线程池创建方式BugFix兼容JDK11目前设置核心线程数不能大于上次设置的最大线程数数量限制修复核心线程预热设置preStartAllCoreThreads不生效问题修复Hystrix线程池获取失败&参数覆盖问题修复采集类型为logging模式时,配置更新后日志输出到应用日志的问题Refactor重构logging模块,去掉事件监听依赖于重构abstractadapter模块代码责任链模式重构notify模块Optimizeexample添加Hystrix线程池测试example低版本Apollo配置文件格式兼容Undertow容器启用主动线程池采集功能Endpoint端点接口支持第三方中间件线程池指标数据采集优化三方中间件参数刷新逻辑,增加验证判断逻辑和日志输出,各模块代码优化项目地址目前共有1.6kstar,感谢大家的star,欢迎pr,业务后贡献开源。官网:https://dynamictp。cngitee地址:https://gitee.com/dromara/dynamic-tpgithub地址:https://github.com/dromara/dynamic-tp加入社区看这里,方便的话给项目一个star,支持是我们前进的动力!如果您在使用过程中有任何疑问,或者您对项目有什么想法或建议,可以加入社区,与群友交流。微信群满200人,可以加我的个人微信群(备注:dynamic-tp)。