Skip to content

📌 强大的动态线程池框架,附带监控报警功能,支持 JDK、Tomcat、Jetty、Undertow 线程池;RocketMQ、Dubbo、Alibaba Dubbo、RabbitMQ、Hystrix 消费线程池(更多框架线程池还在适配中)。内置两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。

License

Notifications You must be signed in to change notification settings

jinlingmei/hippo4j

 
 

Repository files navigation

image

动态可观测线程池框架,提高线上运行保障能力

Gitee GitHub Docker Pulls Contributors License


线程池痛点

线程池是一种基于池化思想管理线程的工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景,线程池的使用是必不可少的。

如果有在项目中实际使用线程池,相信你可能会遇到以下痛点:

  • 线程池随便定义,线程资源过多,造成服务器高负载。

  • 线程池参数不易评估,随着业务的并发提升,业务面临出现故障的风险。

  • 线程池任务执行时间超过平均执行周期,开发人员无法感知。

  • 线程池任务堆积,触发拒绝策略,影响既有业务正常运行。

  • 当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起。

  • 原生线程池不支持运行时变量的传递,比如 MDC 上下文遇到线程池就 GG。

  • 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。

  • 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。

什么是 Hippo-4J

Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。

提供以下功能支持:

  • 全局管控 - 管理应用线程池实例;

  • 动态变更 - 应用运行时动态变更线程池参数,包括不限于:核心、最大线程数、阻塞队列容量、拒绝策略等。

  • 通知报警 - 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。

  • 运行监控 - 实时查看线程池运行时数据,最近半小时线程池运行数据图表展示。

  • 功能扩展 - 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。

  • 多种模式 - 内置两种使用模式:依赖配置中心无中间件依赖

  • 容器管理 - Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。

  • 中间件适配 - Apache RocketMQ、Dubbo、RabbitMQ、Hystrix 消费线程池运行时数据查看和线程数变更。

开源作者为爱发电不容易,看完有收获,右上角帮忙点个小星星 🤩

快速开始

对于本地演示目的,请参阅 Quick start

演示环境: http://console.hippo4j.cn/index.html

联系我

扫码添加微信,备注:hippo4j,邀您加入群聊。若图片加载不出来,访问 官网站点

友情链接

  • [ Sa-Token ]:一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!

  • [ HertzBeat ]:易用友好的云监控系统, 无需 Agent, 强大自定义监控能力。

  • [ JavaGuide ]:一份涵盖大部分 Java 程序员所需要掌握的核心知识。

  • [ toBeBetterJavaer ]:一份通俗易懂、风趣幽默的 Java 学习指南。

荣誉墙

Hippo-4J 获得了一些宝贵的荣誉,肯定了 Hippo-4J 作为一款开源框架所带来的价值。

image

开发者

Hippo-4J 获得的成就属于每一位贡献者!如果有意贡献,请参考 good first issue 或者 good pro issue

谁在使用

身边云 Medbanks 神州数码 payermax 轻松到家 鲁班到家 广东天枢新能源科技有限公司 FitTime 51社保 好货云店 斗象科技 深圳航天信息有限公司 新东方

About

📌 强大的动态线程池框架,附带监控报警功能,支持 JDK、Tomcat、Jetty、Undertow 线程池;RocketMQ、Dubbo、Alibaba Dubbo、RabbitMQ、Hystrix 消费线程池(更多框架线程池还在适配中)。内置两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.1%
  • Other 0.9%