一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种业务驱动的Web应用负载均衡任务分配方法与流程

2021-12-07 20:40:00 来源:中国专利 TAG:

一种业务驱动的web应用负载均衡任务分配方法
技术领域
1.本发明涉及一种适用于水利电力信息系统多服务器负载均衡快速任务分配的方法,属于信息化数据访问控制技术领域。


背景技术:

2.水利电力信息管理系统涉及的远端站点类型多样,包括水电站、风电站、光伏电站和水利枢纽工程等,不同用户间既需要适用本站的相关数据,也需要关注其他相关站点的情况,在一定访问权限和优先级的控制下,对于特殊业务数据,如发电计划的修订和执行情况应考虑数千个电站的数据访问延迟差别最小。然而由于数千用户同时使用系统,在规定时间范围内对各站点实际运行数据进行统计、计划填报,在数据集中填报和计划编制协调高峰时期(如每天上午8

9点),大规模用户的集中操作、高并发访问使得系统响应极其缓慢,严重影响各级调度管理机构的工作效率。对于省一级的水利电力公司来说,能够最大程度减少各类电站实时上报数据的延时,并将调度指令及时送达电站,急需解决多用户并发访问的高效控制和动态优化问题。虽然这种情况下通常采用数据库分库分区、读写分离和应用服务器的负载均衡等技术,但在具体业务规则和约束条件下,如何进行各种方法的适应性改进,在不增加系统硬件成本的条件下获得满足用户需求的性能,成为新系统优化升级的核心问题。


技术实现要素:

3.发明目的:针对三个以上的web应用服务器和普通移动网络信道,提出一种业务驱动的web应用负载均衡任务分配方法,实现数千以上各类用户同时访问省级水利电力调度中心信息系统的几秒以内响应时间。
4.技术方案:一种业务驱动的web应用负载均衡任务分配方法,包括:负载均衡任务分配服务器采用ip_hash策略进行静态任务分配,在一个任务分配策略执行周期内,当对应web服务器响应新接入的web应用服务请求时间大于用户最大容忍时间时,开始进行动态调整任务分配;
5.所述动态调整任务分配包括:调整每个web服务器的任务分配权重,最先达到空闲状态服务器的任务分配权重最大,将新接入的任务请求分配至最先达到空闲状态的服务器中,其余服务器的任务分配权重依其服务器剩余执行时间的增大而减小;若在当前任务分配策略执行周期结束时仍存在web应用服务请求时间大于用户最大容忍时间,则在下一任务分配策略执行周期开始时继续执行动态调整任务分配。
6.进一步的,采用双nginx的负载均衡任务分配服务器,web服务器的数量大于等于三。
7.进一步的,所述动态调整任务分配阶段,若任意两个web服务器的服务器剩余执行时间值相差小于系统中web应用服务请求最小到达间隔,根据对应web服务器在上一个任务分配策略执行周期内响应时间的方差进行权重分配,小方差值对应的大的任务分配权重。
8.进一步的,当有web应用服务请求时,负载均衡任务分配服务器从http协议中提取相关信息,生成一个表示任务类别的三元组<id,s,t
f
>,其中id表示任务唯一标识,s表示任务的操作子集,t
f
表示任务执行所需要的时间。
9.有益效果:针对地域分布广、数量多的水利电力远端用户面临的并发访问度较高、累积数据存储量较大情况下的高效访问控制问题,本发明提出一种业务驱动的web应用负载均衡任务分配方法,适用于三个以上的web应用服务器和普通移动网络信道,实现数千以上各类用户同时访问省级水利电力调度中心信息系统的几秒以内响应时间。该方法基于双nginx的负载均衡集群架构,将静态ip地址映射算法和运行时最快完成任务时间相结合,提高多应用服务器之间的均衡度和总体任务成功接纳率,对于有限条件下的业务信息及时上报和查询具有重要意义。
附图说明
10.图1为本发明的负载均衡任务分配示意。
具体实施方式
11.下面结合附图对本发明做更进一步的解释。
12.如图1所示,一种业务驱动的web应用负载均衡任务分配方法,完成水利电力信息系统web应用服务器之间的负载均衡任务分配。该方法适用于双nginx的负载均衡任务分配服务器,web服务器至少3台以上。负载均衡任务分配服务器可以由某两台web服务器兼任,也可以单独部署在两台服务器上,其上安装nginx技术框架下的keepalived软件,通过运行负载均衡任务分配算法将客户端任务请求分配到合适的web服务器上,执行具体应用服务操作。因此,每个web服务器具备执行所有发布的web应用服务能力。
13.本方法具体流程如下:
14.步骤1:初始化
15.在负载均衡任务分配服务器上安装nginx技术框架下的keepalived软件,设置系统支持的web应用服务主要任务类别表和一个任务分配策略执行周期d,如30

60分钟。
16.1)每个任务类别用三元组<id,s,t
f
>表示,其中id表示任务唯一标识;s表示任务的操作子集,如写,读,浏览和其他等,t
f
表示任务执行所需要的时间,即任务时间阈值;
17.2)将实际任务集合记为task={task1,task2,

,task
m
},其中m为web应用服务请求的总数。第i个服务请求记为
18.3)在web服务器集合w={w1,w2,

,w
n
}中,第i个服务器w
i
的当前任务状态记为
19.其中n为web服务器的总数,n
i
为服务器w
i
的当前任务总数,为服务器w
i
处理完当前所有任务需要的时间,即服务器剩余执行时间;
20.4)当有web应用服务请求时,负载均衡任务分配服务器从http协议中提取相关信息,生成一个任务类别的三元组<id,s,t
f
>。
21.步骤2:静态任务分配阶段
22.采用ip_hash策略,按照客户端ip地址组,分配任务到多个web服务器之一,通过设立一个hash函数将所有签约用户的客户端ip地址划分成n个组,每个组具有固定的web应用
服务会话参数,如服务号、端口号等,使得正常情况下某一客户端的多次请求都发送到相同的服务器。此时每个服务器的任务分配权重相等。
23.步骤3:动态调整任务分配阶段
24.在一个任务分配策略执行周期内,当对应web服务器响应新接入的web应用服务请求时间大于用户最大容忍时间时,如执行上报96点发电计划的长任务,如5秒,调整每个web服务器的任务分配权重,最先达到空闲状态服务器的任务分配权重最大,将新接入的任务请求分配至最先达到空闲状态的服务器w
i
中,即其余服务器的任务分配权重依其服务器剩余执行时间值的增大而减小,权重q
i
可表示为
25.其中,当任意两个t
r
值相差小于系统中web应用服务请求最小到达间隔时,认为两者同时到达空闲状态,计算对应任务分配权重时,采用对应web服务器在上一个任务分配策略执行周期内响应时间的方差v
i
代替t
r
,认为v
i
较小的web服务器上该周期内执行的任务执行时间更均衡,因此在本周期的动态调整任务分配阶段应具有较大的任务分配权重,权重q
i
可表示为
26.若在当前任务分配策略执行周期结束时仍存在web应用服务请求时间大于用户最大容忍时间,则在下一任务分配策略执行周期开始时继续执行动态调整任务分配;否则在下一任务分配策略执行周期开始时重新开始执行静态任务分配。
27.本发明的业务驱动的web应用负载均衡任务分配方法,基于双nginx的负载均衡集群框架,可任意配置三个以上的web应用服务器,指定主nginx负载均衡管理服务器,双机热备,一旦主管理服务器出现故障,可零中断切换到备用管理服务器上,保证客户端访问web应用不会中止。配合动静结合的负载均衡任务分配算法,可有效平衡短任务和长任务的不同系统开销,实现用户满意的稳定的系统访问响应时间,提高完成任务成功率和负载均衡度,具有良好的可扩展性和自适应能力。
28.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献