美團動態線程池思路開源框架

推薦一款 GitHub 熱門動態線程池框架,功能齊全並附帶前端控制檯。

累計 3.8K+ Star,共計 18+ 公司部署生產穩定運行,有需求可放心使用。

01

線程池痛點

線程池是一種基於池化思想管理線程的工具,使用線程池可以減少創建銷燬線程的開銷,避免線程過多導致系統資源耗盡。在高併發以及大批量的任務處理場景,線程池的使用是必不可少的。

如果有在項目中實際使用線程池,相信你可能會遇到以下痛點:

02

什麼是 Hippo-4J?

Hippo-4J 通過對 JDK 線程池增強,以及擴展三方框架底層線程池等功能,爲業務系統提高線上運行保障能力。

提供以下功能支持:

03

快速開始

以下例子以 hippo4j-server 方式演示,依賴配置中心方式請參考官網。

使用 Docker 一行命令運行服務端。

docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server

Maven 配置 hippo4j SpringBoot Starter 座標。

<dependency>
    <groupId>cn.hippo4j</groupId>
    <artifactId>hippo4j-spring-boot-starter</artifactId>
    <version>${latest version}</version>
</dependency>

代碼中配置動態線程池配置。

@Configuration
@EnableDynamicThreadPool
public class DynamicThreadPoolConfig {
    @Bean
    @DynamicThreadPool
    public ThreadPoolExecutor messageProduceDynamicThreadPool() {
        return ThreadPoolBuilder.buildDynamicPoolById("message-produce");
    }
}

通過上述這些簡單配置,即可使用線程池參數動態變更、運行時報警以及運行時數據監控等特性。

參數動態變更

如果應用是集羣部署,hippo4j 可以選擇修改線程池某一實例,或者修改集羣全部實例,運行時生效,不需要再重啓服務。

運行時報警

hippo4j 支持釘釘、企業微信和飛書軟件通知,線程池任務運行超時報警示例:

運行時監控

使用三方中間件 Prometheus + Grafana 或 ElasticSearch + Grafana 採集和監控。

三方框架中間件線程池適配

hippo4j 的目標是兼容所有框架的線程池,並可以提供監控和動態修改的能力。

目前已支持的三方框架線程池列表:

支持上述框架線程池的動態變更參數和監控功能,比如:

04

開源地址

Site:https://hippo4j.cn

GitHub:https://github.com/opengoofy/hippo4j

贈人 Star,手留餘香~

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/JTTwcBEiK_MnFcPTZl3zGA