源码属性
授权 | 开源 |
大小 | 7.95MB |
语言 | Java |
源码简介
hippo4j是一个强大的动态线程池框架,附带监控报警功能。支持 JDK、Tomcat、Jetty、Undertow
线程池;Dubbo、Dubbox、RabbitMQ、RocketMQ、Hystrix
消费线程池(更多框架线程池还在适配中)。内置两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
线程池痛点
线程池是一种基于池化思想管理线程的工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景,线程池的使用是必不可少的。
如果有在项目中实际使用线程池,相信你可能会遇到以下痛点:
1、线程池随便定义,线程资源过多,造成服务器高负载。
2、线程池参数不易评估,随着业务的并发提升,业务面临出现故障的风险。
3、线程池任务执行时间超过平均执行周期,开发人员无法感知。
4、线程池任务堆积,触发拒绝策略,影响既有业务正常运行。
5、当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起。
6、原生线程池不支持运行时变量的传递,比如 MDC 上下文遇到线程池就 GG。
7、无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
8、线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
什么是 Hippo4j
提供以下功能支持:
1、全局管控 – 管理应用线程池实例。
2、动态变更 – 应用运行时动态变更线程池参数,包括但不限于:核心、最大线程数、阻塞队列容量、拒绝策略等。
3、通知报警 – 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
4、数据采集 – 支持多种方式采集线程池数据,包括但不限于:日志、内置采集、Prometheus、InfluxDB、ElasticSearch
等。
5、运行监控 – 实时查看线程池运行时数据,自定义时间内线程池运行数据图表展示。
6、功能扩展 – 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。
7、多种模式 – 内置两种使用模式:依赖配置中心 和 无中间件依赖。
8、容器管理 – Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。
9、框架适配 – Dubbo、Hystrix、RabbitMQ、RocketMQ 等消费线程池运行时数据查看和线程数变更。
10、变更审核 – 提供多种用户角色,普通用户变更线程池参数需要 Admin 用户审核方可生效。
11、动态化插件 – 内置多种线程池插件,支持用户自定义插件以及运行时扩展。
12、多版本适配 – 经过实际测试,已支持客户端 SpringBoot 1.5.x => 2.7.5 版本(更高版本未测试)。
本文永久链接地址:https://www.ymkuzhan.com/64808.html