spring实现线程池监控以及动态配置参数

Spring线程池监控与动态配置实践
本文介绍了如何扩展Spring以实现线程池的实时监控,包括线程活跃数、队列使用数等关键指标的收集,并将数据存储至Elasticsearch,借助Grafana进行可视化展示和钉钉预警。同时,利用配置中心Nacos实现线程池参数的动态调整,如核心线程数、最大线程数等。
部署运行你感兴趣的模型镜像

扩展java线程池功能,记录线程池的各项运行指标,如线程活跃数、队列使用数、平均执行时间、平均等待时间等。将信息保存到Elastic Search中,配合Grafana将数据可视化,并与钉钉结合实现预警功能。

并且通过配置中心,可以动态的设置线程池的参数,如核心线程数、最大线程数、队列容量和各种监控阈值参数。

最终和Grafana 搭配,可以实现如下效果

实时监测线程池的状态

监测线程池的如下信息:

Field

Type

Description

key

String

线程池唯一标识

name

String

线程池名

queueFullWarning

Boolean

队列是否长度超过阈值

queueWarningRatio

Double

任务队列使用比例阈值

queueWarningSize

Integer

任务队列预警长度

queueUseSize

Integer

任务队列使用数量

queueCapacity

Integer

队列容量

waitTimeoutCount

Long

任务等待时间超过阈值的数量

execTimeoutCount

Long

任务z执行时间超过阈值的数量

totalExecTime

Long

任务执行总时长

avgExecTime

Integer

任务平均执行总时长

completedTaskCount

Long

任务完成数量

activeCount

Integer

当前活跃的线程数

corePoolSize

Integer

核心线程数量

maximumPoolSize

Long

任务完成数量

waitTimeout

Long

等待超时时间,毫秒

execTimeout

Long

执行超时时间,毫秒

createTime

Long

时间,毫秒

动态设置线程池参数

通过nacos动态设置线程池参数,可设置的线程池参数如下:

Field

Type

Description

key

String

线程池唯一标识

name

String

线程池名称

queueWarningRatio

Double

任务队列使用比例阈值

queueCapacity

int

队列容量

waitTimeout

long

任务等待时长阈值,单位毫秒

execTimeout

long

任务执行时间阈值,单位毫秒

corePoolSize

int

核心线程池数量

maximumPoolSize

int

最大线程池数量

代码地址:spring-thread-pool-plus

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值