AI工具、AI绘图、AI专栏
如果你想学到最前沿、最火爆的技术,赶快加入吧✨
作者简介:硕风和炜,CSDN-Java领域优质创作者,保研|国家奖学金|JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享
恭喜你发现一枚宝藏博主,赶快收入囊中吧
人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?
目录
- 线程池管理工具-Hippo4j
-
- 线程池痛点
- 介绍Hippo4j
- Hippo4j功能支持
- Hippo4j快速入门
- 共勉
线程池管理工具-Hippo4j
线程池痛点
线程池是一种基于池化思想管理线程的工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景,线程池的使用是必不可少的。
如果有在项目中实际使用线程池,相信你可能会遇到以下痛点:
- 线程池随便定义,线程资源过多,造成服务器高负载。
- 线程池参数不易评估,随着业务的并发提升,业务面临出现故障的风险。
- 线程池任务执行时间超过平均执行周期,开发人员无法感知。
- 线程池任务堆积,触发拒绝策略,影响既有业务正常运行。
- 当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起。
- 原生线程池不支持运行时变量的传递,比如 MDC 上下文遇到线程池就 GG。
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
介绍Hippo4j
Hippo4j监控工具就是解决线程池痛点问题的,Hippo4j基于对原生的线程池ThreadPoolExecutor做了一个增强,扩展了很多的功能。
- 所有的线程池都可以交给Hippo4j管理。
- Hippo4j可以动态的修改线程池的核心参数,以更好的适配硬件资源,提升处理速度。
- Hippo4j还提供了报警的功能,快速发现问题,快速解决问题。
- 还可以实时的监控到线程池运行时的一些数据信息。
- Hippo4j还针对一些框架的线程池,也提供监控功能
- Web容器的线程池
- Hystrix的线程池
- RabbitMQ或者是RocketMQ的线程池
- …
Hippo4j功能支持
Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。提供以下功能支持:
- 全局管控 - 管理应用线程池实例。
- 动态变更 - 应用运行时动态变更线程池参数,包括不限于:核心、最大线程数、阻塞队列容量、拒绝策略等。
- 通知报警 - 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
- 运行监控 - 实时查看线程池运行时数据,最近半小时线程池运行数据图表展示。
- 功能扩展 - 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。
- 多种模式 - 内置两种使用模式:依赖配置中心 和 无中间件依赖。
- 容器管理 - Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。
- 框架适配 - Dubbo、Hystrix、RabbitMQ、RocketMQ 等消费线程池运行时数据查看和线程数变更。
Hippo4j快速入门
- Hippo4j的Gitee地址
- Hippo4j中文指导手册
- 在线演示地址直接查看效果
Hippo4j有两个角色,一个Sever,一个Client
Server就是Hippo4j的图形化界面,监控功能都在里面
Client就是自己的工程项目,需要正常的引入Hippo4j的依赖,将构建线程池的方式更改为Hippo4j的要求的形式,再编写好各种配置文件即可。
共勉
最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉! |