歷時2月,動態執行緒池 DynamicTp 發布里程碑版本 V1.0.8
關於 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,業務之餘一起給開源貢獻一份力量
gitee地址://gitee.com/dromara/dynamic-tp
github地址://github.com/dromara/dynamic-tp
看到這兒,方便的話給項目一個star,你的支援是我們前進的動力!


