CN111176843A - 基于多维度的负载均衡方法、装置及相关设备 - Google Patents
基于多维度的负载均衡方法、装置及相关设备 Download PDFInfo
- Publication number
- CN111176843A CN111176843A CN201911342427.9A CN201911342427A CN111176843A CN 111176843 A CN111176843 A CN 111176843A CN 201911342427 A CN201911342427 A CN 201911342427A CN 111176843 A CN111176843 A CN 111176843A
- Authority
- CN
- China
- Prior art keywords
- server
- candidate server
- candidate
- load balancing
- data request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 15
- 230000036541 health Effects 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 101150064138 MAP1 gene Proteins 0.000 description 4
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005195 poor health Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Abstract
本发明公开了基于多维度的负载均衡方法、装置及相关设备,应用于网络通讯领域,一方面使得各个候选服务器的负载更为均衡,另一方面使得该待处理的数据请求可以及时得到处理。本发明提供的基于多维度的负载均衡方法包括:接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重;统计每个候选服务器已建立的短连接数;计算每个候选服务器处理最近一次数据请求的响应时间;根据该权重、该短连接数及该响应时间从所述候选服务器中确定一目标服务器;将该待处理的数据请求发送至该目标服务器。
Description
技术领域
本申请涉及网络通讯技术领域,尤其涉及基于多维度的负载均衡方法、装置、计算机设备及存储介质。
背景技术
负载均衡策略是用于服务器集群之间分担流量压力的策略,传统的负载均衡策略包括客户端负载均衡算法和服务端负载均衡算法,无论是客户端负载均衡算法还是服务端负载均衡算法,在确定要访问的服务器时是基于比较单一的维度进行计算,例如基于轮询算法、基于权重的算法、基于Hash算法、基于连接数或者响应时间的算法等。
现有的负载均衡策略不管是基于哪种算法确定的需要访问的服务器,在后续处理数据请求时经常出现一些问题,例如轮询算法、权重的算法或Hash算法都有可能将数据请求分配到已经宕机的服务器、或者健康状态不太好的服务器上,导致发送的数据请求无法快速的得到响应;再例如基于连接数或者响应时间的算法,不能很好的控制服务器的流量负载,会使得某个服务器在某一时段瞬时流量过高或者过低,数据请求不合理的分配使得服务器的负载均衡效果不明显。
发明内容
本发明实施例提供一种基于多维度的负载均衡方法、装置、计算机设备及存储介质,以解决现有技术对数据请求不合理的分配使得服务器的负载均衡效果不明显的问题。
一种基于多维度的负载均衡方法,该方法包括:
接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重;
统计每个候选服务器已建立的短连接数;
计算每个候选服务器处理最近一次数据请求的响应时间;
根据该权重、该短连接数及该响应时间从所述候选服务器中确定一目标服务器;
将该待处理的数据请求发送至该目标服务器。
一种基于多维度的负载均衡装置,该装置包括:
查询模块,用于接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重;
统计模块,用于统计每个候选服务器已建立的短连接数;
计算模块,用于计算每个候选服务器处理最近一次数据请求的响应时间;
目标服务器确定模块,用于根据该权重、该短连接数及该响应时间从所述候选服务器中确定一目标服务器;
发送模块,用于将该待处理的数据请求发送至该目标服务器。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于多维度的负载均衡方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于多维度的负载均衡方法的步骤。
本申请提供的基于多维度的负载均衡方法、装置、计算机设备及存储介质,通过查询每个候选服务器的权重、统计各个候选服务器已建立的短连接数、计算各个候选服务器处理最近一次数据请求的响应时间,并根据该权重、该短连接数及该响应时间确定目标服务器,然后将该待处理的请求数据发送至该目标服务器,使得最终确定的目标服务器是基于权重、短连接数及响应时间这三个维度确定的,使得最终确定的目标服务器在综合各方面考虑具有最佳的处理状态,一方面使得各个候选服务器的负载更为均衡,另一方面使得该待处理的数据请求可以及时得到处理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于多维度的负载均衡方法的一应用环境示意图;
图2是本发明一实施例中基于多维度的负载均衡方法的流程图;
图3是本发明另一实施例中基于多维度的负载均衡方法的流程图;
图4是本发明一实施例中统计每个候选服务器已建立的短连接数的一流程图;
图5是本发明另一实施例中统计每个候选服务器已建立的短连接数的一流程图;
图6是本发明一施例中计算每个候选服务器处理最近一次数据请求的响应时间的一流程图;
图7是本发明一实施例中基于多维度的负载均衡装置的结构示意图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于多维度的负载均衡方法,可应用在如图1的应用环境中,其中,计算机设备通过网络与至少一个服务器进行通信。其中,计算机设备包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于多维度的负载均衡方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤S101至S105。
S101、接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重。
在其中一个实施例中,所述待处理的数据请求可以是超文本传输协议(http)类型的数据请求。其中,与各个服务器对应预设的权重可以通过人为设定来确定,可以将硬件条件更好、处理能力更强的服务器的权重设置的更高一些,以使得处理能力强的服务器可以负载更多的数据访问量。
S102、统计每个候选服务器已建立的短连接数。
在本实施例中,统计每个候选服务器已建立的短连接数有两种方式可以实现:
(1)、在本端创建与每个服务器对应的键值队列,将创建的键值队列保存在本地内存中,在各服务器上负载的短连接数有变化时,会向本端发送短连接数的更新消息,本端可根据该更新消息实时更新存储在本地内存中的键值队列,在需要统计每个候选服务器已建立的短连接数时,读取该键值队列中键值的个数即可。
(2)、各个候选服务器上存储有该键值队列,各候选服务上负载的短连接数有变化时会实时更新该键值队列,在需要统计每个候选服务器已建立的短连接数时,本端向对应的候选服务器发送请求键值队列的消息并接收对应的候选服务器反馈的消息,解析反馈的消息中的键值的个数即可得到对应候选服务器已建立的短连接数。
S103、计算每个候选服务器处理最近一次数据请求的响应时间。
在其中一个实施例中,所述响应时间的确定可以在同一时刻单独发一个测试请求数据给每个所述候选服务器,根据接收所述候选服务器反馈的响应数据的时刻确定为所述响应时间,其效果在于使得各个服务器处理请求数据的时间、处理数据的内容均相同,排除了在不同时间下的环境因素对所述响应时间的影响,使得计算得到的对应服务器的响应时间十分准确。
在其他实施例中,也可以根据最近一次向候选服务器发送的实际需要处理的请求数据测试对应候选服务器的响应时间,通过将最近一次向候选服务器发送的待处理的数据请求确定为测试数据,使得所述待处理的数据请求既可以作为实际处理的数据,又可以作为测试对应候选服务器响应时间的测试用例,通过最少的数据量即可计算出对应候选服务器的响应时间,减少了网络中的数据冗余,提高了响应时间的计算效率。
S104、根据该权重、该短连接数及该响应时间从所述候选服务器中确定一目标服务器。
在其中一个实施例中,如图3所示,该步骤S104进一步包括以下步骤S1041及S1042。
S1041、根据各个候选服务器的权重、该短连接数及该响应时间计算各个候选服务器的健康指标值。
在其中一个实施例中,通过以下公式计算所述候选服务器的健康指标值:
(Z1+Z2+…Zn)/n=M;
((M-Z1)+(M-Z2)+…(M-Zn))/n=S;
(y1+y2+…yn)/k=P;
(x1+x2+…xn)=G;
O=xn/G*(S/P);
其中,Zn表示第n个候选服务器的响应时间,M表示所述候选服务器的平均响应时间,S、P和G表示中间变量,k表示单位时间,yn表示第n个候选服务器的短连接个数,xn表示第n个候选服务器的权重,O表示计算得到的第n个候选服务器的健康指标值,其中,n≥1,且n为整数。
S1042、查询计算出的最大健康指标值对应的候选服务器,将查询到的该候选服务器确定为该目标服务器。
S105、将该待处理的数据请求发送至该目标服务器。
本实施例通过查询每个候选服务器的权重、统计各个候选服务器已建立的短连接数、计算各个候选服务器处理最近一次数据请求的响应时间,并根据该权重、该短连接数及该响应时间确定目标服务器,然后将该待处理的请求数据发送至该目标服务器,使得最终确定的目标服务器是基于权重、短连接数及响应时间这三个维度确定的,使得最终确定的目标服务器在综合各方面考虑具有最佳的处理状态,一方面使得各个候选服务器的负载更为均衡,另一方面使得该待处理的数据请求可以及时得到处理。
图4是本发明一实施例中统计每个候选服务器已建立的短连接数的一流程图,在一个实施例中,在本端创建与每个服务器对应的键值队列,将创建的键值队列保存在本地内存中,在各服务器上负载的短连接数有变化时,会向本端发送短连接数的更新消息,本端可根据该更新消息实时更新存储在本地内存中的键值队列,在需要统计每个候选服务器已建立的短连接数时,读取该键值队列中键值的个数即可,如图4所示,该实施例在包括上述步骤S101、S103至S105的基础上,上述步骤S102进一步包括以下步骤S1021至S1024。
S1021、创建与每个服务器对应的键值队列。在该实施例中,该键值队列可以用map表示,将所述键值队列map保存在内存中,分别为map1、map2、…、mapN,N为所述候选服务器的标识。
S1022、接收该候选服务器下发的短连接的连接状态。
在该实施例中,该短连接的连接状态为增加或者减少。
S1023、根据接收的连接状态实时更新对应的键值队列。
S1024、接收到待处理的数据请求时,获取所述键值队列中键值的个数并将获取的所述个数确定为所述短连接的个数。
其中,每个所述候选服务器在接收到一个短连接的数据请求或者结束一个短连接的数据请求时,会将该连接状态发送给本端客户端,本端在接收到所述候选服务器下发的短连接的连接状态为减少时,将所述键值队列中的map-1,当本端在接收到所述候选服务器下发的短连接的连接状态为增加时,将所述键值队列map+1。
图5是本发明另一实施例中统计每个候选服务器已建立的短连接数的一流程图,在另一实施例中,各个候选服务器上存储有该键值队列,各候选服务上负载的短连接数有变化时会实时更新该键值队列,在需要统计每个候选服务器已建立的短连接数时,本端向对应的候选服务器发送请求键值队列的消息并接收对应的候选服务器反馈的消息,解析反馈的消息中的键值的个数即可得到对应候选服务器已建立的短连接数,如图5所示,该实施例在包括上述步骤S101、S103至S105的基础上,上述步骤S102进一步包括以下步骤S1025及S1026。
S1025、接收每个该候选服务器发送的携带有键值队列数值信息的数据,该键值队列数值信息为对应的候选服务器通过键值队列实时统计的短连接数的个数。
S1026、解析所述键值队列数值信息中键值的个数,将解析得到的所述键值的个数确定为对应服务器已建立的短连接的个数。
其中,上述图4和图5对应的实施例给出了两种确定候选服务器上已建立的短连接个数的实施方法,在实施本发明时可以选择其中之一。
图6是本发明一施例中计算每个候选服务器处理最近一次数据请求的响应时间的一流程图,在一个实施例中,如图6所示,该实施例在包括上述步骤S101、S102、S104及S105的基础上,上述步骤S103进一步包括以下步骤S1031及S1032。
S1031、获取最近一次向该候选服务器发送待处理的请求数据的发送时刻及接收到响应数据的接收时刻。
S1032、将该接收时刻与该发送时刻的差值确定为对应候选服务器的响应时间。
在其他实施例中,该实施例在包括上述步骤S101、S102、S104及S105的基础上,上述步骤S103包括以下步骤:
同时向每个该候选服务器发送相同的测试请求数据,记录发送该测试请求数据的发送时刻;
接收到该候选服务器反馈的响应数据时,记录接收该响应数据的接收时刻;
将该接收时刻与该发送时刻的差值确定为对应候选服务器的响应时间。
本实施例给出的两种确定响应时间的方法,分别对应图4和图5中的统计每个候选服务器已建立的短连接数的实施方法。
在其中一个实施例中,在所述步骤S105的步骤将所述将待处理的数据请求发送至所述目标服务器的步骤之前,所述基于多维度的负载均衡方法还包括:
判断所述待处理的数据请求是否为短连接类型的数据请求,若是,则将待处理的数据请求发送至所述目标服务器。
在其中一个实施例中,判断所述待处理的数据请求是否为短连接类型的数据请求的步骤包括以下步骤:
获取所述待处理的数据请求的协议类型;
获取所述待处理的数据请求的协议头标识;
当所述协议类型为http协议,且所述协议头标识中keepalive的取值为true时,判断所述待处理的数据请求为短连接类型的数据请求。
在另一实施例中,判断所述待处理的数据请求是否为短连接类型的数据请求的步骤包括以下步骤:
获取所述待处理的数据请求的协议类型;
获取所述待处理的数据请求的协议头标识;
当所述协议类型为http协议,且所述协议头标识中keepalive的取值为空时,判断所述待处理的数据请求为短连接类型的数据请求。
由于短连接和长连接的数据请求处理的过程不同,且在http协议中,大多数数据请求为短连接类型的数据请求,本实施例通过限定待处理的数据请求为短连接类型的数据请求,针对同一类型短连接的数据请求进行相同的处理,使得根据同类型的数据请求选举出的目标服务器更为准确。
在其中一个实施例中,所述步骤S105还包括以下步骤:
每间隔预设时间段,获取在所述预设时间段内生成的待处理的数据请求;
通过多线程同步计算所述待处理的数据请求对应的目标服务器;
根据所述待处理的数据请求的生成时间,依次将所述待处理的数据请求发送给对应的目标服务器。
在其中一个实施例中,所述预设的时间段的单位为毫秒,可以根据待处理的数据量的来人为设定,该待处理的数据量与该预设时间的长短成反比。
本实施例通过多线程同步计算所述待处理的数据请求对应的目标服务器,提高了目标服务器的确定效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于多维度的负载均衡装置,该基于多维度的负载均衡装置与上述实施例中基于多维度的负载均衡方法一一对应。图7是本发明一实施例中基于多维度的负载均衡装置的结构示意图,如图7所示,该基于多维度的负载均衡装置100包括查询模块11、统计模块12、计算模块13、目标服务器确定模块14和发送模块15。各功能模块详细说明如下:
查询模块11,用于接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重。
在其中一个实施例中,所述待处理的数据请求可以是超文本传输协议(http)类型的数据请求。其中,与各个服务器对应预设的权重可以通过人为设定来确定,可以将硬件条件更好、处理能力更强的服务器的权重设置的更高一些,以使得处理能力强的服务器可以负载更多的数据访问量。
统计模块12,用于统计每个候选服务器已建立的短连接数。
在本实施例中,该统计模块12统计每个候选服务器已建立的短连接数有两种方式可以实现:
(1)、在本端创建与每个服务器对应的键值队列,将创建的键值队列保存在本地内存中,在各服务器上负载的短连接数有变化时,会向本端发送短连接数的更新消息,本端可根据该更新消息实时更新存储在本地内存中的键值队列,在需要统计每个候选服务器已建立的短连接数时,读取该键值队列中键值的个数即可。
(2)、各个候选服务器上存储有该键值队列,各候选服务上负载的短连接数有变化时会实时更新该键值队列,在需要统计每个候选服务器已建立的短连接数时,本端向对应的候选服务器发送请求键值队列的消息并接收对应的候选服务器反馈的消息,解析反馈的消息中的键值的个数即可得到对应候选服务器已建立的短连接数。
计算模块13,用于计算每个候选服务器处理最近一次数据请求的响应时间。
在其中一个实施例中,所述响应时间的确定可以在同一时刻单独发一个测试请求数据给每个所述候选服务器,根据接收所述候选服务器反馈的响应数据的时刻确定为所述响应时间,其效果在于使得各个服务器处理请求数据的时间、处理数据的内容均相同,排除了在不同时间下的环境因素对所述响应时间的影响,使得计算得到的对应服务器的响应时间十分准确。
在其他实施例中,也可以根据最近一次向候选服务器发送的实际需要处理的请求数据测试对应候选服务器的响应时间,通过将最近一次向候选服务器发送的待处理的数据请求确定为测试数据,使得所述待处理的数据请求既可以作为实际处理的数据,又可以作为测试对应候选服务器响应时间的测试用例,通过最少的数据量即可计算出对应候选服务器的响应时间,减少了网络中的数据冗余,提高了响应时间的计算效率。
目标服务器确定模块14,用于根据该权重、该短连接数及该响应时间从所述候选服务器中确定一目标服务器。
发送模块15,用于将该待处理的数据请求发送至该目标服务器。
本实施例通过查询每个候选服务器的权重、统计各个候选服务器已建立的短连接数、计算各个候选服务器处理最近一次数据请求的响应时间,并根据该权重、该短连接数及该响应时间确定目标服务器,然后将该待处理的请求数据发送至该目标服务器,使得最终确定的目标服务器是基于权重、短连接数及响应时间这三个维度确定的,使得最终确定的目标服务器在综合各方面考虑具有最佳的处理状态,一方面使得各个候选服务器的负载更为均衡,另一方面使得该待处理的数据请求可以及时得到处理。
在其中一个实施例中,该统计模块12进一步包括:
键值队列创建单元,用于创建与每个服务器对应的键值队列。在该实施例中,该键值队列可以用map表示,将所述键值队列map保存在内存中,分别为map1、map2、…、mapN,N为所述候选服务器的标识。
连接状态接收单元,用于接收该候选服务器下发的短连接的连接状态,该短连接的连接状态为增加或者减少。
键值队列更新单元,用于根据接收的连接状态实时更新对应的键值队列。
个数获取单元,用于接收到待处理的数据请求时,获取所述键值队列中键值的个数并将获取的所述个数确定为所述短连接的个数。
其中,每个所述候选服务器在接收到一个短连接的数据请求或者结束一个短连接的数据请求时,会将该连接状态发送给本端客户端,本端在接收到所述候选服务器下发的短连接的连接状态为减少时,将所述键值队列中的map-1,当本端在接收到所述候选服务器下发的短连接的连接状态为增加时,将所述键值队列map+1。
在其中一个实施例中,该统计模块12包括:
数据接收单元,用于接收每个该候选服务器发送的携带有键值队列数值信息的数据,该键值队列数值信息为对应的候选服务器通过键值队列实时统计的短连接数的个数;
个数解析单元,用于解析所述键值队列数值信息中键值的个数,将解析得到的所述键值的个数确定为对应服务器已建立的短连接的个数。
在其中一个实施例中,该计算模块13进一步包括:
发送时刻记录单元,用于同时向每个该候选服务器发送相同的测试请求数据,记录发送该测试请求数据的发送时刻;
接收时刻记录单元,用于接收到该候选服务器反馈的响应数据时,记录接收该响应数据的接收时刻;
响应时间确定单元,用于将该接收时刻与该发送时刻的差值确定为对应候选服务器的响应时间。
在其中一个实施例中,该计算模块13进一步包括:
接收时刻获取单元,用于获取最近一次向该候选服务器发送待处理的请求数据的发送时刻及接收到响应数据的接收时刻;
该响应时间确定单元还用于将该接收时刻与该发送时刻的差值确定为对应候选服务器的响应时间。
在其中一个实施例中,该目标服务器确定模块14进一步包括:
健康指标值计算单元,用于根据各个候选服务器的权重、该短连接数及该响应时间计算各个候选服务器的健康指标值;
服务器查询单元,用于查询计算出的最大健康指标值对应的候选服务器;
目标服务器确定单元,用于将查询到的该候选服务器确定为该目标服务器。
在其中一个实施例中,该健康指标值计算单元具体用于通过以下公式计算所述候选服务器的健康指标值:
(Z1+Z2+…Zn)/n=M;
((M-Z1)+(M-Z2)+…(M-Zn))/n=S;
(y1+y2+…yn)/k=P;
(x1+x2+…xn)=G;
O=xn/G*(S/P);
其中,Zn表示第n个候选服务器的响应时间,M表示所述候选服务器的平均响应时间,S、P和G表示中间变量,k表示单位时间,yn表示第n个候选服务器的短连接个数,xn表示第n个候选服务器的权重,O表示计算得到的第n个候选服务器的健康指标值,其中,n≥1,且n为整数。
在其中一个实施例中,该基于多维度的负载均衡装置还包括:
判断模块,用于判断所述待处理的数据请求是否为短连接类型的数据请求,若是,则将待处理的数据请求发送至所述目标服务器。
在其中一个实施例中,判断模块包括以下:
协议类型获取单元,用于获取所述待处理的数据请求的协议类型;
协议头标识获取单元,用于获取所述待处理的数据请求的协议头标识;
判断单元,用于当所述协议类型为http协议,且所述协议头标识中keepalive的取值为true或为空时,判断所述待处理的数据请求为短连接类型的数据请求。
由于短连接和长连接的数据请求处理的过程不同,且在http协议中,大多数数据请求为短连接类型的数据请求,本实施例通过限定待处理的数据请求为短连接类型的数据请求,针对同一类型短连接的数据请求进行相同的处理,使得根据同类型的数据请求选举出的目标服务器更为准确。
在其中一个实施例中,所述发送模块15还包括:
数据请求获取单元,用于每间隔预设时间段,获取在所述预设时间段内生成的待处理的数据请求;
该目标服务器确定模块14具体用于通过多线程同步计算所述待处理的数据请求对应的目标服务器;
该发送模块15具体用于根据所述待处理的数据请求的生成时间,依次将所述待处理的数据请求发送给对应的目标服务器。
在其中一个实施例中,所述预设的时间段的单位为毫秒,可以根据待处理的数据量的来人为设定,该待处理的数据量与该预设时间的长短成反比。
本实施例通过多线程同步计算所述待处理的数据请求对应的目标服务器,提高了目标服务器的确定效率。
本实施例提供的基于多维度的负载均衡装置通过查询每个候选服务器的权重、统计各个候选服务器已建立的短连接数、计算各个候选服务器处理最近一次数据请求的响应时间,并根据该权重、该短连接数及该响应时间确定目标服务器,然后将该待处理的请求数据发送至该目标服务器,使得最终确定的目标服务器是基于权重、短连接数及响应时间这三个维度确定的,使得最终确定的目标服务器在综合各方面考虑具有最佳的处理状态,一方面使得各个候选服务器的负载更为均衡,另一方面使得该待处理的数据请求可以及时得到处理。
关于基于多维度的负载均衡装置的具体限定可以参见上文中对于基于多维度的负载均衡方法的限定,在此不再赘述。上述基于多维度的负载均衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于多维度的负载均衡方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于多维度的负载均衡方法的步骤,例如图2所示的步骤101至步骤105。或者,处理器执行计算机程序时实现上述实施例中基于多维度的负载均衡装置的各模块/单元的功能,例如图7所示模块11至模块15的功能。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于多维度的负载均衡方法的步骤,例如图2所示的步骤101至步骤105。或者,计算机程序被处理器执行时实现上述实施例中基于多维度的负载均衡装置的各模块/单元的功能,例如图7所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于多维度的负载均衡方法,其特征在于,所述方法包括:
接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重;
统计每个候选服务器已建立的短连接数;
计算每个候选服务器处理最近一次数据请求的响应时间;
根据所述权重、所述短连接数及所述响应时间从所述候选服务器中确定一目标服务器;
将所述待处理的数据请求发送至所述目标服务器。
2.根据权利要求1所述的基于多维度的负载均衡方法,其特征在于,所述统计每个候选服务器已建立的短连接数的步骤包括:
创建与每个服务器对应的键值队列;
接收所述候选服务器下发的短连接的连接状态;
根据接收的所述连接状态实时更新对应的键值队列;
接收到待处理的数据请求时,获取所述键值队列中键值的个数并将获取的所述个数确定为所述短连接的个数。
3.根据权利要求1所述的基于多维度的负载均衡方法,其特征在于,所述统计每个候选服务器已建立的短连接数的步骤包括:
接收每个所述候选服务器发送的携带有键值队列数值信息的数据,所述键值队列数值信息为对应的候选服务器通过键值队列实时统计的短连接数的个数;
解析所述键值队列数值信息中键值的个数,将解析得到的所述键值的个数确定为对应服务器已建立的短连接的个数。
4.根据权利要求1所述的基于多维度的负载均衡方法,其特征在于,所述计算每个候选服务器处理最近一次数据请求的响应时间的步骤包括:
同时向每个所述候选服务器发送相同的测试请求数据,记录发送所述测试请求数据的发送时刻;
接收到所述候选服务器反馈的响应数据时,记录接收所述响应数据的接收时刻;
将所述接收时刻与所述发送时刻的差值确定为对应候选服务器的响应时间。
5.根据权利要求1所述的基于多维度的负载均衡方法,其特征在于,,所述计算每个候选服务器处理最近一次数据请求的响应时间的步骤包括:
获取最近一次向所述候选服务器发送待处理的请求数据的发送时刻及接收到响应数据的接收时刻;
将所述接收时刻与所述发送时刻的差值确定为对应候选服务器的响应时间。
6.根据权利要求1所述的基于多维度的负载均衡方法,其特征在于,所述根据所述权重、所述短连接数及所述响应时间从所述候选服务器中确定一目标服务器的步骤包括:
根据各个候选服务器的权重、所述短连接数及所述响应时间计算各个候选服务器的健康指标值;
查询计算出的最大健康指标值对应的候选服务器;
将查询到的所述候选服务器确定为所述目标服务器。
7.根据权利要求6所述的基于多维度的负载均衡方法,其特征在于,通过以下公式计算所述候选服务器的健康指标值:
(Z1+Z2+…Zn)/n=M;
((M-Z1)+(M-Z2)+…(M-Zn))/n=S;
(y1+y2+…yn)/k=P;
(x1+x2+…xn)=G;
O=xn/G*(S/P);
其中,Zn表示第n个候选服务器的响应时间,M表示所述候选服务器的平均响应时间,S、P和G表示中间变量,k表示单位时间,yn表示第n个候选服务器的短连接个数,xn表示第n个候选服务器的权重,O表示计算得到的第n个候选服务器的健康指标值,其中,n≥1,且n为整数。
8.一种基于多维度的负载均衡装置,其特征在于,所述装置包括:
查询模块,用于接收到待处理的数据请求时,从初始化的配置文件中查询与每个候选服务器对应预设的权重;
统计模块,用于统计每个候选服务器已建立的短连接数;
计算模块,用于计算每个候选服务器处理最近一次数据请求的响应时间;
目标服务器确定模块,用于根据所述权重、所述短连接数及所述响应时间从所述候选服务器中确定一目标服务器;
发送模块,用于将所述待处理的数据请求发送至所述目标服务器。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述基于多维度的负载均衡方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述基于多维度的负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911342427.9A CN111176843A (zh) | 2019-12-23 | 2019-12-23 | 基于多维度的负载均衡方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911342427.9A CN111176843A (zh) | 2019-12-23 | 2019-12-23 | 基于多维度的负载均衡方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111176843A true CN111176843A (zh) | 2020-05-19 |
Family
ID=70652094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911342427.9A Pending CN111176843A (zh) | 2019-12-23 | 2019-12-23 | 基于多维度的负载均衡方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176843A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597054A (zh) * | 2020-07-24 | 2020-08-28 | 北京卡普拉科技有限公司 | 一种信息处理方法、系统、电子设备及存储介质 |
CN112199043A (zh) * | 2020-09-30 | 2021-01-08 | 深圳壹账通智能科技有限公司 | 一种服务器选择方法、装置、电子设备和存储介质 |
CN113076192A (zh) * | 2021-03-05 | 2021-07-06 | 深圳前海微众银行股份有限公司 | 一种负载均衡方法及装置、设备、存储介质 |
CN113900731A (zh) * | 2021-09-30 | 2022-01-07 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
CN114924866A (zh) * | 2021-04-30 | 2022-08-19 | 华为技术有限公司 | 数据处理方法和相关设备 |
CN115174691A (zh) * | 2022-06-22 | 2022-10-11 | 平安普惠企业管理有限公司 | 基于页面请求的大数据加载方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106938A1 (en) * | 2003-11-14 | 2006-05-18 | Cisco Systems, Inc. | Load balancing mechanism using resource availability profiles |
US20110138052A1 (en) * | 2009-12-07 | 2011-06-09 | Microsoft Corporation | Load Balancing Using Redirect Responses |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信系统 |
CN110233860A (zh) * | 2018-03-05 | 2019-09-13 | 杭州萤石软件有限公司 | 一种负载均衡方法、装置和系统 |
-
2019
- 2019-12-23 CN CN201911342427.9A patent/CN111176843A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106938A1 (en) * | 2003-11-14 | 2006-05-18 | Cisco Systems, Inc. | Load balancing mechanism using resource availability profiles |
US20110138052A1 (en) * | 2009-12-07 | 2011-06-09 | Microsoft Corporation | Load Balancing Using Redirect Responses |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信系统 |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN110233860A (zh) * | 2018-03-05 | 2019-09-13 | 杭州萤石软件有限公司 | 一种负载均衡方法、装置和系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597054A (zh) * | 2020-07-24 | 2020-08-28 | 北京卡普拉科技有限公司 | 一种信息处理方法、系统、电子设备及存储介质 |
CN111597054B (zh) * | 2020-07-24 | 2020-12-04 | 北京卡普拉科技有限公司 | 一种信息处理方法、系统、电子设备及存储介质 |
CN112199043A (zh) * | 2020-09-30 | 2021-01-08 | 深圳壹账通智能科技有限公司 | 一种服务器选择方法、装置、电子设备和存储介质 |
CN113076192A (zh) * | 2021-03-05 | 2021-07-06 | 深圳前海微众银行股份有限公司 | 一种负载均衡方法及装置、设备、存储介质 |
WO2022183802A1 (zh) * | 2021-03-05 | 2022-09-09 | 深圳前海微众银行股份有限公司 | 一种负载均衡方法及装置、设备、存储介质、计算机程序产品 |
CN113076192B (zh) * | 2021-03-05 | 2023-09-01 | 深圳前海微众银行股份有限公司 | 一种负载均衡方法及装置、设备、存储介质 |
CN114924866A (zh) * | 2021-04-30 | 2022-08-19 | 华为技术有限公司 | 数据处理方法和相关设备 |
CN113900731A (zh) * | 2021-09-30 | 2022-01-07 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
CN113900731B (zh) * | 2021-09-30 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
CN115174691A (zh) * | 2022-06-22 | 2022-10-11 | 平安普惠企业管理有限公司 | 基于页面请求的大数据加载方法、装置、设备及介质 |
CN115174691B (zh) * | 2022-06-22 | 2023-09-05 | 山西数字政府建设运营有限公司 | 基于页面请求的大数据加载方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176843A (zh) | 基于多维度的负载均衡方法、装置及相关设备 | |
CN108376112B (zh) | 压力测试方法、装置及可读介质 | |
CN108449237B (zh) | 网络性能监测方法、装置、计算机设备和存储介质 | |
CA3128540C (en) | Cache system hotspot data access method, apparatus, computer device and storage medium | |
CN108366012B (zh) | 一种社交关系建立方法、装置及电子设备 | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN111741112A (zh) | 基于人工智能的文件下载方法、装置、设备和存储介质 | |
CN114461389A (zh) | 服务器集群的负载均衡方法、装置及电子设备 | |
CN109213965B (zh) | 一种系统容量预测方法、计算机可读存储介质及终端设备 | |
CN112051771B (zh) | 多云数据采集方法、装置、计算机设备和存储介质 | |
CN109218131B (zh) | 网络监控方法、装置、计算机设备和存储介质 | |
CN110784336A (zh) | 基于物联网的多设备智能定时延时场景设置方法及系统 | |
CN108063814B (zh) | 一种负载均衡方法及装置 | |
CN109460301A (zh) | 一种流数据负载的弹性资源配置方法及系统 | |
CN110543509B (zh) | 用户访问数据的监控系统、方法、装置及电子设备 | |
CN111598390B (zh) | 服务器高可用性评估方法、装置、设备和可读存储介质 | |
WO2019169727A1 (zh) | 网络流量测试方法、装置、设备以及计算机可读存储介质 | |
CN114912627A (zh) | 推荐模型训练方法、系统、计算机设备及存储介质 | |
CN115239450A (zh) | 财务数据处理方法、装置、计算机设备及存储介质 | |
CN110764975A (zh) | 设备性能的预警方法、装置及监控设备 | |
CN106533730B (zh) | Hadoop集群组件指标的采集方法及装置 | |
CN112685157B (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN113377866A (zh) | 一种虚拟化数据库代理服务的负载均衡方法及装置 | |
CN113282417A (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
CN115794806A (zh) | 金融数据的网格化处理系统及方法、装置、计算设备 |
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 |