负载均衡方法、装置和系统与流程

文档序号:15744025发布日期:2018-10-23 22:46阅读:137来源:国知局

本申请涉及计算机技术领域,具体涉及互联网领域,尤其涉及负载均衡方法、装置和系统。



背景技术:

随着计算机技术的发展,分布式技术广泛应用于企业生产环境中。在分布式技术中,通常利用分布式消息队列(Message Queue,MQ)服务来实现在数据在不同业务之间稳定可靠且高效的传递和交换。通常,分布式消息队列服务需要由多个服务器来完成,以实现信息的中转,然而,客户端的数量远远大于服务器的数量,因而需要对服务器处理的信息进行分配,以实现负载均衡。

现有的负载均衡方式通常是利用分配消息路由的方式来对客户端的连接请求进行处理,然而,这种方式通常为跨机房、跨数据中心部署,导致连接延迟;另外,这种方式在某个连接中断或加入新连接的情况下,会导致客户端由于重新分配消息路由而抖动,导致稳定性较低。



技术实现要素:

本申请实施例的目的在于提出一种改进的负载均衡方法、装置和系统,来解决以上背景技术部分提到的技术问题。

第一方面,本申请实施例提供了一种负载均衡方法,负载均衡服务器与存储服务器通信连接,存储服务器与服务器集群中的各个服务器通信连接,服务器集群中包含预设服务器,该方法包括:对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表,对更新后的该标识列表中的标识所指示的客户端的互联网协议IP地址进行解析以生成目标标识集合;将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。

在一些实施例中,对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表,包括:对于所生成的每一个标识列表,响应于确定该标识列表与预置标识列表不匹配,提取该标识列表与预置标识列表中的相同标识和相同标识在预置标识列表中的次序;将相同标识以次序存储至预先建立的临时标识列表;将该标识列表中的、相同标识以外的标识插入至临时标识列表;将该标识列表替换为临时标识列表以更新该标识列表。

在一些实施例中,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合,包括:对于更新后的每一个标识列表,提取该标识列表中的各个标识所指示的客户端的IP地址,并提取服务器集群中的、与该标识列表相对应的服务器的IP地址,将所提取的服务器的IP地址确定为目标IP地址;基于预置的、IP地址与机房标识的映射表,确定所提取的各个客户端的IP地址与目标IP地址是否对应同一机房标识;将IP地址与目标IP地址对应同一机房标识的客户端的标识确定为第一标识,将IP与目标IP地址对应不同机房标识的客户端的标识确定为第二标识;选取该标识列表中的、预设数量的第一标识和预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,选取该标识列表中的、预设数量的第一标识和预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合,包括:对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;按照归入集合次数从小到大的顺序选取预设数量的第一标识,并按照顺序选取预设数量的第二标识;将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,选取该标识列表中的、预设数量的第一标识和预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合,包括:对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;响应于确定该标识列表中不存在第一标识,按照归入集合次数从小到大的顺序对该标识列表中的各个标识排序;按照顺序选取满足预设条件的标识作为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合,还包括:将与所生成的目标标识集合中的各个目标标识相匹配的归入集合次数增加预设数值。

第二方面,本申请实施例提供了一种负载均衡装置,负载均衡服务器与存储服务器通信连接,存储服务器与服务器集群中的各个服务器通信连接,服务器集群中包含预设服务器,该装置包括:生成单元,配置用于对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;更新单元,配置用于对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;发送单元,配置用于将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。

在一些实施例中,更新单元进一步配置用于:对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,提取该标识列表与预置标识列表中的相同标识和相同标识在预置标识列表中的次序;将相同标识以次序存储至预先建立的临时标识列表;将该标识列表中的、相同标识以外的标识插入至临时标识列表;将该标识列表替换为临时标识列表以更新该标识列表。

在一些实施例中,更新单元进一步配置用于:对于更新后的每一个标识列表,提取该标识列表中的各个标识所指示的客户端的IP地址,并提取服务器集群中的、与该标识列表相对应的服务器的IP地址,将所提取的服务器的IP地址确定为目标IP地址;基于预置的、IP地址与机房标识的映射表,确定所提取的各个客户端的IP地址与目标IP地址是否对应同一机房标识;将IP地址与目标IP地址对应同一机房标识的客户端的标识确定为第一标识,将IP与目标IP地址对应不同机房标识的客户端的标识确定为第二标识;选取该标识列表中的、预设数量的第一标识和预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,更新单元进一步配置用于:对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;按照归入集合次数从小到大的顺序选取预设数量的第一标识,并按照顺序选取预设数量的第二标识;将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,更新单元进一步配置用于:对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;响应于确定该标识列表中不存在第一标识,按照归入集合次数从小到大的顺序对该标识列表中的各个标识排序;按照顺序选取满足预设条件的标识作为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,更新单元进一步配置用于:将与所生成的目标标识集合中的各个目标标识相匹配的归入集合次数增加预设数值。

第三方面,本申请实施例提供了一种负载均衡系统,该系统包括:负载均衡服务器、存储服务器、客户端、由多个服务器构成的服务器集群,多个服务器包括预设服务器;负载均衡服务器,用于对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;将所生成的各个目标标识集合发送至存储服务器;存储服务器,用于响应于接收到预设服务器发送的负载结果获取请求,将各个目标标识集合发送至预设服务器;预设服务器,用于响应于接收到客户端发送的服务器集群信息获取请求,将包含各个目标标识集合的服务器集群信息发送至客户端;客户端,用于基于目标标识集合与相应的服务器集群中的服务器建立连接。

本申请实施例提供的负载均衡方法、装置和系统,通过确定服务器集群中的每一个服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅主题的消息的客户端的标识,以便生成与该服务器相对应的、按照主题划分的至少一个标识列表;而后提取与每一个标识列表对应的预置标识列表,并基于该标识列表与对应的预置标识列表的不匹配,更新该标识列表,并对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;最后将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。从而,可以基于对IP地址的解析进行负载分配,以减少解决跨机房、跨数据中心部署的连接数量,从而提高了建立连接的效率;同时,可以基于标识列表与预置标识列表的比对进行标识列表的更新,进而进行负载分配,提高了连接的稳定性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的负载均衡方法的一个实施例的流程图;

图3是对图2的流程图中的对标识列表的处理步骤的分解流程图;

图4是根据本申请的负载均衡方法的一个应用场景的示意图;

图5是根据本申请的负载均衡装置的一个实施例的结构示意图;

图6是根据本申请的负载均衡系统中各装置之间的交互过程的示意图;

图7是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的负载均衡方法或负载均衡装置的示例性系统架构100。

如图1所示,系统架构100可以包括负载均衡服务器101,存储服务器103,服务器集群105,终端设备110、111、112,网络102、104、109。其中,服务器集群105中包含服务器106、107、108。网络102、104、109可分别用以在负载均衡服务器101、和存储服务器103之间、存储服务器103和服务器集群105之间以及服务器集群105和终端设备110、111、112之间提供通信链路的介质。网络102、104、109可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

负载均衡服务器101可以是为服务器集群105提供负载均衡服务的服务器。负载均衡服务器101可以确定与服务器集群105中的各个服务器已建立连接的客户端的标识,并对所确定的标识进行划分列表、更新列表等处理,并通过网络102将负载均衡结果(例如目标标识集合)发送至存储服务器103。

存储服务器103可以用于存储负载均衡服务器101发送的负载均衡结果,且存储服务器103可以提供分布式应用程序协调服务。

服务器集群105中的服务器106、107、108可以是提供消息处理服务的消息处理服务器。消息处理服务器可以负责处理多个主题的消息,且每一个消息处理服务器可以由多个服务器构成,例如,可以由主服务器和从服务器所构成。主服务器可以对终端设备110、111、112发送的消息执行读写等操作,从服务器可以用于同步主服务器中的数据,也可以用于在主服务器出现故障时读取所同步的数据。此处,每一个消息处理服务器可以由一个主服务器和任意数量的从服务器构成,在此不做限定。另外,可以将服务器106、107、108中的一个或多个服务器作为预设服务器,预设服务器还可以对存储服务器103所存储的负载均衡结果进行监控,当监控到存储服务器103所存储的负载均衡结果的更新,则可以通过网络104向存储服务器103发送负载结果获取请求,以得到当前的负载均衡结果。

终端设备110、111、112可以通过网络109向服务器集群105中的预设服务器发送服务器集群信息获取请求,以得到负载均衡结果,并基于负载均衡结果与服务器集群105中的相应服务器建立连接。建立连接后,用户可以使用终端设备110、111、112通过网络109与服务器集群105中的相应的服务器进行交互,以接收或发送消息等。终端设备110、111、112上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备110、111、112可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

需要说明的是,本申请实施例所提供的负载均衡方法一般由负载均衡服务器101执行,相应地,负载均衡装置一般设置于负载均衡服务器101中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的负载均衡服务器、存储服务器、服务器集群、终端设备和网络,且服务器集群中可以包含任意数据的服务器。

继续参考图2,示出了根据本申请的负载均衡方法的一个实施例的流程200。负载均衡服务器与存储服务器通信连接,存储服务器与服务器集群中的各个服务器通信连接,服务器集群中包含预设服务器,所述的负载均衡方法,包括以下步骤:

步骤201,对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表。

在本实施例中,负载均衡方法运行于其上的电子设备(例如图1所示的负载均衡服务器101)可以从用于存储客户单端信息的数据库中获得与服务器集群(例如图1所示的服务器集群105)中的至少一个服务器已建立连接的客户端的客户端信息。其中,上述数据库可以是上述电子设备的本地数据库,也可以是与上述电子设备相连接的安装于其他设备上的数据库。上述客户端信息可以包含客户端的IP(Internet Protocol,互联网协议)地址、客户端名称、客户端标识(例如由任意字符构成的用于唯一确定客户端的字符串)、客户端所订阅的消息的主题(topic)等。实践中,每一个主题可以用于指示一类消息,例如页面浏览日志、点击日志等都可以主题的形式存在。

在本实施例中,上述电子设备可以预先存储有上述服务器集群中的各个服务器的服务器信息,其中,上述服务器信息可以包含服务器标识(例如由服务器名称和序号组成的字符串)、服务器的IP地址、服务器所负责处理的消息的主题等。对于服务器集群中的每一个服务器,上述电子设备可以基于所获取的客户端信息确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表。

作为示例,对于上述服务器集群中的某一服务器,该服务器负责处理的消息的主题包含第一主题和第二主题。与该服务器已建立连接且已订阅上述第一主题的消息的客户端分别为第一客户端、第二客户端和第三客户端,与该服务器已建立连接且已订阅上述第二主题的消息的客户端分别为第三客户端、第四客户端和第五客户端。则上述电子设备可以生成与该服务器对应的、按照上述第一主题和上述第二主题进行划分的两个标识列表(分别为第一标识列表和第二标识列表)。其中,与上述第一主题对应的第一标识列表包含第一客户端、第二客户端和第三客户端共三个客户端的标识,与上述第二主题对应的第二标识列表可以包含第三客户端、第四客户端和第五客户端共三个客户端的标识。

需要说明的是,所生成的每一个与该服务器对应的标识列表,均可以带有该服务器的服务器标识和相应的主题标识,主题标识可以用于指示和区别主题,各个主题标识可以是任意字符构成的字符串。以上述示例为例,上述第一标识列表可以带有该服务器的服务器标识和用于指示第一主题的主题标识,上述第二标识列表可以带有该服务器的服务器标识和用于指示第二主题的主题标识。

步骤202,对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合。

在本实施例中,对于所生成的每一个标识列表的处理,可以进一步参考图3,图3是对上述步骤202的分解流程图。在图3中,将上述控制步骤分解成如下的3个子步骤,即:步骤2021、步骤2022和步骤2023。

步骤2021,对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表。

在本实施例中,对于所生成的每一个标识列表,上述电子设备可以首先提取与该标识列表相对应的预置标识列表,其中,与该标识列表相对应的预置标识列表可以是带有相同服务器标识且带有相同主题标识的预置标识列表。需要说明的是,上述电子设备可以周期性地执行包含步骤201至步骤203的负载均衡方法,上述预置标识列表可以是上述电子设备在上一次执行该负载均衡方法过程中所生成的标识列表。在上述电子设备第一次执行该负载均衡方法前,每一个订阅了某个主题的消息的客户端可以与上述服务器集群中的、负责处理该主题的消息的服务器均建立连接,因而,在第一次执行该负载均衡方法前,上述电子设备中可以预先基于客户端与服务器的连接情况建立并存储与每一个服务器对应的、按主题划分的初始的预置标识列表。

步骤2022,响应于确定该标识列表与预置标识列表不匹配,基于预置标识列表更新该标识列表。

在本实施例中,在提取到上述预置标识列表之后,上述电子设备可以首先进行该标识列表与上述预置标识列表的比对,以确定该标识列表与上述预置标识列表是否相匹配。具体的,上述电子设备可以确定该标识列表中所记载各个标识是否均记载于上述预置标识列表中,若是,可以确定该标识列表中所记载的标识的数量是否和上述预置标识列表所记载的标识的数量一致,若确定数量一致,可以确定该标识列表与上述预置标识列表相匹配。若该标识列表中存在上述预置标识列表中未记载的标识,或该标识列表所记载的标识的数量与上述预置标识列表所记载的标识的数量不一致,可以确定该标识列表与上述预置标识列表不匹配。作为示例,该标识列表中所记载的标识依次为标识“A”、标识“B”和标识“C”,若上述预置标识列表中所记载的标识依次为标识“C”、标识“B”和标识“A”则可以确定该标识列表与上述预置标识列表相匹配;若上述预置标识列表中所记载的标识依次为标识“A”、标识“B”、标识“C”和标识“D”,则可以确定该标识列表与上述预置标识列表不匹配。

在本实施例中,响应于确定该标识列表与上述预置标识列表不匹配,上述电子设备可以利用各种更新方式,基于预置标识列表更新该标识列表。作为示例,响应于确定该标识列表与上述预置标识列表不匹配,上述电子设备可以首先删除上述预置标识列表中的、未记载于该标识列表中的标识;而后,可以提取该标识列表中的、未记载于上述预置标识列表中的标识;之后,将所提取的标识逐一地插入至上述预置标识列表中。作为示例,作为示例,该标识列表记载的标识依次为标识“A”、标识“B”、标识“D”、标识“E”和标识“F”;与该标识列表相对应的预置标识列表记载的标识依次为上述标识“A”、标识“B”、标识“C”和标识“D”。上述电子设备可以首先删除上述预置标识列表中的标识“C”;而后,提取该标识列表中的、未记载于上述预置标识列表中的标识“E”和标识“F”;然后,将标识“E”插入至上述预置标识列表中的原标识“C”的位置,并将标识“F”插入至上述预置标识列表中的标识“D”之后。

需要说明的是,在更新该标识列表后,上述电子设备可以将更新后的该标识列表存储至缓存,以便在下一次执行该负载均衡方法过程中将所存储的该标识列表作为预置列表进行提取。

步骤2023,对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合。

在本实施例中,上述电子设备可以首先从步骤201所获得的客户端信息中提取更新后的该标识列表中的各个标识所指示的客户端的IP地址。之后,上述电子设备可以对所提取的客户端的IP地址进行解析,并根据解析结果,确定该标识列表中的目标标识以生成目标标识集合。需要说明的是,对每一个标识列表进行处理后,均可以生成一个相应的目标标识集合,因而,可以得到多个目标标识集合。

在本实施例中,上述电子设备可以利用各种分析方式对所提取的客户端的IP地址进行解析,并根据解析结果,确定该标识列表中的目标标识以生成目标标识集合。作为示例,在得到更新后的该标识列表并提取该标识列表中的各个标识所指示的客户端的IP地址之后,上述电子设备可以首先对所提取的各个客户端的IP地址进行解析,确定各个客户端的IP地址对应的网段。之后,可以将所确定的各个网段和与该标识列表对应的预设网段进行匹配,并分别提取指定数量的与该预设网段相匹配的网段所对应的客户端的标识和指定数量的与该预设网段不匹配的网段所对应的客户端的标识,将所提取的客户端的标识作为目标标识以归入目标标识集合。需要说明的是,上述服务器集群中的每一个服务器可以与一个预设网段相对应,上述电子设备可以存储预设的、服务器与预设网段的映射表,并基于该映射表确定与该标识列表相对应的预设网段。

在本实施例的一些可选的实现方式中,响应于确定该标识列表与上述预置标识列表不匹配,上述电子设备可以首先提取该标识列表与上述预置标识列表中的相同标识和上述相同标识在上述预置标识列表中的次序,其中,相同标识可以是在该标识列表和上述预置标识列表均记载的标识;之后,上述电子设备可以将上述相同标识以上述次序存储至预先建立的临时标识列表;而后,可以将该标识列表中的、上述相同标识以外的标识插入至上述临时标识列表;最后,可以将该标识列表替换为上述临时标识列表以更新该标识列表。作为示例,该标识列表记载的标识依次为标识“A”、标识“B”、标识“D”、标识“E”和标识“F”;与该标识列表相对应的预置标识列表记载的标识依次为上述标识“A”、标识“B”、标识“C”和标识“D”。上述电子设备可以首先提取该标识列表与上述预置标识列表中的相同标识(标识“A”、标识“B”和标识“D”)和上述相同标识在上述预置标识列表中的次序(即分别为1、2、4)。而后,可以将所提取的标识“A”存储在临时标识列表次序为1的位置,将所提取的标识“B”存储在临时标识列表次序为2的位置,并将所提取的标识“D”存储在临时标识列表次序为4的位置。然后,上述电子设备可以提取该标识列表中的相同标识以外的标识(即标识“E”和标识“F”),并将标识“E”插入至上述临时标识列表次序为3的位置,将标识“F”插入至上述临时标识列表次序为5的位置。最后,上述电子设备可以将该标识列表替换为上述临时标识列表以更新该标识列表。

在本实施例的一些可选的实现方式中,在得到更新后的该标识列表之后,上述电子设备可以首先从所存储的服务器信息中提取上述服务器集群中的、与该标识列表相对应的服务器的IP地址。实践中,上述电子设备可以读取该标识列表所带有的服务器标识,并基于该服务器标识从所存储的服务器信息中查询到该服务器的IP地址。之后,上述电子设备可以将所提取的该服务器的IP地址确定为目标IP地址,并基于预置的、IP地址与机房标识的映射表,确定所提取的各个客户端的IP地址与上述目标IP地址是否对应同一机房标识。然后,上述电子设备可以确定所提取的客户端的IP地址中的、与上述目标IP地址对应同一机房标识的IP地址,并将所确定的IP地址对应的客户端的标识确定为第一标识;同时,上述电子设备可以将IP与上述目标IP地址对应不同机房标识的客户端的标识确定为第二标识。然后,上述电子设备可以选取该标识列表中的、预设数量(例如1、2等)的第一标识和上述预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在本实施例的一些可选的实现方式中,在得到更新后的该标识列表之后,上述电子设备可以首先确定与该标识列表中的各个标识相匹配的归入集合次数。其中,与每一个标识相匹配的归入集合次数可以是用于指示该标识被归入的目标标识集合的个数。由于每一个客户端可以订阅多个主题的消息,所订阅的多个主题的消息可以由多个服务器处理,因而该客户端可以与多个服务器连接,且由于上述服务器集群中的每个服务器可以对应按照主题划分的多个标识列表,每一个标识列表可以对应一个目标标识集合,因而,该客户端的标识可以被作为目标标识归入一个或多个目标标识集合。每归入一个目标标识集合,与该客户端的标识相匹配的归入集合次数可以增加1。需要指出的是,在每一次执行该负载均衡方法前,上述电子设备可以将与每一个客户端的标识相匹配的归入集合次数的初始值设置为零。之后,上述电子设备可以按照归入集合次数从小到大的顺序选取预设数量(例如1、2等)的第一标识,并按照上述顺序选取上述预设数量的第二标识。最后,可以将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在本实施例的一些可选的实现方式中,在得到更新后的该标识列表之后,上述电子设备可以首先确定与该标识列表中的各个标识相匹配的归入集合次数。而后,响应于确定该标识列表中不存在第一标识,可以按照归入集合次数从小到大的顺序对该标识列表中的各个标识排序。最后,按照上述顺序选取满足预设条件的标识作为目标标识以归入与该标识列表相匹配的目标标识集合。其中,上述预设条件可以是各种条件,例如,该标识位于排序后的各个标识前三位、与该标识相匹配的归入集合次数小于预设次数等。

在本实施例的一些可选的实现方式中,在将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合之后,对于每一个目标标识集合,上述电子设备还可以提取与该目标标识集合中的各个目标标识相匹配的归入集合次数,并将所提取的归入集合次数增加预设数值。实践中,该预设数值为1。

步骤203,将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。

在本实施例中,上述电子设备可以将所生成的各个目标标识集合发送至存储服务器(例如图1所示的存储服务器103),以使上述存储服务器在接收到预设服务器(例如图1所示的服务器集群105中的一个或多个服务器)发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。

继续参见图4,图4是根据本实施例的负载均衡方法的应用场景的一个示意图。在图4的应用场景中,负载均衡服务器401首先确定由第一服务器和第二服务器构成的服务器集群中的各个服务器负责处理的消息的主题,生成与第一服务器对应的按照主题划分的多个标识列表,并生成与第二服务器对应的按照主题划分的多个标识列表。之后,负载均衡服务器401对于所生成的每一个标识列表,对该标识列表依次进行提取预置标识列表、匹配预置标识列表、更新该标识列表、解析该标识列表中的标识所指示的客户端的IP地址的操作,以生成与该标识列表对应的目标标识集合。最后,负载均衡服务器401将所生成的各个目标标识集合402发送至存储服务器403,当预设服务器404向存储服务器403发送载结果获取请求时,存储服务器403将各个目标标识集合402发送至预设服务器404。

本申请的上述实施例提供的方法,通过确定服务器集群中的每一个服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅上述主题的消息的客户端的标识,以便生成与该服务器相对应的、按照主题划分的至少一个标识列表;而后提取与每一个标识列表对应的预置标识列表,并基于该标识列表与对应的预置标识列表的不匹配,更新该标识列表,并对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;最后将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。从而,可以基于对IP地址的解析进行负载分配,以减少解决跨机房、跨数据中心部署的连接数量,从而提高了建立连接的效率;同时,可以基于标识列表与预置标识列表的比对进行标识列表的更新,进而进行负载分配,提高了连接的稳定性。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种负载均衡装置的一个实施例,该装置实施例与图2所示的方法实施例相对应。该装置具体可以应用于各种电子设备中。

如图5所示,本实施例所述的负载均衡装置500包括:生成单元501,配置用于对于上述服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅上述主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;更新单元502,配置用于对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与上述预置标识列表不匹配,基于上述预置标识列表更新该标识列表;对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;发送单元503,配置用于将所生成的各个目标标识集合发送至上述存储服务器,以使上述存储服务器在接收到上述预设服务器发送的负载结果获取请求时将各个目标标识集合发送至上述预设服务器。

在本实施例中,对于服务器集群中的每一个服务器,上述生成单元501可以基于所获取的客户端信息确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表。

在本实施例中,对于所生成的每一个标识列表,上述更新单元502可以首先提取与该标识列表相对应的预置标识列表,其中,与该标识列表相对应的预置标识列表可以是带有相同服务器标识且带有相同主题标识的预置标识列表。之后,可以进行该标识列表与上述预置标识列表的比对,以确定该标识列表与上述预置标识列表是否相匹配。响应于确定该标识列表与预置标识列表不匹配,上述更新单元502可以利用各种更新方式,基于预置标识列表更新该标识列表。然后,上述更新单元502可以首先提取更新后的该标识列表中的各个标识所指示的客户端的IP地址,可以利用各种分析方式对所提取的客户端的IP地址进行解析,并根据解析结果,确定该标识列表中的目标标识以生成目标标识集合。

在本实施例的一些可选的实现方式中,上述更新单元502可以进一步配置用于对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与上述预置标识列表不匹配,提取该标识列表与上述预置标识列表中的相同标识和上述相同标识在上述预置标识列表中的次序;将上述相同标识以上述次序存储至预先建立的临时标识列表;将该标识列表中的、上述相同标识以外的标识插入至上述临时标识列表;将该标识列表替换为上述临时标识列表以更新该标识列表。

在本实施例的一些可选的实现方式中,上述更新单元502可以进一步配置用于对于更新后的每一个标识列表,提取该标识列表中的各个标识所指示的客户端的IP地址,并提取上述服务器集群中的、与该标识列表相对应的服务器的IP地址,将所提取的服务器的IP地址确定为目标IP地址;基于预置的、IP地址与机房标识的映射表,确定所提取的各个客户端的IP地址与上述目标IP地址是否对应同一机房标识;将IP地址与上述目标IP地址对应同一机房标识的客户端的标识确定为第一标识,将IP与上述目标IP地址对应不同机房标识的客户端的标识确定为第二标识;选取该标识列表中的、预设数量的第一标识和上述预设数量的第二标识,并将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在本实施例的一些可选的实现方式中,上述更新单元502可以进一步配置用于对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;按照归入集合次数从小到大的顺序选取预设数量的第一标识,并按照上述顺序选取上述预设数量的第二标识;将所选取的第一标识和第二标识确定为目标标识以归入与该标识列表相匹配的目标标识集合。

在本实施例的一些可选的实现方式中,上述更新单元502可以进一步配置用于对于更新后的每一个标识列表,确定与该标识列表中的各个标识相匹配的归入集合次数;响应于确定该标识列表中不存在第一标识,按照归入集合次数从小到大的顺序对该标识列表中的各个标识排序;按照上述顺序选取满足预设条件的标识作为目标标识以归入与该标识列表相匹配的目标标识集合。

在一些实施例中,上述更新单元502可以进一步配置用于将与所生成的目标标识集合中的各个目标标识相匹配的归入集合次数增加预设数值。

在本实施例中,上述发送单元503可以将所生成的各个目标标识集合发送至存储服务器(例如图1所示的存储服务器103),以使上述存储服务器在接收到预设服务器(例如图1所示的服务器集群105中的一个或多个服务器)发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。

本申请的上述实施例提供的装置,通过生成单元501确定服务器集群中的每一个服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅上述主题的消息的客户端的标识,以便生成与该服务器相对应的、按照主题划分的至少一个标识列表;而后更新单元502提取与每一个标识列表对应的预置标识列表,并基于该标识列表与对应的预置标识列表的不匹配,更新该标识列表,并对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;最后发送单元503将所生成的各个目标标识集合发送至存储服务器,以使存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器。从而,可以基于对IP地址的解析进行负载分配,以减少解决跨机房、跨数据中心部署的连接数量,从而提高了建立连接的效率;同时,可以基于标识列表与预置标识列表的比对进行标识列表的更新,进而进行负载分配,提高了连接的稳定性。

进一步参考图6,其示出了根据本申请的负载均衡系统中各装置之间的交互过程的示意图600。

负载均衡系统负载均衡服务器、存储服务器、客户端、由多个服务器构成的服务器集群,上述多个服务器包括预设服务器。上述负载均衡服务器,用于对于上述服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅上述主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与上述预置标识列表不匹配,基于上述预置标识列表更新该标识列表;对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;将所生成的各个目标标识集合发送至上述存储服务器。上述存储服务器,用于响应于接收到上述预设服务器发送的负载结果获取请求,将各个目标标识集合发送至上述预设服务器。上述预设服务器,用于响应于接收到客户端发送的服务器集群信息获取请求,将各个目标标识集合发送至客户端。上述客户端,用于基于目标标识集合与相应的上述服务器集群中的服务器建立连接。

如图6所示,负载均衡系统中,各装置之间的交互过程600可以包括以下步骤:

步骤601,负载均衡服务器对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表。

在本实施例中,对于服务器集群中的每一个服务器,负载均衡服务器可以基于所获取的客户端信息确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表。

步骤602,负载均衡服务器对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与上述预置标识列表不匹配,基于上述预置标识列表更新该标识列表,对更新后的该标识列表中的标识所指示的客户端的互联网协议IP地址进行解析以生成目标标识集合。

在本实施例中,对于所生成的每一个标识列表,负载均衡服务器可以首先提取与该标识列表相对应的预置标识列表。而后,可以进行该标识列表与上述预置标识列表的比对,以确定该标识列表与上述预置标识列表是否相匹配。最后,可以首先提取更新后的该标识列表中的各个标识所指示的客户端的IP地址,利用各种分析方式对所提取的客户端的IP地址进行解析,并根据解析结果,确定该标识列表中的目标标识以生成目标标识集合。需要说明的是,对每一个标识列表进行处理后,均可以生成一个相应的目标标识集合,因而,可以得到多个目标标识集合。

步骤603,负载均衡服务器将所生成的各个目标标识集合发送至存储服务器。

在本实施例中,负载均衡服务器可以将所生成的各个目标标识集合发送至上述存储服务器。

步骤604,存储服务器响应于接收到预设服务器发送的负载结果获取请求,将各个目标标识集合发送至预设服务器。

在本实施例中,存储服务器响应于接收到上述预设服务器发送的负载结果获取请求,可以将各个目标标识集合发送至预设服务器。实践中,预设服务器可以监听存储服务器所存储的目标标识集合的更新,当预设服务器监听到更新时,可以向存储服务器发送负载结果获取请求。

步骤605,预设服务器响应于接收到客户端发送的服务器集群信息获取请求,将包含各个目标标识集合的服务器集群信息发送至客户端。

在本实施例中,预设服务器响应于接收到客户端发送的服务器集群信息获取请求,将包含各个目标标识集合的服务器集群信息发送至客户端。其中,上述客户端可以是一个或多个。服务器集群信息获取请求中可以包含该客户端所请求获取的消息的主题。上述服务器集群信息中还可以包括上述服务器集群中的各个服务器的服务器信息,例如服务器的IP地址、服务器标识等等。

步骤606,客户端基于目标标识集合与相应的上述服务器集群中的服务器建立连接。

在本实施例中,客户端可以基于目标标识集合确定待连接的服务器集群中的服务器,并与所确定的服务器建立连接。实践中,未基于目标标识集合确定出待连接的服务器,则可以将所发送的集群信息获取请求所包含的消息的主题确定为目标主题,与上述服务器集群中的、负责处理该目标主题的消息的全部服务器建立连接。

本申请的上述实施例提供的系统,通过负载均衡服务器生成目标标识集合并将所生成的各个目标标识集合发送至存储服务器;存储服务器在接收到预设服务器发送的负载结果获取请求时将各个目标标识集合发送至预设服务器;预设服务器响应于接收到客户端发送的服务器集群信息获取请求,将各个目标标识集合发送至客户端;客户端基于目标标识集合与相应的上述服务器集群中的服务器建立连接。从而,可以基于对IP地址的解析进行负载分配,以减少解决跨机房、跨数据中心部署的连接数量,从而提高了建立连接的效率;同时,可以基于标识列表与预置标识列表的比对进行标识列表的更新,进而进行负载分配,提高了连接的稳定性。

下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机系统700的结构示意图。图7示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括生成单元、更新单元和发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,生成单元还可以被描述为“生成标识列表的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:对于服务器集群中的每一个服务器,确定该服务器负责处理的消息的主题,并确定与该服务器已建立连接且已订阅该主题的消息的客户端的标识,以生成与该服务器相对应的、按照主题划分的至少一个标识列表;对于所生成的每一个标识列表,提取与该标识列表相对应的预置标识列表,响应于确定该标识列表与该预置标识列表不匹配,基于该预置标识列表更新该标识列表;对更新后的该标识列表中的标识所指示的客户端的IP地址进行解析以生成目标标识集合;将所生成的各个目标标识集合发送至存储服务器。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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