CN114553881A - 多数据中心流量调度方法及系统 - Google Patents

多数据中心流量调度方法及系统 Download PDF

Info

Publication number
CN114553881A
CN114553881A CN202210015258.3A CN202210015258A CN114553881A CN 114553881 A CN114553881 A CN 114553881A CN 202210015258 A CN202210015258 A CN 202210015258A CN 114553881 A CN114553881 A CN 114553881A
Authority
CN
China
Prior art keywords
physical server
request
network delay
server
delay value
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
Application number
CN202210015258.3A
Other languages
English (en)
Other versions
CN114553881B (zh
Inventor
陈捷
王任铮
张峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ucloud Technology Co ltd
Original Assignee
Ucloud Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN202210015258.3A priority Critical patent/CN114553881B/zh
Publication of CN114553881A publication Critical patent/CN114553881A/zh
Application granted granted Critical
Publication of CN114553881B publication Critical patent/CN114553881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations

Abstract

本发明涉及计算机网络技术领域,公开了一种多数据中心流量调度方法及系统。多数据中心流量调度方法包括:API路由接收客户端发送的请求,并根据配置的路由策略,将请求转发至对应虚拟服务器;虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器的事务数量与网络延迟值;并根据事务数量与网络延迟值,确定处理请求的目标物理服务器,并将请求转发至目标物理服务器进行处理;虚拟服务器基于目标物理服务器的请求处理结果,更新目标物理服务器当前的事务数量与网络延迟值。本发明在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式。

Description

多数据中心流量调度方法及系统
技术领域
本发明涉及计算机网络领域,尤其涉及一种多数据中心流量调度方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长。随着云计算的兴起,企业后台服务通常使用负载均衡服务器将来自外部的高并发请求发送到服务集群来处理,以达到对外部请求的快速准确响应,其中的负载均衡服务器简言之就是一种将大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间的后台服务。。
在现有的技术中,现有的负载均衡服务器如LVS(Linux Virtual Server,Linux虚拟服务器)、Nginx、Haproxy等都已能够做到消息的实时转发和一定程度上的负载均衡,但这些负载均衡服务器都只能够支持一种设定的负载均衡策略,且现有负载均衡策略未考虑到服务器距离因素影响。
发明内容
本发明的主要目的在于提供一种多数据中心流量调度方法及系统,旨在解决现有负载均衡模式中未考虑到服务器距离因素影响服务器处理请求效率的技术问题。
本发明第一方面提供了一种多数据中心流量调度方法,包括:
API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;
所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;
所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值。
可选的,在本发明第一方面的第一种实现方式中,在所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理之前,还包括:
所述虚拟服务器判断所述请求是否为重新进入的请求;
若所述请求是重新进入的请求,则对所述请求对应的物理服务器的事务数量执行减1操作。
可选的,在本发明第一方面的第二种实现方式中,所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理包括:
所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
可选的,在本发明第一方面的第三种实现方式中,所述响应时间的计算公式如下:
若未设置各所述物理服务器的权重值,则所述响应时间的计算公式为:
T=N*D2
若对各所述物理服务器设置有权重值,则所述响应时间的计算公式为:
Figure BDA0003459580690000021
其中,T表示响应时间,N表示事务数量,D表示网络延迟值,W表示权重值。
可选的,在本发明第一方面的第四种实现方式中,所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值包括:
所述虚拟服务器获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
可选的,在本发明第一方面的第五种实现方式中,所述计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值包括:
基于所述网络延迟值的分布范围,依次均分出若干个存储桶,每个存储桶用于存储落入该存储桶对应数值范围内的网络延迟值;
计算在各存储桶之前的存储桶中的最大计数值与该存储桶的计数值的和值,并以所述和值更新所述存储桶的计数值;
将最后一个存储桶的计数值除以二得到计数值中位数,以所述计数值中位数作为存储桶的计数值找出对应的存储桶,并计算该存储桶中网络延迟值的中位数作为所述目标物理服务器的网络延迟值。
可选的,在本发明第一方面的第六种实现方式中,在所述API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器之前,还包括:
在路由策略同步的初始阶段或增量同步出现异常时,主API路由停止增量同步,并将待同步数据打包成全量数据包并发送至从API路由的同步代理组件,其中,所述主API路由与所述从API路由分别位于不同的数据中心;
所述同步代理组件将所述全量数据包中的数据写入一个后端数据库中,并交换当前业务使用的前端数据库与所述后端数据库的访问地址。
本发明第二方面提供了一种多数据中心流量调度系统,包括:
API路由,用于接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
虚拟服务器,用于在接收到所述请求后进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值;
物理服务器,用于接收所述虚拟服务器转发的请求并对所述请求进行处理以及将处理结果返回所述虚拟服务器。
可选的,在本发明第二方面的第二种实现方式中,所述虚拟服务器还用于:
根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
可选的,在本发明第二方面的第三种实现方式中,所述虚拟服务器还用于:
获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
本发明提供的技术方案中,API路由接收客户端发送的请求,并根据配置的路由策略,将请求转发至对应虚拟服务器;虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器的事务数量与网络延迟值;并根据事务数量与网络延迟值,确定处理请求的目标物理服务器,并将请求转发至目标物理服务器进行处理;虚拟服务器基于目标物理服务器的请求处理结果,更新目标物理服务器当前的事务数量与网络延迟值。本发明在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式。
附图说明
图1为本发明实施例中多数据中心流量调度方法的第一个实施例示意图;
图2为本发明实施例中多数据中心流量调度方法的第二个实施例示意图;
图3为本发明实施例中多数据中心流量调度方法的第三个实施例示意图;
图4为本发明实施例中多数据中心流量调度系统的一个实施例示意图。
具体实施方式
本发明实施例提供了一种多数据中心流量调度方法及系统,在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中多数据中心流量调度方法的第一个实施例包括:
101、API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
本实施例中,客户端发送请求,经过域名解析后DNS返回离客户端最近集群的IP地址,客户端将请求发送至该地址的API路由,API路由根据配置的路由策略将请求发送至对应的虚拟服务器。
本实施例中,API路由用于接收客户端发送的请求,并进行请求转发;路由策略是API路由转发的依据。
102、虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;
本实施例中,虚拟服务器具有手动配置模式与自适应负载均衡模式两种模式,其中手动配置模式根据预置配置信息进行固定的转发,自适应负载均衡模式根据请求与物理服务器的实际那个进行自适应地转发。
本实施例中,负载均衡共享内存即nginx的共享内存;事务数量是物理服务器当前需要处理的请求数;网络延迟值是物理服务器的网络延迟,用于表征物理服务器的响应速度。
103、所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;
本实施例中,目标物理服务器是基于各物理服务器的事务数量与网络延迟值选择的最优物理服务器。
104、所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值。
本实施例中,虚拟服务器基于目标物理服务器的请求处理结果,更新nginx的共享内存中存储的目标物理服务器的事务数量与网络延迟值。
本发明实施例中,API路由接收客户端发送的请求,并根据配置的路由策略,将请求转发至对应虚拟服务器;虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器的事务数量与网络延迟值;并根据事务数量与网络延迟值,确定处理请求的目标物理服务器,并将请求转发至目标物理服务器进行处理;虚拟服务器基于目标物理服务器的请求处理结果,更新目标物理服务器当前的事务数量与网络延迟值。本发明在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式。
请参阅图2,本发明实施例中多数据中心流量调度方法的第二个实施例包括:
201、所述虚拟服务器判断所述请求是否为重新进入的请求;
本实施例中,当请求之前进入过物理服务器进行处理,但处理失败,需要重新进入虚拟服务器进行处理,则该请求为重新进入的请求。
202、若所述请求是重新进入的请求,则对所述请求对应的物理服务器的事务数量执行减1操作;
本实施例中,在请求重新进入虚拟服务器之前,需要将之前进入的物理服务器的事务数量减一。
203、API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
204、虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;
205、所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;
可选的,在一实施例中,上述步骤205包括:
所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
本实施例中,物理服务器的响应时间是综合考虑网络延迟与物理服务器当前处理事务进度两方面因素的评价指标。
可选的,在一实施例中,所述响应时间的计算公式如下:
若未设置各所述物理服务器的权重值,则所述响应时间的计算公式为:
T=N*D2
若对各所述物理服务器设置有权重值,则所述响应时间的计算公式为:
Figure BDA0003459580690000081
其中,T表示响应时间,N表示事务数量,D表示网络延迟值,W表示权重值。
本实施例中,权重值用于平衡各物理服务器之间的比重,若使用1/W进行计算,则可能导致响应时间的值过小,在计算过程中损失精度,因此采用10000进行放大。
本实施例中,权重值由人工预先设置,可以根据每台物理服务器的性能或使用者需求进行设置,提供一个人工干预选项。
206、所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值。
本发明实施例中,对重新进入的请求进行事务数量修正,API路由接收客户端发送的请求,并根据配置的路由策略,将请求转发至对应虚拟服务器;虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器的事务数量与网络延迟值;并根据事务数量与网络延迟值,确定处理请求的目标物理服务器,并将请求转发至目标物理服务器进行处理;虚拟服务器基于目标物理服务器的请求处理结果,更新目标物理服务器当前的事务数量与网络延迟值。本发明在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式,对重新进入的请求进行事务数量修正,保证了计算结果的准确性,响应时间综合考虑了网络延迟与物理服务器当前处理事务进度两个因素,并提供了一个人工干预选项,更加合理地评价服务器处理新请求效率的高低,提高了流量调度的效率。
请参阅图3,本发明实施例中多数据中心流量调度方法的第三个实施例包括:
301、在路由策略同步的初始阶段或增量同步出现异常时,主API路由停止增量同步,并将待同步数据打包成全量数据包并发送至从API路由的同步代理组件,其中,所述主API路由与所述从API路由分别位于不同的数据中心。
本实施例中,全量同步是在路由策略同步的初始阶段或周期性地全量把路由策略数据拷贝至从API路由;增量同步是同步某一时间点后的增量数据。
本实施例中,预先配置主API路由与从API路由,更新路由策略时更新主API路由中的路由策略,并同步至各从API路由。
本实施例中,同步代理组件是API路由中进行同步处理的组件,接收主API路由发送的同步命令与待同步数据,执行相应的全量同步命令或增量同步命令。
本实施例中,全量数据包是全量数据的包文件,全量数据包的打包方法不限,全量数据包的格式不限。
可选的,在一实施例中,在路由策略同步的初始阶段,或者增量同步出现中断、数据错误等异常时需要进行全量。在进行全量同步时增量同步会停止,在源端利用Redis的机制将数据打包成文件然后传输到目的段的同步代理组件,同步代理组件在接收到全量数据之后先将数据写到一个单独的Redis数据库中,即后台缓冲区(back buffer),业务正在使用的Redis数据库即前台缓冲区(front buffer),将两者进行访问地址进行交换,完成全量同步过程。
可选的,在一实施例中,在增量同步过程中同步代理组件伪装成源端Redis集群的一个从节点,接收全量同步之后的增量修改数据,然后写入到目标Redis集群中。
302、所述同步代理组件将所述全量数据包中的数据写入一个后端数据库中,并交换当前业务使用的前端数据库与所述后端数据库的访问地址;
本实施例中,访问地址是连接数据库的地址。
303、API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
304、虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;
305、所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;
306、所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值。
可选的,在一实施例中,上述步骤306包括:
所述虚拟服务器获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
本实施例中,若请求数为1,则表明该次连接为首次连接,该次连接写的网络延迟值为首次连接的网络延迟;若请求数大于1,则表明该次连接为长连接,长连接时不需要重复测网络延迟值,直接应用首次连接时的网络延迟值。
本实施例在,将首次网络延迟值放入对应数值范围的存储桶中。
本实施例中,在处理完请求事务后,需对物理服务器的事务数量进行减一。
可选的,在一实施例中,所述计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值包括:
基于所述网络延迟值的分布范围,依次均分出若干个存储桶,每个存储桶用于存储落入该存储桶对应数值范围内的网络延迟值;
计算在各存储桶之前的存储桶中的最大计数值与该存储桶的计数值的和值,并以所述和值更新所述存储桶的计数值;
将最后一个存储桶的计数值除以二得到计数值中位数,以所述计数值中位数作为存储桶的计数值找出对应的存储桶,并计算该存储桶中网络延迟值的中位数作为所述目标物理服务器的网络延迟值。
本实施例中,最大计数值是小于当前存储桶对应的数值范围的所有存储桶中的计数值的最大值。
本实施例中,更新后的存储桶的计数值是该存储桶之前的所有存储桶更新前的计数值累加值与该存储桶更新前的计数值之和。
本实施例中,使用网络延迟的中位数而非网络延迟的即时值作为影响因子,提高了整个负载均衡系统的稳定性,防止由于网络的抖动,即时网络延迟增加,导致请求发往处理请求效率更低的后端服务器,并且在一段时间内网络恢复正常后的服务器仍然无法接收请求并及时更新网络延迟的情况。同时稳定的网络延迟数据也能更为客观反映请求端到接收端服务器距离的远近。该操作对网络延迟这个影响因子做了一级平滑处理,一定程度上保证了系统的稳定性。
本实施例中,使用当前存储桶之前的存储桶的计数值的最大值作为当前存储桶新的计数值,取中位数即50%分位数,这样在取50%分位数时,可以保证中位数计算结果不过于发散,缩小了每一次计算结果的差值,丢失的精度也因为后续按比例求值可以忽略不计,从而在没有增加额外时间、空间开销的条件下,对网络延迟这个影响因子做了二级平滑处理,保证在性能测试以及实际生产环境中各台服务器尤其是在处理高并发请求的情况下保持了极大的稳定性。
本发明实施例中,以全量同步和增量同步的方式同步路由策略,API路由接收DNS发送的请求,并根据配置的路由策略,将请求转发至对应虚拟服务器;虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器的事务数量与网络延迟值;并根据事务数量与网络延迟值,确定处理请求的目标物理服务器,并将请求转发至目标物理服务器进行处理;虚拟服务器基于目标物理服务器的请求处理结果,更新目标物理服务器当前的事务数量与网络延迟值。本发明在多数据中心场景下支持根据后端物理服务器的网络延迟以及服务器处理请求的能力自适应调整的负载均衡模式,实现了集群间数据的全量同步与增量同步,在路由策略全量同步过程中,实现了数据的快照隔离,使得正在进行的业务不受影响。本发明使用网络延迟的中位数作为影响因子,提高了整个负载均衡系统的稳定性,中位数的计算方法极大地节省了内存空间并保证数据在一定准确度范围内。
上面对本发明实施例中多数据中心流量调度方法进行了描述,下面对本发明实施例中多数据中心流量调度系统进行描述,请参阅图4,本发明实施例中多数据中心流量调度系统一个实施例包括:
API路由,用于接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
虚拟服务器,用于在接收到所述请求后进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值;
物理服务器,用于接收所述虚拟服务器转发的请求并对所述请求进行处理以及将处理结果返回所述虚拟服务器。
本实施例中,每个数据中心包含有一个API路由、多个虚拟服务器以及多个物理服务器,如图4所示。一台虚拟服务器对应多个物理服务器,且各虚拟服务器对应的物理服务器分别位于不同的数据中心,从而实现异地多活。
可选的,在一实施例中,所述虚拟服务器还用于:
判断所述请求是否为重新进入的请求;
若所述请求是重新进入的请求,则对所述请求对应的物理服务器的事务数量执行减1操作。
可选的,在一实施例中,所述虚拟服务器还用于:
根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
可选的,在一实施例中,所述响应时间的计算公式如下:
若未设置各所述物理服务器的权重值,则所述响应时间的计算公式为:
T=N*D2
若对各所述物理服务器设置有权重值,则所述响应时间的计算公式为:
Figure BDA0003459580690000121
其中,T表示响应时间,N表示事务数量,D表示网络延迟值,W表示权重值。
可选的,在一实施例中,所述虚拟服务器还用于:
获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
可选的,在一实施例中,所述计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值包括:
基于所述网络延迟值的分布范围,依次均分出若干个存储桶,每个存储桶用于存储落入该存储桶对应数值范围内的网络延迟值;
计算在各存储桶之前的存储桶中最大计数值与所述存储桶的计数值的和值,并以所述和值更新所述存储桶的计数值;
将最后一个存储桶的计数值除以二得到计数值中位数,以所述计数值中位数作为存储桶的计数值找出对应的存储桶,并计算该存储桶中网络延迟值的中位数作为所述目标物理服务器的网络延迟值。
可选的,在一实施例中,所述API路由还用于:
在路由策略同步的初始阶段或增量同步出现异常时,主API路由停止增量同步,并将待同步数据打包成全量数据包并发送至从API路由的同步代理组件,其中,所述主API路由与所述从API路由分别位于不同的数据中心;
所述同步代理组件将所述全量数据包中的数据写入一个后端数据库中,并交换当前业务使用的前端数据库与所述后端数据库的访问地址。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种多数据中心流量调度方法,其特征在于,所述多数据中心流量调度方法包括:
API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
虚拟服务器进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;
所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;
所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值。
2.根据权利要求1所述的多数据中心流量调度方法,其特征在于,在所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理之前,还包括:
所述虚拟服务器判断所述请求是否为重新进入的请求;
若所述请求是重新进入的请求,则对所述请求对应的物理服务器的事务数量执行减1操作。
3.根据权利要求1所述的多数据中心流量调度方法,其特征在于,所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理包括:
所述虚拟服务器根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
4.根据权利要求3所述的多数据中心流量调度方法,其特征在于,所述响应时间的计算公式如下:
若未设置各所述物理服务器的权重值,则所述响应时间的计算公式为:
T=N*D2
若对各所述物理服务器设置有权重值,则所述响应时间的计算公式为:
Figure FDA0003459580680000021
其中,T表示响应时间,N表示事务数量,D表示网络延迟值,W表示权重值。
5.根据权利要求1所述的多数据中心流量调度方法,其特征在于,所述虚拟服务器基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值包括:
所述虚拟服务器获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
6.根据权利要求5所述的多数据中心流量调度方法,其特征在于,所述计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值包括:
基于所述网络延迟值的分布范围,依次均分出若干个存储桶,每个存储桶用于存储落入该存储桶对应数值范围内的网络延迟值;
计算在各存储桶之前的存储桶中最大计数值与所述存储桶的计数值的和值,并以所述和值更新所述存储桶的计数值;
将最后一个存储桶的计数值除以二得到计数值中位数,以所述计数值中位数作为存储桶的计数值找出对应的存储桶,并计算该存储桶中网络延迟值的中位数作为所述目标物理服务器的网络延迟值。
7.根据权利要求1所述的多数据中心流量调度方法,其特征在于,在所述API路由接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器之前,还包括:
在路由策略同步的初始阶段或增量同步出现异常时,主API路由停止增量同步,并将待同步数据打包成全量数据包并发送至从API路由的同步代理组件,其中,所述主API路由与所述从API路由分别位于不同的数据中心;
所述同步代理组件将所述全量数据包中的数据写入一个后端数据库中,并交换当前业务使用的前端数据库与所述后端数据库的访问地址中。
8.一种多数据中心流量调度系统,其特征在于,所述多数据中心流量调度系统包括:
API路由,用于接收客户端发送的请求,并根据配置的路由策略,将所述请求转发至对应虚拟服务器;
虚拟服务器,用于在接收到所述请求后进入自适应负载均衡模式,从负载均衡共享内存读取后端各物理服务器当前的事务数量与网络延迟值;根据后端各物理服务器当前的事务数量与网络延迟值,确定处理所述请求的目标物理服务器,并将所述请求转发至所述目标物理服务器进行处理;基于述目标物理服务器的请求处理结果,更新所述目标物理服务器当前的事务数量与网络延迟值;
物理服务器,用于接收所述虚拟服务器转发的请求并对所述请求进行处理以及将处理结果返回所述虚拟服务器。
9.根据权利要求8所述的多数据中心流量调度系统,其特征在于,所述虚拟服务器还用于:
根据后端各物理服务器当前的事务数量与网络延迟值,计算各所述物理服务器的响应时间;
选择各所述物理服务器的响应时间中最短响应时间对应的物理服务器作为处理所述请求的目标物理服务器;
将所述请求转发至所述目标物理服务器进行处理,并对所述目标服务器对应的事务数量执行加1操作。
10.根据权利要求8所述的多数据中心流量调度系统,其特征在于,所述虚拟服务器还用于:
获取所述目标物理服务器当前连接下的请求数,并判断所述请求数是否为1;
若所述请求数为1,则获取当前连接下的网络延迟值,并记作首次网络延迟值;
以存储桶的方式存储各所述物理服务器的网络延迟值,将所述首次网络延迟值放入对应的存储桶中;
计算各所述存储桶中所有网络延迟值的中位数,并以所述中位数更新所述目标物理服务器的网络延迟值;
对所述负载均衡共享内存中存储的所述目标物理服务器的事务数量执行减1操作。
CN202210015258.3A 2022-01-07 2022-01-07 多数据中心流量调度方法及系统 Active CN114553881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210015258.3A CN114553881B (zh) 2022-01-07 2022-01-07 多数据中心流量调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210015258.3A CN114553881B (zh) 2022-01-07 2022-01-07 多数据中心流量调度方法及系统

Publications (2)

Publication Number Publication Date
CN114553881A true CN114553881A (zh) 2022-05-27
CN114553881B CN114553881B (zh) 2024-04-02

Family

ID=81669590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210015258.3A Active CN114553881B (zh) 2022-01-07 2022-01-07 多数据中心流量调度方法及系统

Country Status (1)

Country Link
CN (1) CN114553881B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277863A (zh) * 2022-06-27 2022-11-01 中盈优创资讯科技有限公司 一种api路由的调度方法
CN115277863B (zh) * 2022-06-27 2024-05-14 中盈优创资讯科技有限公司 一种api路由的调度方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357142A (zh) * 2015-12-02 2016-02-24 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN109547515A (zh) * 2017-09-22 2019-03-29 阿里巴巴集团控股有限公司 一种服务调用方法及相关设备
CN110661657A (zh) * 2019-09-23 2020-01-07 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用的网络安全监控方法及其系统
CN111191918A (zh) * 2019-12-27 2020-05-22 国网江苏省电力有限公司信息通信分公司 一种智能电网通信网的业务路由规划方法及装置
CN111338807A (zh) * 2020-05-21 2020-06-26 中国人民解放军国防科技大学 一种面向边缘人工智能应用的QoE感知的服务增强方法
CN111459677A (zh) * 2020-04-01 2020-07-28 北京顺达同行科技有限公司 请求分配方法、装置、计算机设备和存储介质
CN112162835A (zh) * 2020-08-21 2021-01-01 南京信息职业技术学院 一种异构云环境下实时任务的调度优化方法
CN112929264A (zh) * 2019-12-06 2021-06-08 厦门网宿有限公司 业务流量传输方法、系统及网络设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357142A (zh) * 2015-12-02 2016-02-24 浙江工商大学 一种基于ForCES的网络负载均衡器系统设计方法
CN109547515A (zh) * 2017-09-22 2019-03-29 阿里巴巴集团控股有限公司 一种服务调用方法及相关设备
CN110661657A (zh) * 2019-09-23 2020-01-07 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用的网络安全监控方法及其系统
CN112929264A (zh) * 2019-12-06 2021-06-08 厦门网宿有限公司 业务流量传输方法、系统及网络设备
CN111191918A (zh) * 2019-12-27 2020-05-22 国网江苏省电力有限公司信息通信分公司 一种智能电网通信网的业务路由规划方法及装置
CN111459677A (zh) * 2020-04-01 2020-07-28 北京顺达同行科技有限公司 请求分配方法、装置、计算机设备和存储介质
CN111338807A (zh) * 2020-05-21 2020-06-26 中国人民解放军国防科技大学 一种面向边缘人工智能应用的QoE感知的服务增强方法
CN112162835A (zh) * 2020-08-21 2021-01-01 南京信息职业技术学院 一种异构云环境下实时任务的调度优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LI GUOYAN: "Fuzzy Logic Load-Balancing Strategy Based on Software-Defined Networking", WIRELESS INTERNET (WICON 2017) *
文俊浩;宋鹏飞;王静;: "SOA中一种基于负载均衡的服务查找请求路由算法", 计算机应用, no. 06 *
杨杭;张昕;赵建平;: "基于动态反馈的负载均衡方法研究", 长春理工大学学报(自然科学版), no. 06 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277863A (zh) * 2022-06-27 2022-11-01 中盈优创资讯科技有限公司 一种api路由的调度方法
CN115277863B (zh) * 2022-06-27 2024-05-14 中盈优创资讯科技有限公司 一种api路由的调度方法

Also Published As

Publication number Publication date
CN114553881B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US6748414B1 (en) Method and apparatus for the load balancing of non-identical servers in a network environment
US8458284B2 (en) Systems and methods for efficient live application migration within bandwidth constrained networks
JP5157472B2 (ja) 帯域制御機能を有する負荷分散装置およびその設定方法
US6748413B1 (en) Method and apparatus for load balancing of parallel servers in a network environment
AU2015229200B2 (en) Coordinated admission control for network-accessible block storage
US7543069B2 (en) Dynamically updating session state affinity
US10129332B2 (en) Load balancing of distributed services
WO2019237594A1 (zh) 会话保持方法、装置、计算机设备及存储介质
US10250673B1 (en) Storage workload management using redirected messages
US9501326B2 (en) Processing control system, processing control method, and processing control program
US11055146B2 (en) Distribution process system and distribution process method
US20160234129A1 (en) Communication system, queue management server, and communication method
KR20140074320A (ko) 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법
US20110235522A1 (en) Relay node
JP2001290787A (ja) データ配信方法及びデータ配信プログラムを格納した記憶媒体
WO2018037930A1 (ja) データストア装置およびデータ管理方法
CN114338695A (zh) 基于多副本的领导者选举方法、装置、设备及存储介质
JP6940761B2 (ja) 情報処理装置、仮想マシン監視プログラム、および情報処理システム
CN114553881B (zh) 多数据中心流量调度方法及系统
KR101029416B1 (ko) 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법
WO2012017699A1 (ja) 計算機システム、及び、データ管理方法
JP2019149043A (ja) 見積り装置および見積り方法
US20160275191A1 (en) Database system
WO2020235055A1 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
US9461933B2 (en) Virtual server system, management server device, and system managing method

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