负载均衡方法、装置、电子设备及存储介质与流程

文档序号:17788250发布日期:2019-05-31 19:44阅读:139来源:国知局
负载均衡方法、装置、电子设备及存储介质与流程

本发明涉及信息传输技术领域,特别是涉及负载均衡方法、装置、电子设备及存储介质。



背景技术:

vpc(virtualprivatecloud,虚拟私有云)是一个公共云计算资源的动态配置池,vpc基于使用加密协议、隧道协议和其他安全程序,在一台或多台后端服务器中,实现各租户网络间的隔离,保证了每个租户数据的安全。

传统网络中网络地址是不隔离的,负载均衡服务器可以到达各后端服务器。不同于传统网络,vpc网络中的每个租户的网络是隔离的。租户网络外的负载均衡服务器不能够与租户网络中的后端服务器进行通信。因此现有的vpc网络在进行负载均衡时,针对每个租户网络,分别在每个租户网络中各配置一个负载均衡服务器,但是采用此种方法,增加了各租户网络的配置成本。



技术实现要素:

本发明实施例的目的在于提供一种负载均衡方法、装置、电子设备及存储介质,以实现减少各租户网络的配置成本。具体技术方案如下:

第一方面,本发明实施例提供了负载均衡方法,应用于负载均衡服务器,上述负载均衡服务器下辖多个租户网络对应的后端服务器,上述租户网络为虚拟私有云vpc网络,上述方法包括:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

可选的,在上述向上述目标后端服务器发送上述封装请求数据包之后,上述方法还可以包括:

接收封装反馈数据包,其中,上述封装反馈数据包是由上述目标后端服务器根据上述请求数据包生成反馈数据包,并对上述反馈数据包进行封装后得到的,上述封装反馈数据包的源地址为上述目标后端服务器的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

解封装上述封装反馈数据包获得上述反馈数据包,发送上述反馈数据包。

可选的,在确定上述租户对应的后端服务器之前,上述方法还可以包括:

根据预设添加规则,选取至少一个后端服务器添加到租户服务器列表中,并在上述租户服务器列表中对所选取的至少一个后端服务器与上述租户网络进行关联;

相应的,上述确定上述租户网络对应的后端服务器包括:

查询上述租户服务器列表,将上述租户网络关联的后端服务器,作为上述租户网络对应的后端服务器。

可选的,在本发明实施例的负载均衡方法中,在上述负载均衡服务器的内核中增加相应的系统调用,上述相应的系统调用用于调用预设程序,在调用上述预设程序时,实现上述任一应用于负载均衡服务器的负载均衡方法方法。

第二方面,本发明实施例提供了一种负载均衡方法,应用于后端服务器,上述后端服务器为虚拟私有云vpc网络中的相应租户网络中的后端服务器,多个租户网络共用一个负载均衡服务器,上述方法包括:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;

解封装上述封装请求数据包,得到上述请求数据包。

可选的,在上述解封装上述封装请求数据包,得到上述请求数据包之后,上述方法还可以包括:

通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务。

可选的,在上述通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务之后,上述方法还可以包括:

获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

封装上述反馈数据包,得到封装反馈数据包,其中,上述封装反馈数据包的源地址为上述后端服务器在所属的租户网络中的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

向上述负载均衡服务器发送上述封装反馈数据包。

可选的,上述应用于后端服务器的负载均衡方法还可以包括:

记录上述封装请求数据包的源地址;

相应的,在上述通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务之后,上述方法还包括:

获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

查询上述后端服务器中是否保存有上述反馈数据包对应的封装请求数据包的源地址;

在上述后端服务器中没有保存上述反馈数据包对应的封装请求数据包的源地址时,丢弃上述反馈数据包。

第三方面,本发明实施例提供了一种负载均衡装置,应用于负载均衡服务器,上述负载均衡服务器下辖多个租户网络对应的后端服务器,上述租户网络为虚拟私有云vpc网络,上述装置包括:

租户确定模块,用于接收请求数据包,确定上述请求数据包请求接入的租户网络;

后端服务器确定模块,用于确定上述租户网络对应的后端服务器;

目标服务器确定模块,用于按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

请求数据包封装模块,用于将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

封装请求数据包发送模块,用于向上述目标后端服务器发送上述封装请求数据包。

可选的,上述应用于负载均衡服务器的负载均衡装置还可以包括:

封装反馈数据包接收模块,用于接收封装反馈数据包,其中,上述封装反馈数据包是由上述目标后端服务器根据上述请求数据包生成反馈数据包,并对上述反馈数据包进行封装后得到的,上述封装反馈数据包的源地址为上述目标后端服务器的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

封装反馈数据包解封装模块,用于解封装上述封装反馈数据包获得上述反馈数据包,发送上述反馈数据包。

可选的,上述应用于负载均衡服务器的负载均衡装置还可以包括:

服务器添加模块,用于根据预设添加规则,选取至少一个后端服务器添加到租户服务器列表中,并在上述租户服务器列表中对所选取的至少一个后端服务器与上述租户网络进行关联;

相应的,上述后端服务器确定模块具体用于:

查询上述租户服务器列表,将上述租户网络关联的后端服务器,作为上述租户网络对应的后端服务器。

可选的,在上述负载均衡服务器的内核中增加相应的系统调用,上述相应的系统调用用于调用上述任一应用于负载均衡服务器的负载均衡装置。

第四方面,本发明实施例提供了一种负载均衡装置,应用于后端服务器,上述后端服务器为虚拟私有云vpc网络中的相应租户网络中的后端服务器,多个租户网络共用一个负载均衡服务器,上述装置包括:

封装请求数据包接收模块,用于接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;

封装请求数据包解封装模块,用于解封装上述封装请求数据包,得到上述请求数据包。

可选的,上述应用于后端服务器的负载均衡装置还可以包括:

服务执行模块,用于通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务。

可选的,上述应用于后端服务器的负载均衡装置还可以包括:

反馈数据包获取模块,用于获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

反馈数据包封装模块,用于封装上述反馈数据包,得到封装反馈数据包,其中,上述封装反馈数据包的源地址为上述后端服务器在所属的租户网络中的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

封装反馈数据包发送模块,用于向上述负载均衡服务器发送上述封装反馈数据包。

可选的,上述应用于后端服务器的负载均衡装置还可以包括:

路径记录模块,用于记录上述封装请求数据包的源地址;

相应的,上述装置还包括:

反馈数据包获取模块,用于获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

路径查询模块,用于查询上述后端服务器中是否保存有上述反馈数据包对应的封装请求数据包的源地址;

数据包丢弃模块,用于在上述后端服务器中没有保存上述反馈数据包对应的封装请求数据包的源地址时,丢弃上述反馈数据包。

第五方面,本发明实施例提供了一种电子设备,包括处理器和机器可读存储介质,上述机器可读存储介质存储有能被上述处理器执行的机器可执行指令,上述处理器被上述机器可执行指令促使:实现上述第一方面任一负载均衡方法。

第六方面,本发明实施例提供了一种电子设备,包括处理器和机器可读存储介质,上述机器可读存储介质存储有能被上述处理器执行的机器可执行指令,上述处理器被上述机器可执行指令促使:实现上述第二方面任一负载均衡方法。

第七方面,本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述第一方面任一负载均衡方法。

第八方面,本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述第二方面任一负载均衡方法。

第九方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一负载均衡方法。

第十方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面任一负载均衡方法。

第十一方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面任一负载均衡方法。

第十二方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第二方面任一负载均衡方法。

本发明实施例提供的负载均衡方法、装置、电子设备及存储介质,上述方法应用于负载均衡服务器,上述负载均衡服务器下辖多个租户网络对应的后端服务器;上述租户网络为虚拟私有云vpc网络,上述方法包括:接收请求数据包,确定上述请求数据包请求接入的租户网络;确定上述租户网络对应的后端服务器;按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;向上述目标后端服务器发送上述封装请求数据包。确定请求数据包对应租户网络,选取该租户网络的后端服务器作为目标后端服务器,将请求数据包进行封装,将目标后端服务器在虚拟私有网络vpc中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器实现多个租户网络的负载均衡,可以减少各租户网络的配置成本。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中负载均衡的vpc网络结构的示意图;

图2为本发明实施例的应用于负载均衡服务器的负载均衡方法的一种流程示意图;

图3为本发明实施例的负载均衡的vpc网络结构的示意图;

图4为本发明实施例的应用于后端服务器的负载均衡方法的流程示意图;

图5为本发明实施例的负载均衡方法的另一种流程示意图;

图6为本发明实施例的应用于负载均衡服务器的负载均衡装置的示意图;

图7为本发明实施例的应用于后端服务器的负载均衡装置的示意图;

图8为本发明实施例的负载均衡服务器的示意图;

图9为本发明实施例的后端服务器的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

负载均衡服务是一项重要的服务,可以使多台服务器共同进行一个服务。现有负载均衡方法的vpc网络结构如图1所示,在每个租户网络中部署一个负载均衡服务器,每个租户网络中的负载均衡服务器负责该租户网络中各后端服务器的负载均衡,但是采用现有技术中的方法,增加了负载均衡的成本,且负载均衡的性能较差,整体网络的资源利用率低,用户体验差。

因此,参见图2,本发明实施例提供了一种负载均衡方法,应用于负载均衡服务器,该负载均衡服务器下辖多个租户网络对应的后端服务器,上述租户网络为虚拟私有云vpc网络,该方法包括:

s201,接收请求数据包,确定上述请求数据包请求接入的租户网络。

本发明实施例的负载均衡方法的vpc网络结构如图3所示,负载均衡服务器位于各租户网络的外部,一个负载均衡服务器下辖多个租户网络。当请求数据包到来时,负载均衡系统接收该请求数据包,并根据请求数据包中租户网络的标识(如租户网络对应的客户端标识,租户网络的账号标识,租户网络的id等),确定该请求数据包对应的租户。

负载均衡系统为任意能够实现本发明实施例的负载均衡方法的系统。例如:

负载均衡系统可以为一种负载均衡服务器,包括:处理器、存储器、通信接口和总线;处理器、存储器和通信接口通过总线连接并完成相互间的通信;存储器存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行负载均衡方法。

负载均衡系统还可以为一种应用程序,用于在运行时执行负载均衡方法。

负载均衡系统还可以为一种存储介质,用于存储可执行代码,可执行代码用于执行负载均衡方法。

s202,确定上述租户网络对应的后端服务器。

为了确定租户网络与后端服务器的对应关系,负载均衡系统可以维护一个租户服务器列表,该租户服务器列表中记录了各租户网络与各后端服务器的关联关系,当然该租户服务器列表中还可以包括各后端服务器在vpc网络中的地址。负载均衡系统可以通过查询租户服务器列表,确定上述租户网络对应的各后端服务器。

s203,按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器。

例如,负载均衡系统按照加权循环调度算法、加权最小连接调度算法或轮询调度算法等,在上述租户对应的后端服务器中,选取目标后端服务器。

s204,将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址。

负载均衡系统将请求数据包进行封装,例如对请求数据包进行vxlan(virtualextensiblelan,虚拟扩展局域网)封装,将目标后端服务器在vpc中的地址作为封装请求数据包的目的地址,当然封装请求数据包的源地址为负载均衡服务器的地址。

s205,向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述负载均衡服务器通过集群的方式进行部署。

通过集群方式部署负载均衡服务器,方便服务负载均衡服务器的扩容,且负载均衡服务器中单台主机宕机时,不影响负载均衡服务器的整体性能。

可选的,在向上述目标后端服务器发送上述封装请求数据包之后,上述方法还包括:

s206,接收封装反馈数据包,其中,上述封装反馈数据包是由上述目标后端服务器根据上述请求数据包生成反馈数据包,并对上述反馈数据包进行封装后得到的,上述封装反馈数据包的源地址为上述目标后端服务器的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址。

s207,解封装上述封装反馈数据包获得上述反馈数据包,发送上述反馈数据包。

负载均衡系统接收由后端服务器发送的封装反馈数据包,解封装该封装反馈数据包,得到并发送反馈数据包。反馈数据包经过路由器等其他网络设备的转发,最终返回到客户端。

在本发明实施例中,接收并解封装反馈数据包,确保得到的反馈数据包能够在vpc外部网络中正常传输,保证了客户端能够正常接收到反馈数据包。

可选的,在确定上述租户网络对应的后端服务器之前,上述方法还包括:

s2010,根据预设添加规则,选取至少一个后端服务器添加到租户服务器列表中,并在上述租户服务器列表中对所选取的至少一个后端服务器与上述租户网络进行关联。

相应的,上述确定上述租户网络对应的后端服务器包括:

查询上述租户服务器列表,将上述租户网络关联的后端服务器,作为上述租户网络对应的后端服务器。

负载均衡系统维护的租户服务器列表中记录了各租户网络与各后端服务器的关联关系,即记录每个租户网络中各自包含哪些后端服务器。负载均衡系统通过查询租户服务器列表,能够快速确定上述租户网络对应的各后端服务器。可选的,租户服务器列表中还可以包括各后端服务器在vpc网络中的地址,例如,如表1所示。

表1

在负载均衡系统接收到请求数据包后,判断该数据包对应的租户网络符合预设添加规则时,选取一个或多个后端服务器添加到该租户网络中。预设添加规则为任意在租户网络中添加后端服务器的规则,例如,请求数据包中标识了扩容相应租户网络的信息;或相应租户网络中各后端服务器的指定数值均超过预设上限,例如,相应租户网络中各后端服务器的当前负载均过载;或相应租户网络中各后端服务器中已分配、且尚未返回的请求数据包的数量均超过预设数值等。

例如,对于表1中的租户网络b,其对应的后端服务器rs4和rs5未返回的请求数据包的数量均超过预设数值(例如为10、50、100或更大)。负载均衡系统选取一个空闲的后端服务器rs8,添加到租户网络b的网络中,如表2所示:

表2

在本发明实施例中,添加后端服务器到租户对应的网络中,实现了对整个vpc网络的负载均衡,负载均衡的效果更好,整个vpc网络中资源利用率高,用户体验佳。

可选的,上述根据预设添加规则,选取至少一个后端服务器添加到租户服务器列表中,包括:

s2011,获取上述租户网络对应的各后端服务器的当前负载。

负载均衡系统获取各后端服务器的当前负载,可以为负载均衡系统向上述租户网络对应的各后端服务器发送负载查询指令,以使各后端服务器根据负载查询指令返回各自当前负载。各后端服务器也可以周期性的向负载均衡系统报告各自的当前负载,负载均衡系统对各后端服务器上报的当前负载进行记录,保持更新各后端服务器的当前负载,需要使用时直接读取即可。

s2012,选取当前负载符合预设负载规则的后端服务器,作为目标后端服务器。

预设负载规则为任意根据负载选取后端服务器的规则。例如,可以为选取当前负载最小的后端服务器;或选取任一当前负载小于预设负载阈值(预设负载阈值为任意数值,例如为90%,80%,70%,60%或更小)的后端服务器等。

在本发明实施例中,根据租户对应的各后端服务器的当前负载,选取目标后端服务器,各后端服务器的负载分配更加合理,资源利用率更高。

可选的,在上述负载均衡服务器的内核中增加相应的系统调用,上述相应的系统调用用于调用预设程序,在调用上述预设程序时实现上述任一应用于负载均衡服务器的负载均衡方法。

在负载均衡服务器的内核中增加与预设程序相应的系统调用,系统调用用于调用内核中的相应的预设程序(也可以称为内核函数),预设程序在运行时能够实现上述任一应用于负载均衡服务器的负载均衡方法。

在进行负载均衡的过程中可以使用haproxy(一种开放源代码软件,提供负载均衡的应用程序代理)等应用程序,但是若使用此类应用程序在向不同的vpc租户网络发送数据时,必须要切换namespace(命名空间),非常消耗负载均衡服务器的性能。而在本发明实施例中,在负载均衡服务器的内核中增加与预设程序相应的系统调用,向各租户网络发送数据时,不用切换namespace,节约了负载均衡服务器的性能。

在本发明实施例中,通过在负载均衡服务器中添加相应的系统调用,可以节约负载均衡服务器的性能,提高负载均衡的效率,适合在实际应用环境中使用。

参见图4,本发明实施例提供了一种负载均衡方法,应用于后端服务器,上述后端服务器为虚拟私有云vpc网络中的相应租户网络中的后端服务器,多个租户网络共用一个负载均衡服务器,该方法包括:

s401,接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址。

s402,解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,在解封装上述封装请求数据包,得到上述请求数据包之后,上述方法还包括:

s403,通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务。

后端服务器中的虚拟机可以为提前建立的,也可以为根据请求数据包建立的,利用虚拟机对请求数据包进行处理,并将请求数据包的处理结果生成反馈数据包,从而为租户提供相应的服务。在本发明实施例中,通过后端服务器中的虚拟机处理请求数据包,数据处理的效率高。

可选的,在通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务之后,上述方法还包括:

s404,获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包。

反馈数据包的目的地址可以为,发送与该反馈数据包对应的请求数据包的客户端的地址,以确保反馈数据包可以返回该客户端。

s405,封装上述反馈数据包,得到封装反馈数据包,其中,上述封装反馈数据包的源地址为上述后端服务器在vpc中的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址。

将反馈数据包进行封装,把负载均衡服务器的地址作为封装反馈数据包的目的地址,以确保封装反馈数据包的发送目标。

s406,向上述负载均衡服务器发送上述封装反馈数据包。

在本发明实施例中,将反馈数据包进行封装,把负载均衡服务器的地址作为封装反馈数据包的目的地址,能够保证将封装请求数据包发送至负载均衡服务器中。

可选的,上述应用于后端服务器的负载均衡的方还包括:

s4011,记录上述封装请求数据包的源地址。

记录封装请求数据包的源地址,方便后续向负载均衡服务器发送封装请求数据包。可选的,还可以记录请求数据包的源地址和目的地址,及请求数据包的源接口和目的接口,以方便后续确定反馈数据包的传输路径。

相应的,在通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务之后,上述方法还包括:

s404,获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包。

s4041,查询上述后端服务器中是否保存有上述反馈数据包对应的封装请求数据包的源地址。

s4042,在上述后端服务器中没有保存上述反馈数据包对应的封装请求数据包的源地址时,丢弃上述反馈数据包。

在本发明实施例中,丢弃没有存储返回路径信息的反馈数据包,防止生成错误地址的反馈数据包,保证数据传输的准确性,用户体验佳。

参见图5,图5为本发明实施例的负载均衡方法的另一种流程示意图,包括:

s501,负载均衡服务器接收请求数据包,确定该请求数据包对应的租户网络,在该租户网络中选取目标后端服务器,将目标后端服务器的地址作为封装后的请求数据包的目的地址,并发送封装后的请求数据包。

请求数据包到来时,负载均衡服务器接收该请求数据包,并根据该请求数据包中的相关标识确定该请求数据包对应的租户网络;负载均衡服务器根据预设的负载均衡规则,在上述租户网络对应的各后端服务器中选取一个后端服务器,作为目标后端服务器;负载均衡服务器向该目标后端服务器发送数据包,该数据包在发出之前会被截获,然后进行vxlan的封装,得到封装请求数据包,该封装请求数据包的目的地址为目标后端服务器在vpc网络中的真实物理地址,该封装请求数据包的源地址为负载均衡服务器的地址。负载均衡服务器发送上述封装请求数据包,这样数据包就进入到不同租户的后端服务器中。

s502,目标后端服务器接收封装后的请求数据包,并进行解封装,将解封装后的数据传输给该目标后端服务器中的虚拟机,并记录与请求数据包相关的路径信息。

目标后端服务器真实的接收到由负载均衡服务器发送过来的vxlan封装的请求数据包。目标后端服务器会记录与请求数据包相关的路径信息,例如,封装后的请求数据包的源地址,还可以记录vxlan封装内的tcp(transmissioncontrolprotocol,传输控制协议)信息,请求数据包的源地址及目的地址,请求数据包的源接口及目的接口。目标后端服务器将vxlan封装的头部剥掉,将原始数据发送给自身中的虚拟机。

s503,目标后端服务器处理请求数据包,将处理结果生成反馈数据包,并查找与上述请求数据包相关的路径信息;当不包含与上述请求数据包相关的路径信息,则丢弃该反馈数据包;当查找到与上述请求数据包相关的路径信息时,根据该路径信息对反馈数据包进行封装,并发送封装后的反馈数据包。

目标后端服务器通过自身中的虚拟机处理请求数据包中的数据,并将请求数据包的处理结果生成反馈数据包。目标后端服务器查找之前记录的各路径信息,判断之前记录的各路径信息中,是否包含与该反馈数据包对应的请求数据包相关的路径信息。

若不包含与该反馈数据包对应的请求数据包相关的路径信息,则丢弃该反馈数据包。

若包含与该反馈数据包对应的请求数据包相关的路径信息,则根据查找到的路径信息,对反馈数据包进行vxlan封装,这样反馈数据包就可以通过该租户的vpc网络的边界而到达负载均衡服务器。封装后的反馈数据包的源地址为目标后端服务器的地址;封装后的反馈数据包的目的地址为查找到的路径信息中封装后的请求数据包的源地址,即负载均衡服务器的地址。

s504,负载均衡服务器接收封装后的反馈数据包,进行解封装,得到并发送反馈数据包。

负载均衡服务器将接收到的vxlan封装的数据包进行解封装,从而得到原始的反馈数据包信息,之后正常处理反馈数据包,以将反馈数据包发送给租户。

在本发明实施例中,实现了租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信,通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,可以减少各租户网络的配置成本。负载均衡的效果更好,整个vpc网络中资源利用率高,用户体验佳。

参见图6,本发明实施例提供了一种负载均衡装置,应用于负载均衡服务器,上述负载均衡服务器下辖多个租户网络对应的后端服务器,上述装置包括:

租户确定模块601,用于接收请求数据包,确定上述请求数据包请求接入的租户网络;

后端服务器确定模块602,用于确定上述租户网络对应的后端服务器;

目标服务器确定模块603,用于按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

请求数据包封装模块604,用于将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

封装请求数据包发送模块605,用于向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述应用于负载均衡服务器的中负载均衡装置还包括:

封装反馈数据包接收模块,用于接收封装反馈数据包,其中,上述封装反馈数据包是由上述目标后端服务器根据上述请求数据包生成反馈数据包,并对上述反馈数据包进行封装后得到的,上述封装反馈数据包的源地址为上述目标后端服务器的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

封装反馈数据包解封装模块,用于解封装上述封装反馈数据包获得上述反馈数据包,发送上述反馈数据包。

在本发明实施例中,接收并解封装反馈数据包,确保得到的反馈数据包能够在vpc外部网络中正常传输,保证了客户端能够正常接收到反馈数据包。

可选的,上述应用于负载均衡服务器的负载均衡装置还包括:

服务器添加模块,用于根据预设添加规则,选取至少一个后端服务器添加到租户服务器列表中,并在上述租户服务器列表中对所选取的至少一个后端服务器与上述租户网络进行关联;

相应的,上述后端服务器确定模块具体用于:

查询上述租户服务器列表,将上述租户网络关联的后端服务器,作为上述租户网络对应的后端服务器。

在本发明实施例中,添加后端服务器到租户对应的网络中,实现了对整个vpc网络的负载均衡,负载均衡的效果更好,整个vpc网络中资源利用率高,用户体验佳。

可选的,在上述负载均衡服务器的内核中增加相应的系统调用,上述相应的系统调用用于调用上述任一应用于负载均衡服务器的负载均衡装置。

本发明实施例中在负载均衡服务器的内核中增加相关系统调用,通过系统调用实现上述vpc网络中负载均衡方法,能够节约系统性能,提高负载均衡的效率。

参见图7,本发明实施例提供了一种负载均衡装置,应用于后端服务器,上述后端服务器为虚拟私有云vpc网络中的相应租户网络中的后端服务器,多个租户网络共用一个负载均衡服务器,上述装置包括:

封装请求数据包接收模块701,用于接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;

封装请求数据包解封装模块702,用于解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,上述应用于后端服务器的负载均衡装置还包括:

服务执行模块,用于通过上述后端服务器中的虚拟机执行上述请求数据包中请求的服务。

在本发明实施例中,通过后端服务器中的虚拟机处理请求数据包,数据处理的效率高。

可选的,上述应用于后端服务器的负载均衡装置还包括:

反馈数据包获取模块,用于获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

反馈数据包封装模块,用于封装上述反馈数据包,得到封装反馈数据包,其中,上述封装反馈数据包的源地址为上述后端服务器在vpc中的地址,上述封装反馈数据包的目的地址为上述负载均衡服务器的地址;

封装反馈数据包发送模块,用于向上述负载均衡服务器发送上述封装反馈数据包。

在本发明实施例中,将反馈数据包进行封装,把负载均衡服务器的地址作为封装反馈数据包的目的地址,能够保证将封装请求数据包发送至负载均衡服务器中。

可选的,上述应用于后端服务器的负载均衡装置还包括:

路径记录模块,用于记录上述封装请求数据包的源地址;

相应的,上述装置还包括:

反馈数据包获取模块,用于获取反馈数据包,其中,上述反馈数据包是上述虚拟机执行上述请求数据包中请求的服务后生成的数据包;

路径查询模块,用于查询上述后端服务器中是否保存有上述反馈数据包对应的封装请求数据包的源地址;

数据包丢弃模块,用于在上述后端服务器中没有保存上述反馈数据包对应的封装请求数据包的源地址时,丢弃上述反馈数据包。

在本发明实施例中,丢弃没有存储返回路径信息的反馈数据包,防止生成错误地址的反馈数据包,保证数据传输的准确性,用户体验佳。

本发明实施例还提供了一种电子设备,包括处理器和机器可读存储介质,上述机器可读存储介质存储有能被上述处理器执行的机器可执行指令,上述处理器被上述机器可执行指令促使实现如下步骤:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述处理器被上述机器可执行指令促使时还能够实现上述应用于负载均衡服务器的中负载均衡方法的任意步骤。

可选的,本发明实施例的电子设备为负载均衡服务器,上述负载均衡服务器下辖多个租户网络对应的后端服务器,上述租户网络为虚拟私有云vpc网络,具体如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信;

存储器803,用于存放计算机程序;

处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,处理器801执行存储器803上所存放的程序时,还可以实现上述应用于负载均衡服务器的负载均衡方法的任意步骤。

本发明实施例还提供了一种电子设备,包括处理器和机器可读存储介质,上述机器可读存储介质存储有能被上述处理器执行的机器可执行指令,上述处理器被上述机器可执行指令促使实现如下步骤:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;上述负载均衡服务器下辖多个租户网络对应的后端服务器;

解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,上述处理器被上述机器可执行指令促使时还能够实现上述应用于后端服务器的负载均衡方法的任意步骤。

可选的,本发明实施例的电子设备为后端服务器,上述后端服务器为虚拟私有云vpc网络中的相应租户网络中的后端服务器,多个租户网络共用一个负载均衡服务器,具体如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,

存储器903,用于存放计算机程序;

处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;上述负载均衡服务器下辖多个租户网络对应的后端服务器;

解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,处理器执行存储器上所存放的程序时,还可以实现上述应用于负载均衡服务器的负载均衡方法的任意步骤。

上述负载均衡服务器/后端服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现如下步骤:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述计算机程序被处理器执行时,还可以实现上述应用于负载均衡服务器的负载均衡方法的任意步骤。

本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现如下步骤:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;上述负载均衡服务器下辖多个租户网络对应的后端服务器;

解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,上述计算机程序被处理器执行时,还可以实现上述应用于后端服务器的负载均衡方法的任意步骤。

本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如下步骤:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述计算机程序产品在计算机上运行时,还可以使得计算机执行上述应用于负载均衡服务器的负载均衡方法的任意步骤。

本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如下步骤:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;上述负载均衡服务器下辖多个租户网络对应的后端服务器;

解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,上述计算机程序产品在计算机上运行时,还可以使得计算机执行上述应用于后端服务器的负载均衡方法的任意步骤。

本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行如下步骤:

接收请求数据包,确定上述请求数据包请求接入的租户网络;

确定上述租户网络对应的后端服务器;

按照预设的负载均衡规则,在所确定的后端服务器中选取目标后端服务器;

将上述请求数据包进行封装,得到封装请求数据包,其中,上述封装请求数据包包括:源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述目标后端服务器在所属的租户网络中地址;

向上述目标后端服务器发送上述封装请求数据包。

在本发明实施例中,确定请求数据包对应的租户,选取该租户的后端服务器作为目标后端服务器,能够实现一个负载均衡服务器同时服务于多个租户网络;将请求数据包进行封装,把目标后端服务器在vpc网络中的地址作为封装请求数据包的目的地址,从而实现租户网络外的负载均衡服务器与租户网络内的后端服务器间的通信。通过一个负载均衡服务器,为分布在不同vpc网络中的租户提供负载均衡服务,实现一个负载均衡服务器对多个租户网络的负载均衡,可以减少各租户网络的配置成本。

可选的,上述计算机程序在计算机上运行时,还可以使得计算机执行上述应用于负载均衡服务器的负载均衡方法的任意步骤。

本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行如下步骤:

接收封装请求数据包,其中,上述封装请求数据包是由负载均衡服务器对请求数据包进行封装后得到并发送的;上述封装请求数据包包括源地址和目的地址,上述封装请求数据包的源地址为上述负载均衡服务器的地址,上述封装请求数据包的目的地址为上述后端服务器在所属的租户网络中地址;上述负载均衡服务器下辖多个租户网络对应的后端服务器;

解封装上述封装请求数据包,得到上述请求数据包。

在本发明实施例中,将封装请求数据包进行解封装,以得到请求数据包,为后端服务器处理请求数据包提供了前提。

可选的,上述计算机程序在计算机上运行时,还可以使得计算机执行上述应用于后端服务器的负载均衡方法的任意步骤。

对于负载均衡服务器/后端服务器/计算机可读存储介质/计算机程序产品/计算机程序的实施例而言,由于其基本相似于方法,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1