轻量级分布式线程池动态扩容与收缩实现方法及系统与流程

文档序号:32788669发布日期:2023-01-03 20:17阅读:25来源:国知局
轻量级分布式线程池动态扩容与收缩实现方法及系统与流程

1.本发明涉及线程池动态数据技术领域,具体为轻量级分布式线程池动态扩容与收缩实现方法及系统。


背景技术:

2.线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。
3.现有技术中,在多并发业务场景中,针对集中式结构下的线程池动态扩容与压缩调整,很多场景下实现针对单节点应用的线程池策略进行动态扩容与压缩调整。
4.但是,每次调整都要重启应用,重启相关的所有组件,体验度大打折扣,并且,严重影响业务进程,客户端体验极差,可能会造成一定的损失。


技术实现要素:

5.本发明的目的在于提供轻量级分布式线程池动态扩容与收缩实现方法及系统,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:轻量级分布式线程池动态扩容与收缩实现方法,该方法包括以下步骤:
7.分布式组件注册自己的唯一beanld至jvm容器中;
8.自定义通信网闸,业务组件配置线程池;
9.创建数据汇聚器;
10.将pod节点上的线程池信息绑定分布式业务组件的beanld;
11.通过h5实时刷新节点数据;
12.刷新pod上jvm中的线程池大小;
13.预警线程池信息。
14.优选的,自定义通信网闸,业务组件配置线程池时,jvm统一设置虛拟线程池基础参数,参数是全局的、默认的;
15.根据beanld来加载初始化各自的线程池,每个业务组件自定义线程大小、以及预警阀值。
16.优选的,创建数据汇聚器时,统一收集不同pod节点上的线程池信息。
17.优选的,通过h5实时刷新节点数据,将当前节点线程池基础参数调整至合适大小。
18.优选的,借助通信网闸以及当前节点的beanld动态刷新pod上jvm中的线程池大小;
19.根据pod节点信息、业务组件beanld动态预警线程池信息。
20.一种轻量级分布式线程池动态扩容与收缩实现系统,该系统由注册模块、自定义模块、创建模块、绑定模块、节点数据刷新模块、线程池刷新模块以及预警模块构成;
21.注册模块,用于分布式组件注册自己的唯一beanld至jvm容器中;
22.自定义模块,用于自定义通信网闸,业务组件配置线程池;
23.创建模块,用于创建数据汇聚器;
24.绑定模块,用于将pod节点上的线程池信息绑定分布式业务组件的beanld;
25.节点数据刷新模块,用于通过h5实时刷新节点数据;
26.线程池刷新模块,用于刷新pod上jvm中的线程池大小;
27.预警模块,用于预警线程池信息。
28.优选的,所述自定义模块,自定义通信网闸,业务组件配置线程池时,jvm统一设置虛拟线程池基础参数,参数是全局的、默认的;
29.根据beanld来加载初始化各自的线程池,每个业务组件自定义线程大小、以及预警阀值。
30.优选的,所述创建模块,创建数据汇聚器时,统一收集不同pod节点上的线程池信息。
31.优选的,所述节点数据刷新模块,通过h5实时刷新节点数据,将当前节点线程池基础参数调整至合适大小。
32.优选的,所述线程池刷新模块,借助通信网闸以及当前节点的beanld动态刷新pod上jvm中的线程池大小;
33.预警模块,根据pod节点信息、业务组件beanld动态预警线程池信息。
34.与现有技术相比,本发明的有益效果是:
35.本发明提出的轻量级分布式线程池动态扩容与收缩实现方法及系统解决在高并发、多业务应用复杂关联场景下,打破传统集中式线程池管理的思想,通过切割不同业务应用组件核心线程池应用管理,汇聚业务应用各核心业务组件中的线程池调度,统一将底层核心调度数据汇聚到单一组件,实现分布式线程池动态的统一管理、扩容、压缩,结合h5技术,实现分布式动态线程池的切换数据实时切换到前端,将传统的线程池单一监控、调整策略调整为分布式、多节点、实时监控、调整,并且不需要重启业务应用,极大避免了业务损失风险,提高业务产出率以及性能。
附图说明
36.图1为本发明方法流程图;
37.图2为本发明分布式组件动态策略调整原理图;
38.图3为本发明分布式组件核心线程池动态调整结构图。
具体实施方式
39.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.实施例一
41.请参阅图1,本发明提供一种技术方案:轻量级分布式线程池动态扩容与收缩实现方法,该方法包括以下步骤:
42.分布式组件注册自己的唯一beanld至jvm容器中;
43.自定义通信网闸,业务组件配置线程池;jvm统一设置虛拟线程池基础参数,参数是全局的、默认的;根据beanld来加载初始化各自的线程池,每个业务组件自定义线程大小、以及预警阀值;
44.创建数据汇聚器,统一收集不同pod节点上的线程池信息;
45.将pod节点上的线程池信息绑定分布式业务组件的beanld;
46.通过h5实时刷新节点数据,将当前节点线程池基础参数调整至合适大小;
47.借助通信网闸以及当前节点的beanld动态刷新pod上jvm中的线程池大小;
48.根据pod节点信息、业务组件beanld动态预警线程池信息。
49.实施例二
50.一种轻量级分布式线程池动态扩容与收缩实现系统,该系统由注册模块、自定义模块、创建模块、绑定模块、节点数据刷新模块、线程池刷新模块以及预警模块构成;
51.注册模块,用于分布式组件注册自己的唯一beanld至jvm容器中;
52.自定义模块,用于自定义通信网闸,业务组件配置线程池,jvm统一设置虛拟线程池基础参数,参数是全局的、默认的;根据beanld来加载初始化各自的线程池,每个业务组件自定义线程大小、以及预警阀值;
53.创建模块,用于创建数据汇聚器,统一收集不同pod节点上的线程池信息;
54.绑定模块,用于将pod节点上的线程池信息绑定分布式业务组件的beanld;
55.节点数据刷新模块,通过h5实时刷新节点数据,将当前节点线程池基础参数调整至合适大小;
56.线程池刷新模块,借助通信网闸以及当前节点的beanld动态刷新pod上jvm中的线程池大小;
57.预警模块,根据pod节点信息、业务组件beanld动态预警线程池信息。
58.实施例三
59.本发明重点实现了传统集中式线程池调度无法解决多节点多并发场景下分布式任务动态调整的问题,创造性的结合任务编排技术,结合h5页面渲染,针对不同的任务组件节点来设置动态策略,实现多节点线程池核心策略调整。具体的原理参照附图2所示。
60.(2)本发明针对分布式业务应用组件,首先有个核心调度引擎,调度引擎附带线程池基础配置策略以及全局的线程池配置参数,它是一个核心客户端jar包,将该核心包贴附依赖到各个分布式业务核心组件,业务组件之间是隔离的、没有直接关联的,业务组件配置自己专门的线程池,然后将自己的线程池动态信息通过通信网闸,汇聚到数据汇聚收集器,数据汇聚收集器来统一收集各个业务组件核心线程池数据,策略调整器结合通信网闸实现各自业务节点的线程池策略调整,并将结果渲染至h5页面,同时在h5页面也创造性的实现数据逆向调整,将原本隐藏的核心数据指定到某个节点,实现页面数据驱动后端动态组件,达到调整策略的目的。
61.(3)本专利创新的地方是摒弃了传统集中式管理业务组件的弊端,而是借助分布式思想,将多任务多并发场景下的同一个业务应用分布在不同的服务器节点上,底层通过
自创的核心调度器以及数据汇聚器,统一收集业务组件核心线程池调度数据,统一管理,方便调整,做到了针对某个应用某个节点来实现动态调整策略,而完全不影响客户业务体验,参照附图3所示。
62.实施例四
63.一种基于h5的轻量级分布式线程池动态扩容与收缩策略实现方法,其特征是:实时按需动态调整分布式线程池引擎,技术核心为根据业务系统区分核心业务、核心应用,动态切换最合适的调度引擎,达到业务应用服务零故障率、高效调度。
64.首先有个核心调度引擎,调度引擎附带线程池基础配置策略以及全局的线程池配置参数,它是一个核心客户端jar包,将该核心包贴附依赖到各个分布式业务核心组件,业务组件之间是隔离的、没有直接关联的。
65.其次必须有个自定义的通信网闸,业务组件配置自己专门的线程池,然后将自己的线程池动态信息通过通信网闸,汇聚到数据汇聚收集器。
66.要有个数据汇聚器,数据汇聚收集器来统一收集各个业务组件核心线程池数据,策略调整器结合通信网闸实现各自业务节点的线程池策略调整。
67.还要借助h5核心引擎来渲染数据,同时在h5页面也创造性的实现数据逆向调整,将原本隐藏的核心数据指定到某个节点,实现页面数据驱动后端动态组件,达到调整策略的目的。
68.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1