DynamicTp 簡(jiǎn)介
DynamicTp 是一個(gè)基于配置中心實(shí)現(xiàn)的輕量級(jí)動(dòng)態(tài)線程池管理工具绢掰,主要功能可以總結(jié)為 動(dòng)態(tài)調(diào)參、通知報(bào)警童擎、運(yùn)行監(jiān)控滴劲、三方包線程池管理等幾大類。
[圖片上傳失敗...(image-7fe235-1655091496597)]
經(jīng)過幾個(gè)版本迭代顾复,目前最新版本v1.0.7具有以下特性
特性 ?
代碼零侵入:所有配置都放在配置中心班挖,對(duì)業(yè)務(wù)代碼零侵入
輕量簡(jiǎn)單:基于 springboot 實(shí)現(xiàn),引入 starter芯砸,接入只需簡(jiǎn)單4步就可完成萧芙,順利3分鐘搞定
高可擴(kuò)展:框架核心功能都提供 SPI 接口供用戶自定義個(gè)性化實(shí)現(xiàn)(配置中心、配置文件解析假丧、通知告警双揪、監(jiān)控?cái)?shù)據(jù)采集、任務(wù)包裝等等)
線上大規(guī)模應(yīng)用:參考美團(tuán)線程池實(shí)踐包帚,美團(tuán)內(nèi)部已經(jīng)有該理論成熟的應(yīng)用經(jīng)驗(yàn)
多平臺(tái)通知報(bào)警:提供多種報(bào)警維度(配置變更通知渔期、活性報(bào)警、容量閾值報(bào)警婴噩、拒絕觸發(fā)報(bào)警擎场、任務(wù)執(zhí)行或等待超時(shí)報(bào)警),已支持企業(yè)微信几莽、釘釘迅办、飛書報(bào)警,同時(shí)提供 SPI 接口可自定義擴(kuò)展實(shí)現(xiàn)
監(jiān)控:定時(shí)采集線程池指標(biāo)數(shù)據(jù)章蚣,支持通過 MicroMeter站欺、JsonLog 日志輸出、Endpoint 三種方式纤垂,可通過 SPI 接口自定義擴(kuò)展實(shí)現(xiàn)
任務(wù)增強(qiáng):提供任務(wù)包裝功能矾策,實(shí)現(xiàn)TaskWrapper接口即可,如 TtlTaskWrapper 可以支持線程池上下文信息傳遞峭沦,以及給任務(wù)設(shè)置標(biāo)識(shí)id贾虽,方便問題追蹤
兼容性:JUC 普通線程池也可以被框架監(jiān)控,@Bean 定義時(shí)加 @DynamicTp 注解即可
可靠性:框架提供的線程池實(shí)現(xiàn) Spring 生命周期方法吼鱼,可以在 Spring 容器關(guān)閉前盡可能多的處理隊(duì)列中的任務(wù)
多模式:參考Tomcat線程池提供了 IO 密集型場(chǎng)景使用的 EagerDtpExecutor 線程池
支持多配置中心:基于主流配置中心實(shí)現(xiàn)線程池參數(shù)動(dòng)態(tài)調(diào)整蓬豁,實(shí)時(shí)生效,已支持 Nacos菇肃、Apollo地粪、Zookeeper、Consul琐谤,同時(shí)也提供 SPI 接口可自定義擴(kuò)展實(shí)現(xiàn)
中間件線程池管理:集成管理常用第三方組件的線程池蟆技,已集成Tomcat、Jetty斗忌、Undertow质礼、Dubbo、RocketMq织阳、Hystrix等組件的線程池管理(調(diào)參几苍、監(jiān)控報(bào)警)
官網(wǎng)上線
隨著v1.0.7的發(fā)布我們上線了DynamicTp官網(wǎng):https://dynamictp.cn
介紹文檔、使用說明等都可以查看官網(wǎng)了解更多陈哑,以后新特性也會(huì)優(yōu)先發(fā)布到官網(wǎng)上
歡迎大家體驗(yàn) ????
[圖片上傳失敗...(image-463746-1655091496597)]
v1.0.7 發(fā)布記錄
距離v1.0.5發(fā)布已經(jīng)有差不多2個(gè)月時(shí)間妻坝,這個(gè)版本框架源碼調(diào)整還是比較大的,重構(gòu)了好一些功能惊窖,主要是圍繞第三方中間件線程池集成來改動(dòng)的刽宪,是向前兼容的,同時(shí)修復(fù)了三個(gè)小bug界酒。
如果你有下述痛點(diǎn)圣拄,快快升級(jí)體驗(yàn)吧。
1)如果你在使用 Dubbo毁欣,那么你大概率遇到過 Dubbo 線程池耗盡的情況庇谆,是不是很煩惱呢岳掐?嘗試使用下 DynamicTp 的 Dubbo 線程池管理功能,結(jié)合告警饭耳、實(shí)時(shí)監(jiān)控串述、動(dòng)態(tài)調(diào)參等功能盡可能降低 Dubbo 線程池耗盡,請(qǐng)求拒絕的風(fēng)險(xiǎn)寞肖。
2)mq 應(yīng)該是很多互聯(lián)網(wǎng)系統(tǒng)都會(huì)使用到的中間件纲酗,使用 mq 經(jīng)常會(huì)遇到的其中一個(gè)問題就是消息積壓?jiǎn)栴},具體啥原因?qū)е路e壓需要具體問題具體分析新蟆,就RocketMq來說觅赊,消費(fèi)端是使用線程池進(jìn)行處理消息的,所以說線程池的設(shè)置也會(huì)直接或者間接影響到消費(fèi)速度琼稻,需要對(duì)此進(jìn)行監(jiān)控吮螺、告警、以及動(dòng)態(tài)調(diào)參帕翻,盡可能降低因線程池設(shè)置而導(dǎo)致的積壓風(fēng)險(xiǎn)规脸。
Features
報(bào)警渠道接入飛書
支持 Apache Dubbo & Alibab Dubbo 服務(wù)端提供端線程池管理
支持 RocketMq 消費(fèi)端線程池管理
支持 Hystrix 線程池管理
支持 SpringBoot 內(nèi)置三大WebServer(Tomcat、Jetty熊咽、Undertow)線程池管理
增加線程池別名配置莫鸭,提升告警信息可讀易懂性
提供任務(wù)包裝類NamedRunable,提交任務(wù)時(shí)設(shè)置標(biāo)識(shí)名稱横殴,方便問題追蹤
告警項(xiàng)自定義配置被因,不配置的項(xiàng)用默認(rèn)值
BugFix
修復(fù)并發(fā)導(dǎo)致通知報(bào)警信息發(fā)送多條的問題
修復(fù)通知渠道配置修改不能動(dòng)態(tài)更新問題
修復(fù)釘釘手機(jī)端報(bào)警信息高亮失效問題
Refactor
重構(gòu)部分通知告警模塊實(shí)現(xiàn),支持三方中間件通知告警
重構(gòu)調(diào)整 adapter衫仑、starter 模塊代碼組織結(jié)構(gòu)
項(xiàng)目地址
目前累計(jì) 1.3k star梨与,感謝你的star,歡迎pr文狱,業(yè)務(wù)之余一起給開源貢獻(xiàn)一份力量
官網(wǎng):https://dynamictp.cn
gitee地址:https://gitee.com/dromara/dynamic-tp
github地址:https://github.com/dromara/dynamic-tp
加入社群
使用過程中有任何問題粥鞋,或者對(duì)項(xiàng)目有什么想法或者建議,可以加入社群瞄崇,跟群友一起交流討論呻粹。
v群已滿200人,可以加我個(gè)人v拉群(備注:dynamic-tp)苏研。
v:yanhom1314