一种支持高并发访问的负载均衡方法及系统与流程

文档序号:30657832发布日期:2022-07-06 01:13阅读:80来源:国知局
一种支持高并发访问的负载均衡方法及系统与流程

1.本发明属于计算机技术领域,具体涉及一种支持高并发访问的负载均衡方法及系统。


背景技术:

2.业务网页的访问一般由终端设备通过业务网页向业务服务器发起访问请求,业务服务器接收到访问请求时,获取相应的业务数据返回给终端设备,终端设备可以通过业务网页查看返回的数据。
3.由于现在业务网页的类型、产品越来越多样化,越来越复杂,这就导致业务服务器需要处理的访问请求数量也越来越多,特别是一些大型网站,由于使用的用户数量较大,导致业务服务器在某些时间节点会接收到大量的高并发访问请求,高并发访问请求需要排队等待业务服务器处理,这就会造成访问请求的响应时间过长,最严重的时候会导致业务服务器宕机,使得业务网页无法正常使用。


技术实现要素:

4.针对现有技术中的缺陷,本发明提供一种支持高并发访问的负载均衡方法及系统,能够在业务服务器接收到高并发访问时进行负载均衡,缩短访问请求的响应时间。
5.第一方面,一种支持高并发访问的负载均衡方法,包括:
6.后台服务器设置访问请求的预估数量;
7.后台服务器根据预估数量确定分条阈值;
8.后台服务器根据分条阈值对接收到的访问请求进行数据分条,以得到多个分条数据块;
9.后台服务器将分条数据块发送给分布式业务服务系统,分布式业务服务系统包括多个业务服务器;
10.分布式业务服务系统根据各个业务服务器的负荷程度将分条数据块发送给业务服务器。
11.优选地,后台服务器根据预估数量确定分条阈值具体包括:
12.当预估数量小于等于预设的最大访问量时,定义分条阈值为访问请求的平均大小;
13.当预估数量大于最大访问量时,定义分条阈值为预设的最优分条大小。
14.优选地,在后台服务器得到多个分条数据块之后,还包括:
15.后台服务器为每个分条数据块关联一访问请求id,访问请求id指向分条数据块进行数据分条前的访问请求。
16.优选地,分布式业务服务系统根据各个业务服务器的负荷程度将分条数据块发送给业务服务器具体包括:
17.分布式业务服务系统获取每个业务服务器的负荷程度;
18.分布式业务服务系统将所有业务服务器按照负荷程度从轻到重排序;
19.分布式业务服务系统将关联同一个访问请求id的分条数据块下发给第一个排序的业务服务器;
20.分布式业务服务系统当检测到当前接收分条数据块的业务服务器的负荷程度超过预设的最大负荷程度时,将关联同一个访问请求id的分条数据块下发给下一个排序的业务服务器。
21.优选地,预估数量等于前n天内接收到访问请求的日平均值。
22.第二方面,一种支持高并发访问的负载均衡系统,包括:
23.后台服务器:用于设置访问请求的预估数量,根据预估数量确定分条阈值,根据分条阈值对接收到的访问请求进行数据分条,以得到多个分条数据块;后台服务器还用于将分条数据块发送给分布式业务服务系统;
24.分布式业务服务系统包括多个业务服务器;分布式业务服务系统用于根据各个业务服务器的负荷程度将分条数据块发送给业务服务器。
25.优选地,后台服务器用于当预估数量小于等于预设的最大访问量时,定义分条阈值为访问请求的平均大小;当预估数量大于最大访问量时,定义分条阈值为预设的最优分条大小。
26.优选地,后台服务器还用于为每个分条数据块关联一访问请求id,访问请求id指向分条数据块进行数据分条前的访问请求。
27.优选地,分布式业务服务系统具体用于:获取每个业务服务器的负荷程度,将所有业务服务器按照负荷程度从轻到重排序,将关联同一个访问请求id的分条数据块下发给第一个排序的业务服务器;当检测到当前接收分条数据块的业务服务器的负荷程度超过预设的最大负荷程度时,将关联同一个访问请求id的分条数据块下发给下一个排序的业务服务器。
28.优选地,预估数量等于前n天内接收到访问请求的日平均值。
29.由上述技术方案可知,本发明提供的支持高并发访问的负载均衡方法及系统,能够提前估计未来的访问数量,并根据未来的访问数量设定分条阈值,对访问请求进行数据分条,将得到的分条数据块下发给分布式业务服务系统处理,分布式业务服务系统通过多台业务服务器进行分布式设计,能够在业务服务器接收到高并发访问时进行负载均衡,缩短访问请求的响应时间。
附图说明
30.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
31.图1为实施例提供的支持高并发访问的负载均衡方法的流程图。
32.图2为实施例提供的分条数据块分发的方法流程图。
33.图3为实施例提供的支持高并发访问的负载均衡系统的模块框图。
具体实施方式
34.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
35.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
36.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
37.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0038]
实施例:
[0039]
一种支持高并发访问的负载均衡方法,参见图1,包括:
[0040]
s1:后台服务器设置访问请求的预估数量;
[0041]
s2:后台服务器根据预估数量确定分条阈值;
[0042]
s3:后台服务器根据分条阈值对接收到的访问请求进行数据分条,以得到多个分条数据块;
[0043]
s4:后台服务器将分条数据块发送给分布式业务服务系统,分布式业务服务系统包括多个业务服务器;
[0044]
s5:分布式业务服务系统根据各个业务服务器的负荷程度将分条数据块发送给业务服务器。
[0045]
在本实施例中,访问请求可以由终端设备通过业务网页发起访问请求,其中终端设备可以为计算机,手机、平板等移动终端。业务网页中设有多种业务,用户通过选择业务网页中的某些业务发起访问请求,访问请求用于指向某个业务。访问请求中包括终端设备地址以及请求哪个业务。访问请求可以包括多个字段,例如包括地址字段、时间字段和业务字段,其中地址字段中为终端设备地址,时间字段为访问请求发起的时间,业务字段为用户请求的业务id。预估数量为后台服务器在未来一段时间内收到的访问请求数量的估计值,例如预估数量为后台服务器在未来2小时、12小时或24小时内收到的访问请求数量的估计值,预估数量用于标识业务系统在未来短期内的负载程度。
[0046]
在本实施例中,分条阈值为数据分条的标准,分条阈值可以根据整个分布式业务服务系统的负荷程度设置。正常情况下,如果预估数量过大,说明整个分布式业务服务系统可能会超负荷,此时需要对访问请求进行数据分条,这样在高并发访问的情况下,业务服务器不需要对访问请求进行字节分割,业务服务器可以直接对数据分条后的分条数据块进行识别,读取响应的内容。
[0047]
在本实施例中,后台服务器可以根据分条阈值对访问请求进行数据分条,例如后
台服务器可以将访问请求按照字段进行分割,使得得到的每个数据分条包含一个字段的内容,此时的分条阈值应大于等于访问请求中字段的最大字节数。例如假设地址字段的字节数<时间字段的字节数<业务字段的字节数,那么要求分条阈值应大于等于业务字段的字节数。当进行数据分条后,后台服务器直接将得到的分条数据块下发给分布式业务服务系统,分布式业务服务系统直接识别各个分条数据块的内容即可,不需要对访问请求进行数据解析、分割等预处理操作。
[0048]
在本实施例中,业务服务器的负荷程度可以由排队待处理的分条数据块数量确定,待处理的数量越多,负荷程度越重。分布式业务服务系统在分发分条数据块时,可以根据各个业务服务器的负荷程度进行分发,例如对于负荷程度较轻的业务服务器,可以分发少量的分条数据块。对于负荷程度较重的业务服务器,可以分发较多的分条数据块,这样在高并发访问的情况下,保证分布式业务服务系统中所有业务服务器能够实现最大的运行效率,不会出现堵塞、宕机等情况,实现负载均衡的功能。
[0049]
该方法能够提前估计未来的访问数量,并根据未来的访问数量设定分条阈值,对访问请求进行数据分条,将得到的分条数据块下发给分布式业务服务系统处理,分布式业务服务系统通过多台业务服务器进行分布式设计,能够在业务服务器接收到高并发访问时进行负载均衡,缩短访问请求的响应时间。
[0050]
进一步地,在一些实施例中,后台服务器根据预估数量确定分条阈值具体包括:
[0051]
当预估数量小于等于预设的最大访问量时,定义分条阈值为访问请求的平均大小;
[0052]
当预估数量大于最大访问量时,定义分条阈值为预设的最优分条大小。
[0053]
在本实施例中,分条阈值可以有两种取值:最优分条大小和访问请求的平均大小,当预估数量较小时,说明业务服务器未来一段时间内,面临的访问压力较小,可以不对访问请求进行数据分条,即设置分条阈值为访问请求的平均大小,不需要将访问请求分成多个分条数据块。当预估数量较大时,说明业务服务器未来一段时间内,面临的访问压力较大,此时需要对访问请求进行数据分条,定义分条阈值为预设的最优分条大小。其中最大访问量根据不同的分布式业务服务系统确定,分布式业务服务系统的吞吐量越大,最大访问量越大。最优分条大小根据不同的分布式业务服务系统确定,最优分条大小可以为业务服务器在不出现堵塞的情况下、具有较块运行速度时,业务服务器接收到的分条数据块的数据量。
[0054]
进一步地,在一些实施例中,在后台服务器得到多个分条数据块之后,还包括:
[0055]
后台服务器为每个分条数据块关联一访问请求id,访问请求id指向分条数据块进行数据分条前的访问请求。
[0056]
在本实施例中,分布式业务服务系统在下发分条数据块给业务服务器时,可以将同一访问请求得到的分条数据块下发给同一个业务服务器,所以该方法需要为每个分条数据块关联一访问请求id,访问请求id指向分条数据块进行数据分条前的访问请求。这样关联同一访问请求id的所有分条数据块由同一个访问请求进行数据分条得到。
[0057]
进一步地,在一些实施例中,参见图2,分布式业务服务系统根据各个业务服务器的负荷程度将分条数据块发送给业务服务器具体包括:
[0058]
s11:分布式业务服务系统获取每个业务服务器的负荷程度;
[0059]
s12:分布式业务服务系统将所有业务服务器按照负荷程度从轻到重排序;
[0060]
s13:分布式业务服务系统将关联同一个访问请求id的分条数据块下发给第一个排序的业务服务器;
[0061]
s14:分布式业务服务系统当检测到当前接收分条数据块的业务服务器的负荷程度超过预设的最大负荷程度时,将关联同一个访问请求id的分条数据块下发给下一个排序的业务服务器。
[0062]
在本实施例中,分布式业务服务系统在进行分条数据块下发时,首先需要对业务服务器的负荷程度进行排序,负荷程度较轻的业务服务器可以在近期内接收一部分数量的分条数据块。负荷程度较重的业务服务器在近期内可以不下发分条数据块。业务服务器的负荷程度可以根据排队中待处理的分条数据块与吞吐量的比值确定,针对具有同一吞吐量的业务服务器,排队中待处理的分条数据越多,说明负荷程度越重,排队中待处理的分条数据越少,说明负荷程度越轻。
[0063]
在本实施例中,分布式业务服务系统下发分条数据块时,可以将分条数据块先下发给负荷程度最轻的业务服务器,如果当前接收分条数据块的业务服务器的负荷程度达到极限时,按照负荷程度从轻到重依次下发给下一个排序的业务服务器。该方法通过与最大负荷程度进行对比,确定业务服务器的负荷程度是否达到极限。最大负荷程度可以根据业务网页和响应要求确定,例如要求响应速度快的,最大负荷程度设置越小,业务网页越庞大越复杂的,最大负荷程度设置越大。分布式业务服务系统下发分条数据块时,是将关联同一个访问请求id的分条数据块全部下发给一个排序的业务服务器,保证了业务服务器能够及时地对访问请求进行处理。
[0064]
进一步地,在一些实施例中,预估数量等于前n天内接收到访问请求的日平均值。
[0065]
在本实施例中,n由用户自行设置,例如n设置为28时,表示预估数量等于前28天内接收到访问请求的日平均值,即预估数量等于上一个月接收到访问请求的日平均值,即根据上一个月的访问情况评估未来短期内的访问情况。
[0066]
一种支持高并发访问的负载均衡系统,参见图3,包括:
[0067]
后台服务器1:用于设置访问请求的预估数量,根据预估数量确定分条阈值,根据分条阈值对接收到的访问请求进行数据分条,以得到多个分条数据块;后台服务器1还用于将分条数据块发送给分布式业务服务系统2;访问请求可以由设备终端4发起。
[0068]
分布式业务服务系统2包括多个业务服务器3;分布式业务服务系统2用于根据各个业务服务器3的负荷程度将分条数据块发送给业务服务器3。
[0069]
进一步地,在一些实施例中,后台服务器1用于当预估数量小于等于预设的最大访问量时,定义分条阈值为访问请求的平均大小;当预估数量大于最大访问量时,定义分条阈值为预设的最优分条大小。
[0070]
进一步地,在一些实施例中,后台服务器1还用于为每个分条数据块关联一访问请求id,访问请求id指向分条数据块进行数据分条前的访问请求。
[0071]
进一步地,在一些实施例中,分布式业务服务系统2具体用于:获取每个业务服务器3的负荷程度,将所有业务服务器3按照负荷程度从轻到重排序,将关联同一个访问请求id的分条数据块下发给第一个排序的业务服务器3;当检测到当前接收分条数据块的业务服务器3的负荷程度超过预设的最大负荷程度时,将关联同一个访问请求id的分条数据块
下发给下一个排序的业务服务器3。
[0072]
进一步地,在一些实施例中,预估数量等于前n天内接收到访问请求的日平均值。
[0073]
本发明实施例所提供的系统,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0074]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1