1.本发明公开一种基于数据权重的动态负载方法及系统,涉及负载均衡技术领域。
背景技术:2.目前负载均衡技术分为两部分,一部分是硬件负载,另一部分是软件负载,本发明针对软件负载进行描述。软件负载目前分为两部分:静态负载、动态负载。静态负载是指应用程序将负载数据写在程序中通过负载算法进行负载,例如:nginx等。动态负载是指应用动态的调节负载数据,按照应用是否能够提供服务将负载机器加入或移出负载数据,例如:ribbon等。对于应用,目前的负载均衡通常是在机器的ip层面上进行负载,这种方式无法了解机器以及应用的资源情况,无法很好的对机器及应用的资源充分利用或者对于应用的处理更好的平衡,从而无法更好的服务。
3.故现发明一种基于数据权重的动态负载方法及系统,以解决上述问题。
技术实现要素:4.本发明针对现有技术的问题,提供一种基于数据权重的动态负载方法及系统,所采用的技术方案为:一种基于数据权重的动态负载方法,所述方法的具体步骤如下:
5.首先通过使用心跳检测的方式,将应用信息注册到计算中;然后应用注册的同时将机器的资源信息以及应用本身的资源信息发送到计算中;最后通过资源信息计算出应用所需要的负载数据并进行负载调整。
6.所述的通过资源信息计算出应用所需要的负载数据并进行负载调整具体步骤如下:
7.s1对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;
8.s2在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;
9.s3根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整。
10.所述的s2具体步骤如下:
11.s201使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;
12.s202通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量。
13.所述的s3具体步骤如下:
14.s301结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;
15.s302进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据。
16.一种基于数据权重的动态负载系统,其特征是所述的系统具体包括存储模块、计
算模块和调整模块:
17.存储模块:对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;
18.计算模块:在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;
19.调整模块:根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整。
20.所述计算模块具体包括时间点数据模块和时间段数据模块:
21.时间点数据模块:使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;
22.时间段数据模块:通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量。
23.所述调整模块具体包括趋势评估模块和资源数据模块:
24.趋势评估模块:结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;
25.资源数据模块:进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据。
26.一种基于数据权重的动态负载装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;
27.所述处理器,用于当执行所述计算机程序时,实现如权利要求1至4任一项所述的基于数据权重的动态负载方法。
28.本发明的有益效果为:通过使用该模式的计算的负载,能够更好的利用机器以及服务资源,从而实现更高更好的服务,主要体现在以下几个方面:1.数据的准确性:通过使用当前资源数据以及一段时间的资源数据来计算当前数据,一方面能够通过一段时间的应用数据来反应资源的消耗情况和应用响应的变化量,另一方面通过使用当前数据来反应当前资源的响应情况。能够准确表现资源的使用及有效的负载;2.负载的实时性:结合了当前时间的资源数据,能够实时的反应当前应用的响应及资源情况。除此之外还结合一段时间内的数据,对于未来资源的变化情况具有一定的评估计算;3.数据的多维度:能够通过使用多方面的资源数据进行负载计算,例如:机器的基本资源数据(cpu、io、内存、磁盘、文件句柄、链接数等),应用的基本资源数据(请求量、java的jvm数据、数据库链接数等),应用本身的限制数据(限流数、容错率等)4.资源的利用率:能够对应用利用有限的资源提供的服务进行评估,从而增加应用实例或停止不必要的应用实例,进而释放有限的资源。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
30.图1是本发明方法的流程图。
具体实施方式
31.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
32.实施例一:
33.一种基于数据权重的动态负载方法,所述方法的具体步骤如下:
34.首先通过使用心跳检测的方式,将应用信息注册到计算中;然后应用注册的同时将机器的资源信息以及应用本身的资源信息发送到计算中;最后通过资源信息计算出应用所需要的负载数据并进行负载调整;
35.进一步的,所述的通过资源信息计算出应用所需要的负载数据并进行负载调整具体步骤如下:
36.s1对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;
37.s2在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;
38.s3根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整;
39.步骤1.对于应用参与计算的资源设为xi,资源占用百分比为ki其中{i|i∈n},在计算之前xi、ki能够通过具体实际情况进行计算得出;
40.设置t秒内的资源xi组成的矩阵为f(x),则:
[0041][0042]
设ki组成的矩阵为g(x),则:
[0043]
设校验矩阵为p(x),其中xt为当前时间,通过p(x)来判断当前应用的资源是否存在某项达到临界值,若xi=1表示已到达临界值,则:
[0044][0045]
通过数据计算得到r=f(x)*g(x)
[0046]
设置q(t)=r,默认值k,增长幅度v,如果是初次计算对于t内除当前时间之外全部设置默认值k
[0047]
计算当前时间点的负载权重数据:
[0048]
若:p(x)中包含1且r中按照时间点排序之后为递增,则选择r中第二大数值的时间
点的负载数据
[0049]
若:r中按照时间点排序无递增趋势,则选择avg=|q(t)|/t
[0050]
若:p(x)中均小于1且r中按照时间点排序之后为递增,平均值avg=|q(t)|/t,则:
[0051]
负载数据
[0052]
步骤2.运用上述步骤1中的计算方式,假设应用的基本信息每隔1秒的速度对计算模块更新数据,其中数据的信息包含应用支撑的请求量/秒(qt)、应用内总存大小(mt)、当前请求量/秒(qu)、当前应用使用内存大小(mu)、应用占用cpu大小(cu)、应用请求等待队列大小(qut)、等待队列使用大小(quu)及服务状态等,对其的计算如下:
[0053]
设t=9,i=5,各项指标矩阵为f(x),a0-e0为当前时间的指标,校验矩阵为p(x),各指标所占据的百分比为g(x)
[0054]
获取指标的数据a0-e0:
[0055]
a0=mu/mt*100b0=cu/ct*100d0=qu/qt*100e=quu/qut*100
[0056]
获取指标矩阵:
[0057]
结果集:r=f(x)*g(x)
[0058]
若:p(x)中包含1且r中按照时间点排序之后为递增,则选择r中第二大数值的时间点的负载数据
[0059]
若:r中按照时间点排序无递增趋势,则选择avg=|q(t)|/t
[0060]
若:p(x)中均小于1,设a1-a9时间点的负载数据为q(x),负载初始值k=1,负载数据个数t=9
[0061][0062]
平均值:avg=|q(x)|/t
[0063]
负载数据
[0064]
步骤3.根据负载数据做出相对应的负载调整,使用加权轮询调用应用,具体调整如下:
[0065]
1.对于负载数据向上取整,设为w;
[0066]
2.重新调整该负载数据对应的负载权重,设置为w;
[0067]
3.根据数据交换的负载权重重新构造轮询数据;
[0068]
进一步的,所述的s2具体步骤如下:
[0069]
s201使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;
[0070]
s202通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量;
[0071]
再一步的,所述的s3具体步骤如下:
[0072]
s301结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;
[0073]
s302进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据;
[0074]
实施例二:
[0075]
一种基于数据权重的动态负载系统,其特征是所述的系统具体包括存储模块、计算模块和调整模块:
[0076]
存储模块:对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;
[0077]
计算模块:在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;
[0078]
调整模块:根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整;
[0079]
所述计算模块具体包括时间点数据模块和时间段数据模块:
[0080]
时间点数据模块:使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;
[0081]
时间段数据模块:通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量;
[0082]
所述调整模块具体包括趋势评估模块和资源数据模块:
[0083]
趋势评估模块:结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;
[0084]
资源数据模块:进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据;
[0085]
一种基于数据权重的动态负载装置,其特征在于,包括存储器和处理器;
[0086]
所述存储器,用于存储计算机程序;
[0087]
所述处理器,用于当执行所述计算机程序时,实现如权利要求2至4任一项所述的基于数据权重的动态负载方法;
[0088]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:1.一种基于数据权重的动态负载方法,其特征是所述方法的具体步骤如下:首先通过使用心跳检测的方式,将应用信息注册到计算中;然后应用注册的同时将机器的资源信息以及应用本身的资源信息发送到计算中;最后通过资源信息计算出应用所需要的负载数据并进行负载调整。2.根据权利要求1所述的方法,其特征是所述的通过资源信息计算出应用所需要的负载数据并进行负载调整具体步骤如下:s1对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;s2在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;s3根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整。3.根据权利要求2所述的方法,其特征是所述的s2具体步骤如下:s201使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;s202通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量。4.根据权利要求3所述的方法,其特征是所述的s3具体步骤如下:s301结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;s302进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据。5.一种基于数据权重的动态负载系统,其特征是所述的系统具体包括存储模块、计算模块和调整模块:存储模块:对于应用创建服务注册及当前数据在计算模块以hash的数据结构进行存储;计算模块:在计算之前,能够通过具体实际情况进行计算得出对于应用参与计算的资源以及资源占比,并将得到的数据定时更新;调整模块:根据数据交换的负载权重重新构造轮询数据,对利用当前资源提供的服务进行评估,从而进行增加应用实例或停止不必要的应用实例的负载调整。6.根据权利要求5所述的系统,其特征是所述计算模块具体包括时间点数据模块和时间段数据模块:时间点数据模块:使用当前数据计算得到当前时间点的负载权重数据,反应当前资源的响应度,并显示资源的使用率及有效的负载;时间段数据模块:通过定时更新数据,得到一段时间内的应用数据,反应资源的消耗和应用响应的变化量。7.根据权利要求6所述的系统,其特征是所述调整模块具体包括趋势评估模块和资源数据模块:趋势评估模块:结合一段时间内的数据,能够对资源的变化情趋势进行评估计算;资源数据模块:进行负载计算的资源数据包括机器的基本资源数据,应用的基本资源数据,应用本身的限制数据。
8.一种基于数据权重的动态负载装置,其特征在于,包括存储器和处理器:所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求1至4任一项所述的基于数据权重的动态负载方法。
技术总结本发明公开了一种基于数据权重的动态负载方法及系统,属于负载均衡技术领域;所述的方法的具体步骤如下:首先通过使用心跳检测的方式,将应用信息注册到计算中;然后应用注册的同时将机器的资源信息以及应用本身的资源信息发送到计算中;最后通过资源信息计算出应用所需要的负载数据并进行负载调整;本发明一方面能够通过一段时间的应用数据来反应资源的消耗情况和应用响应的变化量,另一方面通过使用当前数据来反应当前资源的响应情况;能够准确表现资源的使用及有效的负载;对于未来资源的变化情况具有一定的评估计算;能够通过使用多方面的资源数据进行负载计算;能够对服务进行评估,从而调整应用,进而释放有限的资源。进而释放有限的资源。进而释放有限的资源。
技术研发人员:吴组伟 高传集 孙思清 邓光超 赵锦
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2022.07.08
技术公布日:2022/11/1