【开源自荐】hippo4j,强大的动态线程池框架,附带监控报警功能

#25 · open · 2 comments

View on GitHub ↗

magestacks

Guide 哥好,自荐下我开源的动态线程池框架:hippo4j ## 推荐项目 - 类别:Java - 亮点: - 多种模式 - 支持基于配置中心的轻量级依赖,以及自带控制台的无依赖中间件版本。 - 全局管控 - 通过 hippo4j 管理应用中的线程池,避免胡乱定义线程池,造成项目资源浪费。 - 动态变更 - 应用运行时动态变更线程池参数,并支持某一个实例变更。 - 通知报警 - 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。 - 运行监控 - 实时查看线程池运行时数据,以及最近半小时线程池运行数据图表展示。 - 中间件适配 - Alibaba Dubbo、RocketMQ、RabbitMQ、SpringCloud Hystrix、Tomcat 等线程池运行时数据查看和线程数变更。 - 示例代码: 定义动态线程池: ```java @Bean @DynamicThreadPool public Executor sendMessageConsumeDynamicThreadPool() { String threadPoolId = "send-message-consume"; ThreadPoolExecutor sendMessageConsume = ThreadPoolBuilder.builder() .threadPoolId(threadPoolId) .threadFactory(threadPoolId) .dynamicPool() .build(); return sendMessageConsume; } ``` 使用动态线程池: ```java @Resource private Executor sendMessageConsumeDynamicThreadPool; ``` - 截图: ![](https://user-images.githubusercontent.com/77398366/187411916-8f449b31-e6b8-43ec-a05f-e053993ff646.png) ![](https://user-images.githubusercontent.com/77398366/188109468-7f196d92-c1ca-4789-bddd-c56c684ce6db.png) - 后续更新计划: - 线程池参数动态变更时,判断当前容器 CPU 占比,过高则提示操作者是否继续修改。 - 线程池参数动态变更时,加入审核机制;变更后将该配置持久化,方便配置回滚。 - 控制台和报警通知加入国际化支持。 - 支持 H2 数据库,通过 Docker 快速部署服务,不需要依赖其它数据库。 - 支持 Dubbo EagerThreadPoolExecutor 线程池模型。 - 支持 Etcd、Consul 配置中心动态调整参数。

Comments

jerriliu

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

Snailclimb

> Guide 哥好,自荐下我开源的动态线程池框架:hippo4j > > ## 推荐项目 > * 类别:Java > * 亮点: > > * 多种模式 - 支持基于配置中心的轻量级依赖,以及自带控制台的无依赖中间件版本。 > * 全局管控 - 通过 hippo4j 管理应用中的线程池,避免胡乱定义线程池,造成项目资源浪费。 > * 动态变更 - 应用运行时动态变更线程池参数,并支持某一个实例变更。 > * 通知报警 - 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。 > * 运行监控 - 实时查看线程池运行时数据,以及最近半小时线程池运行数据图表展示。 > * 中间件适配 - Alibaba Dubbo、RocketMQ、RabbitMQ、SpringCloud Hystrix、Tomcat 等线程池运行时数据查看和线程数变更。 > * 示例代码: > > 定义动态线程池: > > ```java > @Bean > @DynamicThreadPool > public Executor sendMessageConsumeDynamicThreadPool() { > String threadPoolId = "send-message-consume"; > ThreadPoolExecutor sendMessageConsume = ThreadPoolBuilder.builder() > .threadPoolId(threadPoolId) > .threadFactory(threadPoolId) > .dynamicPool() > .build(); > return sendMessageConsume; > } > ``` > > 使用动态线程池: > > ```java > @Resource > private Executor sendMessageConsumeDynamicThreadPool; > ``` > > * 截图: > > ![](https://user-images.githubusercontent.com/77398366/187411916-8f449b31-e6b8-43ec-a05f-e053993ff646.png) > > ![](https://user-images.githubusercontent.com/77398366/188109468-7f196d92-c1ca-4789-bddd-c56c684ce6db.png) > > * 后续更新计划: > > * 线程池参数动态变更时,判断当前容器 CPU 占比,过高则提示操作者是否继续修改。 > * 线程池参数动态变更时,加入审核机制;变更后将该配置持久化,方便配置回滚。 > * 控制台和报警通知加入国际化支持。 > * 支持 H2 数据库,通过 Docker 快速部署服务,不需要依赖其它数据库。 > * 支持 Dubbo EagerThreadPoolExecutor 线程池模型。 > * 支持 Etcd、Consul 配置中心动态调整参数。 感谢大佬自荐!会尽快添加进去。