CN114827163A - 服务器负载均衡的处理方法、装置、设备及存储介质 - Google Patents
服务器负载均衡的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114827163A CN114827163A CN202210492895.XA CN202210492895A CN114827163A CN 114827163 A CN114827163 A CN 114827163A CN 202210492895 A CN202210492895 A CN 202210492895A CN 114827163 A CN114827163 A CN 114827163A
- Authority
- CN
- China
- Prior art keywords
- server
- server list
- list
- result
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000001514 detection method Methods 0.000 claims abstract description 75
- 230000008859 change Effects 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 38
- 230000005540 biological transmission Effects 0.000 claims description 36
- 230000000694 effects Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000523 sample Substances 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000003068 static effect Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及服务器调用技术领域,揭露一种服务器负载均衡的处理方法、装置、设备及存储介质,其中方法包括获取服务器列表,并初始化服务器列表,得到初始服务器列表;对初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表;获取寻址请求,并更新可用服务器列表,得到目标服务器列表;基于目标服务器列表的变更标志,更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果;再更新目标服务器列表中的有效权值和访问时间戳。本发明实施例从服务器列表中获取权值最大的服务器地址,有利于提高服务器负载均衡的处理精度。
Description
技术领域
本申请涉及服务器调用技术领域,尤其涉及一种服务器负载均衡的处理方法、装置、设备及存储介质。
背景技术
互联网应用经常会面临大量用户访问、出现高并发请求场景,对于单机部署的系统很容易在软硬件上达到系统极限,引发故障,从而影响服务质量。为解决此类问题,一般会采用分布式部署架构,并采用某种负载均衡算法分配流量。负载均衡(Load Balance)是指将负载进行平衡、分摊到多个操作单元上进行执行,以此提供高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
现有的服务器负载均衡的方法是根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值比例的服务请求。然而这种方式只考虑服务器端的处理能力差异(体现为权值不同),而未考虑客户端与服务器间的网络质量(如网络是否联通、耗时等)、接口调用质量(如调用成功与否、耗时)等因素,从而导致服务器负载均衡的处理精度较差。
发明内容
本申请实施例的目的在于提出一种服务器负载均衡的处理方法、装置、设备及存储介质,以提高服务器负载均衡的处理精度。
为了解决上述技术问题,本申请实施例提供一种服务器负载均衡的处理方法,包括:
通过预设方式,获取服务器列表,并初始化所述服务器列表,得到初始服务器列表;
对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于所述检测结果对所述服务器地址进行标记,得到基础服务器列表;
获取寻址请求,并基于所述寻址请求与所述基础服务器列表,更新可用服务器列表,得到目标服务器列表,其中,所述目标服务器列表包括目标服务器列表的变更标志;
基于所述目标服务器列表的变更标志,更新所述目标服务器列表的权值,并从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果,其中,所述寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果;
根据所述寻址结果,更新所述目标服务器列表中的有效权值和访问时间戳。
为了解决上述技术问题,本申请实施例提供一种服务器负载均衡的处理装置,包括:
初始服务器列表生成模块,用于通过预设方式,获取服务器列表,并初始化所述服务器列表,得到初始服务器列表;
基础服务器列表生成模块,用于对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于所述检测结果对所述服务器进行标记,得到基础服务器列表;
目标服务器列表生成模块,用于获取寻址请求,并基于所述寻址请求与所述基础服务器列表,更新可用服务器地址列表,得到目标服务器列表,其中,所述目标服务器列表包括目标服务器列表的变更标志;
寻址结果获取模块,用于基于所述目标服务器列表的变更标志,更新所述目标服务器列表的权值,并从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果,其中,所述寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果;
有效权值更新模块,用于根据所述寻址结果,更新所述目标服务器列表中的有效权值和访问时间戳。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的服务器负载均衡的处理方法。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的服务器负载均衡的处理方法。
本发明实施例提供了一种服务器负载均衡的处理方法、装置、设备及存储介质。其中,方法包括:通过预设方式,获取服务器列表,并初始化所述服务器列表,得到初始服务器列表;对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表;获取寻址请求,并基于寻址请求与基础服务器列表,更新可用服务器列表,得到目标服务器列表;基于目标服务器列表的变更标志,更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果;根据寻址结果,更新目标服务器列表中的有效权值和访问时间戳。本发明实施例通过对每一服务器地址进行通断检测,以检测出每一服务器地址的通断情况并对其进行标记,使得其与可用服务器列表进行对比,更新服务器列表中的服务器权值,实现从服务器列表中获取权值最大的服务器地址,避免服务器因接口质量以及网络质量等因素影响目标服务器地址的选取,同时更新目标服务器列表中的有效权值和访问时间戳,避免选取权值较低的服务器地址,有利于提高服务器负载均衡的处理精度。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的服务器负载均衡的处理方法流程的一实现流程图;
图2是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图3是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图4是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图5是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图6是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图7是本申请实施例提供的服务器负载均衡的处理方法中子流程的又一实现流程图;
图8是本申请实施例提供的服务器负载均衡的处理装置示意图;
图9是本申请实施例提供的计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
需要说明的是,本申请实施例所提供的服务器负载均衡的处理方法一般由服务器执行,相应地,服务器负载均衡的处理装置一般配置于服务器中。
请参阅图1,图1示出了服务器负载均衡的处理方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,该方法包括如下步骤:
S1:通过预设方式,获取服务器列表,并初始化服务器列表,得到初始服务器列表。
具体的,预设方式包括通过配置文件读入地址列表,或者是通过参数传入地址列表。初始化服务器列表包括按顺序从服务器列表中获取服务器地址,判断服务器列表中服务器地址是否取完,若是,则结束流程;若否,则判断同一服务器地址是否重复抽取,若否,则初始化关联数据,并将关联数据存储于查找表map中。其中,关联数据包括连接类型(TCP/UDP/HTTP)、初始权值、最后探活时间、连续探活成功次数、连续探活失败次数以及连通状态等。其中,查找表map是指map接口提供的集合,用于存储所谓“key-value”映射对;Key可以看成是Value的索引,作为key的对象在集合中不可重复。
S2:对初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表。
需要说明的是,在本申请实施例中,采用的是异步探活线程,也即S2步骤采用独立的子线程执行,以避免探活操作阻塞其他正常业务寻址过程。其中,探活是指对服务器地址进行通断检测,判断该服务器是否处于可用状态。在本申请实施例中,对初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表。在另一实施例中,除了对初始服务器列表中的服务器地址进行通断检测外,也对其他服务器地址进行通断检测。
请参阅图2,图2示出了步骤S2的一种具体实施方式,详叙如下:
S21:获取初始服务器列表中的任一服务器地址,作为初始的服务器地址。
具体的,当达到预设的探活时间后,获取初始服务器列表中的任一服务器地址,作为初始服务器地址。其中,预设的探活时间根据实际情况进行设定,此处不作限定。
S22:判断服务器地址所满足的传输类型,得到判断结果,并基于判断结果向服务器地址发送探测请求,以获取服务器地址所反馈的响应结果。
请参阅图3,图3示出了步骤S22的一种具体实施方式,详叙如下:
S221:判断服务器地址的传输协议是否满足超文本传输协议HTTP,得到第一判断结果。
S222:若第一判断结果为服务器地址的传输协议满足超文本传输协议HTTP,则判断服务器地址是否存在统一资源定位系统,得到第二判断结果,且基于第二判断结果发送探测请求,以获取探测请求所反馈的响应结果。
S223:若第一判断结果为服务器地址的传输协议未满足超文本传输协议HTTP,则判断服务器地址的传输协议是否满足传输控制协议TCP,若满足,则发送tcp connect请求,以获取tcp connect请求所反馈的响应结果。
S224:若未满足,则判断服务器地址的传输协议是否满足用户数据报协议UDP,若满足,则发送udp icmp请求,以获取udp icmp请求所反馈的响应结果。
具体的,判断服务器地址的传输协议是否满足超文本传输协议HTTP,若否,则执行步骤S223;若是,则接着判断是否存在统一资源定位系统,若存在统一资源定位系统,则向统一资源定位系统发送http get请求,以获取其反馈的响应结果;若不存在统一资源定位系统,则发送http head请求到服务器地址的根路径上,以获取其反馈的响应结果。若第一判断结果为服务器地址的传输协议未满足超文本传输协议HTTP,则判断服务器地址的传输协议是否满足传输控制协议TCP;若满足,则发送tcp connect请求,以获取其所反馈的响应结果。若服务器地址的传输协议未满足传输控制协议TCP,则判断服务器地址的传输协议是否满足用户数据报协议UDP,若未满足,则跳过该服务器地址的通道检测;若满足,则发送udp icmp请求,以获取其所反馈的响应结果。
本实施例中,通过判断服务器地址所满足的传输协议,发送相应的探活请求,以获取服务器地址所反馈的响应结果,便于后续判断服务器是否可用。
S23:若响应结果为连续接收到预设次数的探活成功响应,则检测结果为服务器地址为可用状态,并基于检测结果对服务器地址进行标记。
S24:若响应结果为连续接收到预设次数的探活失败响应,则检测结果为服务器地址为不可用状态,并基于检测结果对服务器地址进行标记。
S25:更新探活时间,并当探活时间到达预设时间时,重新执行获取初始服务器列表中的任一服务器地址,作为初始的服务器地址的步骤,直至初始服务器列表中所有服务器地址探活完成,得到基础服务器列表。
具体的,若响应结果为连续接收到预设次数的探活成功响应,则检测结果为服务器地址为可用状态,将该服务器地址标记为服务器状态可用,并重置探活计数;若响应结果为连续接收到预设次数的探活失败响应,则检测结果为服务器地址为不可用状态,将该服务器地址标记为服务器状态不可用;若累加探活连续成功数到达预设阈值时,则重置失败数;同样的,若累加探活连续失败数到达预设阈值时,则重置成功数。其中,预设次数和预设阈值根据实际情况进行设定,此处不作限定。在对服务器地址进行标记之后,更新探活时间,并当探活时间到达预设时间时,重新执行步骤S21,直至初始服务器列表中所有服务器地址探活完成,得到基础服务器列表。进一步的,除了对初始服务器列表中的服务器地址进行通断检测外,也对其他服务器地址进行通断检测。其中,探活时间是指上一服务器地址通断检测判断后,所经过的时间。其中,预设时间根据实际情况进行设定,此处不作限定。
本实施例中,通过对服务器地址进行通断检测,以判断服务器是否可用,以及将不可用的服务器进行标记,避免后续调用该服务器进行业务处理,保障了服务器的可用率。
S3:获取寻址请求,并基于寻址请求与基础服务器列表,更新可用服务器列表,得到目标服务器列表。
其中,目标服务器列表包括目标服务器列表的变更标志
请参阅图4,图4示出了步骤S3的一种具体实施方式,详叙如下:
S31:获取寻址请求,并判断寻址请求中的接口标识是否存在于可用服务器列表中。
S32:若接口标识存在于可用服务器列表中,则初始化临时可用服务器列表为空列表。
S33:通过遍历的方式,识别基础服务器列表中的每个服务器地址的服务器状态标记,并将标记为服务器状态可用的服务器并入临时可用服务器列表中。
S34:判断临时可用服务器列表与可用服务器列表是否存在差异;
S35:若临时可用服务器列表与可用服务器列表存在差异,则设置可用服务器列表的变更标志,并将临时可用服务器列表覆盖可用服务器列表,得到目标服务器列表。
S36:若临时可用服务器列表与可用服务器列表未存在差异,则将临时可用服务器列表覆盖可用服务器列,得到目标服务器列表。
具体的,获取应用层所发送的寻址请求,该寻址请求中包括接口标识,判断接口标识是否存在于可用服务器列表中,该可用服务器列表上一次寻址请求所生成的服务器列表,其服务器列表包括接口标识。若接口标识存在于可用服务器列表中,则初始化临时可用服务器列表为空列表,再通过遍历的方式,识别基础服务器列表中的每个服务器地址的服务器状态标记(服务器状态标记分为服务器状态可用和服务器状态标记不可用),并将标记为服务器状态可用的服务器并入临时可用服务器列表中。当遍历完成后,先判断可用服务器列表是否为空,若为空,则以初始服务器列表作为临时服务器列表;若不为空,则判断临时可用服务器列表与可用服务器列表是否存在差异,若临时可用服务器列表与可用服务器列表存在差异,则将设置可用服务器列表的变更标志,将变更标志设置为真,并将临时可用服务器列表覆盖可用服务器列表,得到目标服务器列表;若临时可用服务器列表与可用服务器列表未存在差异,则将临时可用服务器列表覆盖可用服务器列,得到目标服务器列表。
本实施例中,通过获取寻址请求,并基于寻址请求与基础服务器列表,更新可用服务器地址列表,得到目标服务器列表,便于后续对目标服务器列表的权值进行更新,以获取寻址结果,从而有利于提高服务器负载均衡处理的精度。
S4:基于目标服务器列表的变更标志,更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果。
其中,寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果。
请参阅图5,图5示出了步骤S4的一种具体实施方式,详叙如下:
S41:遍历目标服务器列表中的每个服务器地址,并识别目标服务器列表的变更标志。
S42:若目标服务器列表的变更标志为假,则基于服务器有效权值更新服务器当前权值,并基于服务器当前权值更新服务器总权值。
S43:当目标服务器列表遍历完成,将目标服务器列表的变更标志设为假。
S44:从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果。
具体的,本申请实施例采用平滑加权轮询算法去获取权值最大的服务器地址,其中,平滑加权轮询算法是负载均衡算法中的一种算法。本实施例中,服务器有效权值(effect_w):初始值为服务器的静态权值(即static_w,初始化时传入,一般为配置文件指定),后续随每次寻址上报的结果进行调整;服务器当前权值(current_w):用于每轮决策的权值,初始值为0,根据算法流程更新。如果可用服务器列表有变更(即目标服务器列表的变更标志为真),则列表中的各个服务器current_w也重置为0。本申请实施例中,遍历目标服务器列表中的每个服务器地址,并识别目标服务器列表的变更标志;若目标服务器列表的变更标志为假,则将服务器有效权值加上服务器当前权值,以形成新的服务器当前权值;服务器当前权值加上服务器总权值,以形成新的服务器总权值。若目标服务器列表的变更标志为真,则将服务器当前权值先设为零,并将服务器有效权作为服务器当前权值,服务器当前权值的累积作为服务器总权值。当目标服务器列表遍历完成,将目标服务器列表的变更标志设为假,从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果,并将目标服务器地址对应的服务器作为寻址请求对应的调用服务器。
进一步的,在步骤S44之后,所述方法还包括:获取目标服务器地址对应的服务器当前权值,作为目标服务器当前权值,并将目标服务器当前权值减去当前服务器总权值,作为所述目标服务器的一下轮决策的服务器当前权值。
本实施例中,基于目标服务器列表的变更标志,实现更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果,有利于根据服务器对应的权值信息,选择权值最大的服务器作为调用服务器,避免调用到不可用的服务器,提高服务器负载均衡的处理精度。
S5:根据寻址结果,更新目标服务器列表中的有效权值和访问时间戳。
请参阅图6,图6示出了步骤S5的一种具体实施方式,详叙如下:
S51:判断接口标识是否存在。
S52:若接口标识存在,则判断目标服务器地址是否存在。
S53:若目标服务器地址存在,则判断调用结果是否调用成功,得到第三判断结果。
S54:基于第三判断结果,更新目标服务器列表中的有效权值。
请参阅图7,图7示出了步骤S54的一种具体实施方式,详叙如下:
S541:若第三判断结果为调用结果为调用成功,则将目标服务器列表中的有效权值按照预设值进行增加。
S542:若第三判断结果为调用结果为调用失败,则将目标服务器列表中的有效权值按照预设值进行减少,或,若第三判断结果为调用结果为调用失败,获取搁置时间,并基于搁置时间,对目标服务器列表中的有效权值进行重置。
需要说明的是,预设值根据实际情况进行设定,此处不作限定,在一具体实施例中,预设值为10。例如配置文件配置的每个地址静态权值为100。初始值为100,对于每次调用结果反馈,若结果为成功,则针对当前值进行调整:权值为50以下每次增加10,权值为50以上每次X1.2,上限为静态权值;若结果为失败,则:权值为50以下的每次权值乘以0.6,权重为30以下的权值每次减10,下限为1。进一步的,为了防止被降权的服务器地址由于权值太低导致一直分配不到流量从而不能及时发现服务器恢复为可用状态的情况,对于每个被调地址可按最后一次被寻址时间与当前时间经过的时长(也即搁置时间),对有效权值进行一次重置,其值为权值为50以下有效权值重置,将静态权值乘以系数(系数值为0.0~1.0之间)。例如,距离最后一次被调过了10分钟,把有效权值重置为静态权值乘以0.5。
S55:获取当前时间,并基于当前时间,更新目标服务器地址的访问时间戳。
具体的,寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果,先判断该接口标识是否存在,若不存在,则忽略此处寻址结果的上报。若存在,则继续判断目标服务器地址是否存在,若不存在,则忽略此处寻址结果的上报,若存在,则判断调用结果是否调用成功。若调用失败,则按照步骤S542调整服务器有效权值,若调用成功,则按照步骤S541调整服务器有效权值。在调整服务器有效权值之后,获取当前时间,并基于当前时间,更新目标服务器地址的访问时间戳。进一步的,对其他节点按照距离最近一次访问时间间隔时长调整服务器有效权值,再判断当前目标服务器有效权值是否发生变化,若无变化,则接流程,如有变化,则设置服务器列表的变更标志为真。
本实施例中,通过预设方式,获取服务器列表,并初始化服务器列表,得到初始服务器列表;对初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表;获取寻址请求,并基于寻址请求与基础服务器列表,更新可用服务器地址列表,得到目标服务器列表;基于目标服务器列表的变更标志,更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果;根据寻址结果,更新目标服务器列表中的有效权值和访问时间戳。本发明实施例通过对每一服务器地址进行通断检测,以检测出每一服务器地址的通断情况并对其进行标记,使得其与可用服务器列表进行对比,更新服务器列表中的服务器权值,实现从服务器列表中获取权值最大的服务器地址,避免服务器因接口质量以及网络质量等因素影响目标服务器地址的选取,同时更新目标服务器列表中的有效权值和访问时间戳,避免选取权值较低的服务器地址,有利于提高服务器负载均衡的处理精度。
请参考图8,作为对上述图1所示方法的实现,本申请提供了一种服务器负载均衡的处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的服务器负载均衡的处理装置包括:初始服务器列表生成模块61、基础服务器列表生成模块62、目标服务器列表生成模块63、寻址结果获取模块64、有效权值更新模块65,其中:
初始服务器列表生成模块61,用于通过预设方式,获取服务器列表,并初始化服务器列表,得到初始服务器列表;
基础服务器列表生成模块62,用于对初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于检测结果对服务器地址进行标记,得到基础服务器列表;
目标服务器列表生成模块63,用于获取寻址请求,并基于寻址请求与基础服务器列表,更新可用服务器列表,得到目标服务器列表,其中,目标服务器列表包括目标服务器列表的变更标志;
寻址结果获取模块64,用于基于目标服务器列表的变更标志,更新目标服务器列表的权值,并从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果,其中,寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果;
有效权值更新模块65,用于根据寻址结果,更新目标服务器列表中的有效权值和访问时间戳。
进一步的,基础服务器列表生成模块62包括:
初始服务器地址获取单元,用于获取初始服务器列表中的任一服务器地址,作为初始的服务器地址;
响应结果生成单元,用于判断服务器地址所满足的传输类型,得到判断结果,并基于判断结果向服务器地址发送探测请求,以获取服务器地址所反馈的响应结果;
第一地址标记单元,用于若响应结果为连续接收到预设次数的探活成功响应,则检测结果为服务器地址为可用状态,并基于检测结果对服务器地址进行标记;
第二地址标记单元,用于若响应结果为连续接收到预设次数的探活失败响应,则检测结果为服务器地址为不可用状态,并基于检测结果对服务器地址进行标记;
时间戳更新单元,用于更新探活时间,并当探活时间到达预设时间时,重新执行获取初始服务器列表中的任一服务器地址,作为初始的服务器地址的步骤,直至初始服务器列表中所有服务器地址探活完成,得到基础服务器列表。
进一步的,响应结果生成单元包括:
第一判断结果生成子单元,用于判断服务器地址的传输协议是否满足超文本传输协议HTTP,得到第一判断结果;
第二判断结果生成子单元,用于若第一判断结果为服务器地址的传输协议满足超文本传输协议HTTP,则判断服务器地址是否存在统一资源定位系统,得到第二判断结果,且基于第二判断结果发送探测请求,以获取探测请求所反馈的响应结果;
第一响应结果反馈子单元,用于若第一判断结果为服务器地址的传输协议未满足超文本传输协议HTTP,则判断服务器地址的传输协议是否满足传输控制协议TCP,若满足,则发送tcp connect请求,以获取tcp connect请求所反馈的响应结果;
第二响应结果反馈子单元,用于若未满足,则判断服务器地址的传输协议是否满足用户数据报协议UDP,若满足,则发送udp icmp请求,以获取udp icmp请求所反馈的响应结果。
进一步的,目标服务器列表生成模块63包括:
寻址请求获取单元,用于获取寻址请求,并判断寻址请求中的接口标识是否存在于可用服务器列表中;
空列表生成单元,用于若接口标识存在于可用服务器列表中,则初始化临时可用服务器列表为空列表;
服务器状态标记单元,用于通过遍历的方式,识别基础服务器列表中的每个服务器地址的服务器状态标记,并将标记为服务器状态可用的服务器并入临时可用服务器列表中;
差异判别单元,用于判断临时可用服务器列表与可用服务器列表是否存在差异;
第一差异处理单元,用于若临时可用服务器列表与可用服务器列表存在差异,则设置可用服务器列表的变更标志,并将临时可用服务器列表覆盖可用服务器列表,得到目标服务器列表;
第二差异处理单元,用于若临时可用服务器列表与可用服务器列表未存在差异,则将临时可用服务器列表覆盖可用服务器列,得到目标服务器列表。
进一步的,寻址结果获取模块64包括:
变更标志识别单元,用于遍历目标服务器列表中的每个服务器地址,并识别目标服务器列表的变更标志;
总权值更新单元,用于若目标服务器列表的变更标志为假,则基于服务器有效权值更新服务器当前权值,并基于服务器当前权值更新服务器总权值;
列表遍历单元,用于当目标服务器列表遍历完成,将目标服务器列表的变更标志设为假;
寻址结果生成单元,用于从目标服务器列表中获取当前权值最大的服务器地址,得到寻址结果。
进一步的,有效权值更新模块65包括:
接口标识判断单元,用于判断接口标识是否存在;
地址判断单元,用于若接口标识存在,则判断目标服务器地址是否存在;
调用结果判断单元,用于若目标服务器地址存在,则判断调用结果是否调用成功,得到第三判断结果;
判断结果生效单元,用于基于第三判断结果,更新目标服务器列表中的有效权值;
访问时间戳更新单元,用于获取当前时间,并基于当前时间,更新目标服务器地址的访问时间戳。
进一步的,判断结果生效单元包括:
有效权值增加子单元,用于若第三判断结果为调用结果为调用成功,则将目标服务器列表中的有效权值按照预设值进行增加;
有效权值减少子单元,用于若第三判断结果为调用结果为调用失败,则将目标服务器列表中的有效权值按照预设值进行减少,或,若第三判断结果为调用结果为调用失败,获取搁置时间,并基于搁置时间,对目标服务器列表中的有效权值进行重置。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
计算机设备7包括通过系统总线相互通信连接存储器71、处理器72、网络接口73。需要指出的是,图中仅示出了具有三种组件存储器71、处理器72、网络接口73的计算机设备7,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field -Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器71至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器71可以是计算机设备7的内部存储单元,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器71也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器71还可以既包括计算机设备7的内部存储单元也包括其外部存储设备。本实施例中,存储器71通常用于存储安装于计算机设备7的操作系统和各类应用软件,例如服务器负载均衡的处理方法的程序代码等。此外,存储器71还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器72在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器72通常用于控制计算机设备7的总体操作。本实施例中,处理器72用于运行存储器71中存储的程序代码或者处理数据,例如运行上述服务器负载均衡的处理方法的程序代码,以实现服务器负载均衡的处理方法的各种实施例。
网络接口73可包括无线网络接口或有线网络接口,该网络接口73通常用于在计算机设备7与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种服务器负载均衡的处理方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台计算机设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种服务器负载均衡的处理方法,其特征在于,包括:
通过预设方式,获取服务器列表,并初始化所述服务器列表,得到初始服务器列表;
对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于所述检测结果对所述服务器地址进行标记,得到基础服务器列表;
获取寻址请求,并基于所述寻址请求与所述基础服务器列表,更新可用服务器列表,得到目标服务器列表,其中,所述目标服务器列表包括目标服务器列表的变更标志;
基于所述目标服务器列表的变更标志,更新所述目标服务器列表的权值,并从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果,其中,所述寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果;
根据所述寻址结果,更新所述目标服务器列表中的有效权值和访问时间戳。
2.根据权利要求1所述的服务器负载均衡的处理方法,其特征在于,所述对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于所述检测结果对所述服务器地址进行标记,得到基础服务器列表,包括:
获取所述初始服务器列表中的任一服务器地址,作为初始的服务器地址;
判断所述服务器地址所满足的传输类型,得到判断结果,并基于所述判断结果向所述服务器地址发送探测请求,以获取服务器地址所反馈的响应结果;
若所述响应结果为连续接收到预设次数的探活成功响应,则所述检测结果为所述服务器地址为可用状态,并基于所述检测结果对所述服务器地址进行标记;
若所述响应结果为连续接收到预设次数的探活失败响应,则所述检测结果为所述服务器地址为不可用状态,并基于所述检测结果对所述服务器地址进行标记;
更新探活时间,并当所述探活时间到达预设时间时,重新执行获取所述初始服务器列表中的任一服务器地址,作为初始的服务器地址的步骤,直至所述初始服务器列表中所有服务器地址探活完成,得到所述基础服务器列表。
3.根据权利要求2所述的服务器负载均衡的处理方法,其特征在于,所述判断所述服务器地址所满足的传输类型,得到判断结果,并基于所述判断结果向所述服务器地址发送探测请求,以获取服务器地址所反馈的响应结果,包括:
判断所述服务器地址的传输协议是否满足超文本传输协议HTTP,得到第一判断结果;
若所述第一判断结果为所述服务器地址的传输协议满足超文本传输协议HTTP,则判断所述服务器地址是否存在统一资源定位系统,得到第二判断结果,且基于所述第二判断结果发送探测请求,以获取所述探测请求所反馈的响应结果;
若所述第一判断结果为所述服务器地址的传输协议未满足超文本传输协议HTTP,则判断服务器地址的传输协议是否满足传输控制协议TCP,若满足,则发送tcp connect请求,以获取所述tcp connect请求所反馈的响应结果;
若未满足,则判断服务器地址的传输协议是否满足用户数据报协议UDP,若满足,则发送udp icmp请求,以获取所述udp icmp请求所反馈的响应结果。
4.根据权利要求1所述的服务器负载均衡的处理方法,其特征在于,所述获取寻址请求,并基于所述寻址请求与所述基础服务器列表,更新可用服务器列表,得到目标服务器列表,包括:
获取所述寻址请求,并判断所述寻址请求中的接口标识是否存在于所述可用服务器列表中;
若所述接口标识存在于所述可用服务器列表中,则初始化临时可用服务器列表为空列表;
通过遍历的方式,识别所述基础服务器列表中的每个服务器地址的服务器状态标记,并将标记为服务器状态可用的服务器并入所述临时可用服务器列表中;
判断所述临时可用服务器列表与所述可用服务器列表是否存在差异;
若所述临时可用服务器列表与所述可用服务器列表存在差异,则设置所述可用服务器列表的变更标志,并将所述临时可用服务器列表覆盖所述可用服务器列表,得到所述目标服务器列表;
若所述临时可用服务器列表与所述可用服务器列表未存在差异,则将所述临时可用服务器列表覆盖所述可用服务器列,得到所述目标服务器列表。
5.根据权利要求1所述的服务器负载均衡的处理方法,其特征在于,所述基于所述目标服务器列表的变更标志,更新所述目标服务器列表的权值,并从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果,包括:
遍历所述目标服务器列表中的每个服务器地址,并识别所述目标服务器列表的变更标志;
若所述目标服务器列表的变更标志为假,则基于服务器有效权值更新服务器当前权值,并基于所述服务器当前权值更新服务器总权值;
当所述目标服务器列表遍历完成,将所述目标服务器列表的变更标志设为假;
从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果。
6.根据权利要求1至5任一项所述的服务器负载均衡的处理方法,其特征在于,所述根据所述寻址结果,更新所述目标服务器列表中的有效权值和访问时间戳,包括:
判断所述接口标识是否存在;
若所述接口标识存在,则判断所述目标服务器地址是否存在;
若所述目标服务器地址存在,则判断所述调用结果是否调用成功,得到第三判断结果;
基于所述第三判断结果,更新所述目标服务器列表中的有效权值;
获取当前时间,并基于所述当前时间,更新所述目标服务器地址的访问时间戳。
7.根据权利要求6所述的服务器负载均衡的处理方法,其特征在于,所述基于所述第三判断结果,更新所述目标服务器列表中的有效权值,包括:
若所述第三判断结果为所述调用结果为调用成功,则将所述目标服务器列表中的有效权值按照预设值进行增加;
若所述第三判断结果为所述调用结果为调用失败,则将所述目标服务器列表中的有效权值按照预设值进行减少,或,若所述第三判断结果为所述调用结果为调用失败,获取搁置时间,并基于所述搁置时间,对所述所述目标服务器列表中的有效权值进行重置。
8.一种服务器负载均衡的处理装置,其特征在于,包括:
初始服务器列表生成模块,用于通过预设方式,获取服务器列表,并初始化所述服务器列表,得到初始服务器列表;
基础服务器列表生成模块,用于对所述初始服务器列表中每一服务器地址进行通断检测,得到检测结果,并基于所述检测结果对所述服务器地址进行标记,得到基础服务器列表;
目标服务器列表生成模块,用于获取寻址请求,并基于所述寻址请求与所述基础服务器列表,更新可用服务器列表,得到目标服务器列表,其中,所述目标服务器列表包括目标服务器列表的变更标志;
寻址结果获取模块,用于基于所述目标服务器列表的变更标志,更新所述目标服务器列表的权值,并从所述目标服务器列表中获取当前权值最大的服务器地址,得到所述寻址结果,其中,所述寻址结果中包括目标服务器地址、接口标识、以及调用耗时以及调用结果;
有效权值更新模块,用于根据所述寻址结果,更新所述目标服务器列表中的有效权值和访问时间戳。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的服务器负载均衡的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的服务器负载均衡的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210492895.XA CN114827163B (zh) | 2022-05-07 | 2022-05-07 | 服务器负载均衡的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210492895.XA CN114827163B (zh) | 2022-05-07 | 2022-05-07 | 服务器负载均衡的处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827163A true CN114827163A (zh) | 2022-07-29 |
CN114827163B CN114827163B (zh) | 2024-07-26 |
Family
ID=82511622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210492895.XA Active CN114827163B (zh) | 2022-05-07 | 2022-05-07 | 服务器负载均衡的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827163B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094643A1 (en) * | 2014-09-30 | 2016-03-31 | Nicira, Inc. | Dynamically adjusting load balancing |
CN110389841A (zh) * | 2019-07-25 | 2019-10-29 | 中南民族大学 | 一种服务器负载均衡方法、装置和存储介质 |
CN113890879A (zh) * | 2021-09-10 | 2022-01-04 | 鸬鹚科技(深圳)有限公司 | 数据访问的负载均衡方法、装置、计算机设备及介质 |
CN113946376A (zh) * | 2021-10-29 | 2022-01-18 | 挂号网(杭州)科技有限公司 | 负载调整方法、装置、电子设备及存储介质 |
CN114285903A (zh) * | 2021-12-16 | 2022-04-05 | 奇安信科技集团股份有限公司 | 请求处理方法、装置、系统及电子设备 |
-
2022
- 2022-05-07 CN CN202210492895.XA patent/CN114827163B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094643A1 (en) * | 2014-09-30 | 2016-03-31 | Nicira, Inc. | Dynamically adjusting load balancing |
CN110389841A (zh) * | 2019-07-25 | 2019-10-29 | 中南民族大学 | 一种服务器负载均衡方法、装置和存储介质 |
CN113890879A (zh) * | 2021-09-10 | 2022-01-04 | 鸬鹚科技(深圳)有限公司 | 数据访问的负载均衡方法、装置、计算机设备及介质 |
CN113946376A (zh) * | 2021-10-29 | 2022-01-18 | 挂号网(杭州)科技有限公司 | 负载调整方法、装置、电子设备及存储介质 |
CN114285903A (zh) * | 2021-12-16 | 2022-04-05 | 奇安信科技集团股份有限公司 | 请求处理方法、装置、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114827163B (zh) | 2024-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784515B (zh) | 基于分布式集群的数据存储方法、及其相关设备 | |
CN107948004B (zh) | 一种视频cdn调取优化方法及装置 | |
CN114095567B (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN113259428A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN109597724B (zh) | 服务稳定性测量方法、装置、计算机设备及存储介质 | |
CN111314174A (zh) | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 | |
CN108243254B (zh) | 电子装置、应用升级版本发布的方法及存储介质 | |
EP3032417A1 (en) | Cloud orchestration and placement using historical data | |
CN113885794B (zh) | 基于多云存储的数据访问方法、装置、计算机设备及介质 | |
CN108280024B (zh) | 流量分配策略测试方法、装置及电子设备 | |
CN113067802B (zh) | 一种用户标识方法、装置、设备及计算机可读存储介质 | |
CN112596985B (zh) | 一种it资产探测方法、装置、设备和介质 | |
CN114153553A (zh) | 一种虚拟机高可用的控制方法、系统及相关组件 | |
CN110677683B (zh) | 视频存储、视频访问方法及分布式存储、视频访问系统 | |
CN114827163A (zh) | 服务器负载均衡的处理方法、装置、设备及存储介质 | |
CN111930482A (zh) | 基于节点集群的任务处理方法、装置、设备及存储介质 | |
CN110019372B (zh) | 数据监控方法、装置、服务器及存储介质 | |
CN110990219B (zh) | 一种基于预测模型的计算机监控方法 | |
CN113900679A (zh) | 一种补丁安装方法、装置、计算机设备和存储介质 | |
WO2019066690A1 (en) | METHODS AND ARRANGEMENTS FOR AUTOMATED ENHANCEMENT OF SERVICE QUALITY OF A DATA CENTER | |
CN111343101A (zh) | 服务器限流方法、装置、电子设备及可读存储介质 | |
CN110764697A (zh) | 一种数据管理方法及装置 | |
CN111352710A (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN112114972B (zh) | 数据倾斜的预测方法及装置 | |
US20230196421A1 (en) | Program, information processing method, and information processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |