一种线程池的运行状态获取方法、装置和电子设备制造方法及图纸

技术编号:29998754 阅读:11 留言:0更新日期:2021-09-11 04:41
本发明专利技术实施例涉及互联网技术领域,尤其涉及一种线程池的运行状态获取方法、装置和电子设备。其中,上述方法包括:根据原生线程池,构建支持链路追踪的增强线程池;将增强线程池注入Spring容器中,并获取增强线程池的bean名称;响应于线程池监控服务的启动,在配置文件中添加待监控线程池的bean名称;对所述待监控的增强线程池进行反射,确定待监控原生线程池,并获取待监控原生线程池的运行状态参数;如果待监控原生线程池异常,则向监控设备发送告警信息。本发明专利技术实施例具备获取线程池运行状态参数的能力,能够实现对线程池运行状态的监控。控。控。

【技术实现步骤摘要】
一种线程池的运行状态获取方法、装置和电子设备


[0001]本专利技术实施例涉及互联网
,尤其涉及一种线程池的运行状态获取方法、装置和电子设备。

技术介绍

[0002]线程,程序执行流的最小执行单位,是进程中的实际运作单位。在一个应用程序中,用户需要多次使用线程,也就意味着,用户需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存,在Java中,内存资源是极其宝贵的,所以,Java中开辟出了一种管理线程的概念,这个概念叫做线程池。线程池可以方便地管理线程,减少内存的消耗。
[0003]在现有技术中,以Java为开发语言,大量使用线程池去提升系统的性能。但在分布式系统下,如何追踪线程以及获取线程池的运行状态参数是一个需要解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种线程池的运行状态获取方法、装置和电子设备,用以解决现有技术中无法直接获取线程池的运行状态参数的问题。
[0005]第一方面,本专利技术实施例提供一种线程池的运行状态获取方法,包括:
[0006]根据原生线程池,构建支持链路追踪的增强线程池;
[0007]将所述增强线程池注入Spring容器中,并获取所述增强线程池在所述Spring容器中的bean名称;
[0008]响应于线程池监控服务的启动,在配置文件中添加待监控线程池的bean名称;
[0009]根据所述配置文件中的bean名称,确定待监控的增强线程池;
[0010]对所述待监控的增强线程池进行反射,确定待监控原生线程池,并获取所述待监控原生线程池的运行状态参数;
[0011]如果根据所述运行状态参数,确定所述待监控原生线程池异常,则向监控设备发送告警信息。
[0012]其中一种可能的实现方式中,根据原生线程池,构建支持链路追踪的增强线程池,包括:
[0013]使用zipkin中间件对所述原生线程池进行代理增强,得到所述支持链路追踪的增强线程池。
[0014]其中一种可能的实现方式中,所述线程池监控服务的启动之后,所述方法还包括:
[0015]启动定时,在所述定时时间范围内执行获取所述运行状态参数的步骤。
[0016]其中一种可能的实现方式中,所述线程池监控服务的程序代码包含于采用maven打包而成的jar包中,通过触发所述jar包启动所述线程池监控服务。
[0017]其中一种可能的实现方式中,对所述待监控的增强线程池进行反射,确定原生线程池包括:
[0018]对所述待监控的增强线程池进行jdk反射,以确定原生线程池。
[0019]第二方面,本专利技术实施例提供一种线程池的运行状态获取装置,包括:
[0020]构建模块,用于根据原生线程池,构建支持链路追踪的增强线程池;
[0021]注入模块,用于将所述增强线程池注入Spring容器中,并获取所述增强线程池在所述Spring容器中的bean名称;
[0022]监控模块,用于响应于线程池监控服务的启动,在配置文件中添加待监控线程池的bean名称;根据所述配置文件中的bean名称,确定待监控的增强线程池;对所述待监控的增强线程池进行反射,确定待监控原生线程池,并获取所述待监控原生线程池的运行状态参数;如果根据所述运行状态参数,确定所述待监控原生线程池异常,则向监控设备发送告警信息。
[0023]其中一种可能的实现方式中,所述监控模块,包括:
[0024]配置文件子模块,用于当线程池监控服务启动时,在配置文件中添加待监控线程池的bean名称;
[0025]确定子模块,用于根据所述配置文件中的bean名称,确定待监控的增强线程池;
[0026]反射子模块,用于对所述待监控的增强线程池进行反射,确定待监控原生线程池,并获取所述待监控原生线程池的运行状态参数;
[0027]告警子模块,用于在根据所述运行状态参数,确定所述待监控原生线程池异常的状态时,则向监控设备发送告警信息。
[0028]其中一种可能的实现方式中,所述监控模块,还包括:
[0029]定时子模块,用于启动定时,以使线程池监控服务在所述定时时间范围内执行获取所述运行状态参数的步骤。
[0030]第三方面,本专利技术实施例提供一种电子设备,包括:
[0031]至少一个处理器;以及
[0032]与所述处理器通信连接的至少一个存储器,其中:
[0033]所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
[0034]第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。
[0035]应当理解的是,本专利技术实施例的第二~第四方面与本专利技术实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
[0036]本专利技术实施例提供的线程池的运行状态获取方法、装置和电子设备具备获取线程池运行状态参数的能力,能够根据线程池运行状态参数对异常线程池进行定位排查,完成线程池监控服务。所述线程池监控服务的程序代码包含于采用maven编译而成的jar包中。用户引入所述jar包后,仅需做少量的参数配置,即可获得支持链路追踪的线程池监控功能,可提高开发效率,简化开发流程,降本增效。
【附图说明】
[0037]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0038]图1为本专利技术实施例提供的一种线程池的运行状态获取方法的流程图;
[0039]图2为本专利技术实施例提供的另一种线程池的运行状态获取方法的流程图;
[0040]图3为本专利技术实施例提供的一种线程池的运行状态获取装置的示意图;
[0041]图4为本专利技术实施例提供的另一种线程池的运行状态获取装置的示意图;
[0042]图5为本专利技术实施例提供的一种线程池的运行状态获取电子设备的示意图。
【具体实施方式】
[0043]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0044]在现有技术中,以Java为开发语言,大量使用线程池去提升系统的性能。但在分布式系统下,如何追踪线程以及获取线程池的运行状态参数是一个需要解决的问题。为解决该问题,本专利技术实施例提供了一种线程池的运行状态获取方法、装置和电子设备。所述线程池的运行状态本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程池的运行状态获取方法,其特征在于,包括:根据原生线程池,构建支持链路追踪的增强线程池;将所述增强线程池注入Spring容器中,并获取所述增强线程池在所述Spring容器中的bean名称;响应于线程池监控服务的启动,在配置文件中添加待监控线程池的bean名称;根据所述配置文件中的bean名称,确定待监控的增强线程池;对所述待监控的增强线程池进行反射,确定待监控原生线程池,并获取所述待监控原生线程池的运行状态参数;如果根据所述运行状态参数,确定所述待监控原生线程池异常,则向监控设备发送告警信息。2.根据权利要求1所述的方法,其特征在于,根据原生线程池,构建支持链路追踪的增强线程池,包括:使用zipkin中间件对所述原生线程池进行代理增强,得到所述支持链路追踪的增强线程池。3.根据权利要求1所述的方法,其特征在于,所述线程池监控服务的启动之后,所述方法还包括:启动定时,在所述定时时间范围内执行获取所述运行状态参数的步骤。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述线程池监控服务的程序代码包含于采用maven打包而成的jar包中,通过触发所述jar包启动所述线程池监控服务。5.根据权利要求1所述的方法,其特征在于,对所述待监控的增强线程池进行反射,确定待监控原生线程池包括:对所述待监控的增强线程池进行jdk反射,以确定待监控原生线程池。6.一种线程池的运行状态获取装置,其特征在于,包括:构建模块,用于根据原生线程池,构建支持链路追踪的增强线程池;注入模块,用于将所述增强线程池注入Spring容器中,并获取所述增强线程池在...

【专利技术属性】
技术研发人员:冯宏宇黎华兵万冬冬王韶峰
申请(专利权)人:北京健康之家科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1