一种多集群的负载均衡方法和装置与流程

文档序号:12494952阅读:318来源:国知局
一种多集群的负载均衡方法和装置与流程

本申请涉及数据处理领域,特别是涉及一种多集群的负载均衡方法和装置。



背景技术:

随着互联网、计算机技术的发展,针对企业的业务处理系统复杂程度很高,需要处理的业务量也很大,故一般业务处理系统中都会使用中间件集群。一个中间件集群是指包括了多个作为中间件的节点所组成的集群(Cluster),而作为中间件的节点可以是位于平台(例如硬件和操作系统)与应用或用户之间的处理设备,一个节点可以是一台服务器,也可以是数据库等设备。

由于一个中间件集群中包括有多个节点,故在通过中间件集群为用户提供服务时,为了提高处理效率,一个中间件集群中各个节点的负载需要保持均衡,故一般情况下,会为一个中间件集群配置一个负载均衡单元,由该负载均衡单元接收来自用户侧的外部请求,并通过一定的负载均衡策略将外部请求分配给该中间件集群中的各个节点处理。



技术实现要素:

然而,由于一些业务量处理较大的业务处理系统一般会包括多个中间件集群,若需要为每一个中间件集群都单独配置一个负载均衡单元的话,会提高系统成本。

为了解决上述技术问题,本申请提供了一种多集群的负载均衡方法和装置,实现了为多个中间件集群只需配置一个负载均衡单元,降低了系统成本。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种多集群的负载均衡方法,应用于业务处理系统,所述业务处理系统包括多个中间件集群,所述多个中间件集群与一个负载均衡单元相连,所述方法包括:

所述负载均衡单元获取外部请求,所述外部请求携带目标集群的标识,所述目标集群为所述多个中间件集群中的一个中间件集群;

所述负载均衡单元根据所述目标集群的标识查找配置文件,确定出与所述目标集群的标识对应的多个节点位置信息;

所述负载均衡单元向目标节点分发所述外部请求,所述目标节点为所述负载均衡单元根据预设规则从所述多个节点位置信息中所选择的。

可选的,还包括:

所述负载均衡单元预先收集所述多个中间件集群中各个节点的位置信息和所属中间件集群的标识;

所述负载均衡单元根据各个节点的位置信息和所属中间件集群的标识的对应关系配置所述配置文件。

可选的,所述目标节点的位置信息包括所述目标节点的IP地址和端口信息,所述目标节点所属中间件集群的标识包括所述目标集群所提供的应用访问关键字。

可选的,所述负载均衡单元通过一个端口接收外部请求。

可选的,所述负载均衡单元为Apache代理服务器。

第二方面,一种多集群的负载均衡装置,其特征在于,应用于业务处理系统,所述业务处理系统包括多个中间件集群,所述多个中间件集群与一个负载均衡单元相连,所述装置包括获取单元、查找单元和分发单元:

所述获取单元,用于获取外部请求,所述外部请求携带目标集群的标识,所述目标集群为所述多个中间件集群中的一个中间件集群;

所述查找单元,用于根据所述目标集群的标识查找配置文件,确定出与所述目标集群的标识对应的多个节点位置信息;

所述分发单元,用于向目标节点分发所述外部请求,所述目标节点为所述负载均衡单元根据预设规则从所述多个节点位置信息中所选择的。

可选的,还包括收集单元和配置单元:

所述收集单元,用于预先收集所述多个中间件集群中各个节点的位置信息和所属中间件集群的标识;

所述配置单元,用于根据各个节点的位置信息和所属中间件集群的标识的对应关系配置所述配置文件。

可选的,所述目标节点的位置信息包括所述目标节点的IP地址和端口信息,所述目标节点所属中间件集群的标识包括所述目标集群所提供的应用访问关键字。

可选的,所述负载均衡单元通过一个端口接收外部请求。

可选的,所述负载均衡单元为Apache代理服务器。

由上述技术方案可以看出,在业务处理系统中,通过同一个负载均衡单元为多个中间件集群分发外部请求,实现负载均衡,其中当该负载均衡单元获取外部请求时,负载均衡单元根据配置文件,查找到与该外部请求所携带标识对应的目标集群,即该多个中间件集群中的一个,负载均衡单元可以根据预设的负载均衡规则从该目标集群的多个节点中确定出可以处理该外部请求的目标节点,并根据该目标节点的位置信息将该外部请求发送给该目标节点,从而实现了为多个中间件集群只需配置一个负载均衡单元,减少了系统资源的消耗,降低了系统成本。

附图说明

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

图1为本申请实施例提供的一种业务处理系统中多个中间件集群与负载均衡单元的连接关系示意图;

图2为本申请实施例提供的一种多集群的负载均衡方法的方法流程图;

图3为本申请实施例提供的一种多集群的负载均衡装置的装置结构图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

在通过中间件集群进行业务处理的业务处理系统中,一般需要为每一个中间件集群单独配置一个负载均衡单元,以实现负载均衡的为中间件集群中节点分发外部请求,例如一个业务处理系统有十个中间件集群,则需要为这十个中间件集群配置十个负载均衡单元。

然而,很多业务处理系统由于需要处理的业务量很大,会设置大量的中间件集群,如果为每一个中间件集群都单独配置一个负载均衡单元,维护大量的负载均衡单元会提高业务处理系统的搭建成本。

为此,本申请实施例提供了一种多集群的负载均衡方法和装置,在业务处理系统中,通过同一个负载均衡单元为多个中间件集群分发外部请求,实现负载均衡,其中当该负载均衡单元获取外部请求时,负载均衡单元根据配置文件,查找到与该外部请求所携带标识对应的目标集群,即该多个中间件集群中的一个,负载均衡单元可以根据预设的负载均衡规则从该目标集群的多个节点中确定出可以处理该外部请求的目标节点,并根据该目标节点的位置信息将该外部请求发送给该目标节点,从而实现了为多个中间件集群只需配置一个负载均衡单元,减少了系统资源的消耗,降低了系统成本。

在本申请实施例的业务处理系统中,其系统组成和连接结构与传统的业务处理系统有所不同。本申请的业务处理系统包括有多个中间件集群,每个中间件集群中包括了多个节点,有别于传统方式中一个中间件集群配置一个负载均衡单元,本申请中可以将多个中间件集群统一配置一个负载均衡单元,本申请并不限定将一个业务处理系统中包括的所有中间件集群都配置同一个负载均衡单元,只需要其中有多个中间件集群统一配置在一个负载均衡单元即可,例如一个业务处理系统包括十个中间件集群,可以为这十个中间件集群统一配置一个负载均衡单元,这种情况下,该业务处理系统中包括一个负载均衡单元。也可以为这十个中间件集群中六个中间件集群统一配置一个负载均衡单元,为剩余四个中间件集群统一配置另一个负载均衡单元,这种情况下,该业务处理系统中包括两个负载均衡单元。也可以为这十个中间件集群中八个中间件集群统一配置一个负载均衡单元,为剩余两个中间件集群分别独立配置一个负载均衡单元,这种情况下,该业务处理系统中包括三个负载均衡单元。也就是说,通过实施本申请实施例的技术方案,在本申请实施例中的业务处理系统中,负载均衡单元的数量显然要小于中间件集群的数量。

图1所示的是本申请实施例提供的一种业务处理系统中多个中间件集群与负载均衡单元的连接关系示意图。为了方便展示,图1中所示的是业务处理系统中的三个中间件集群,该三个中间件集群100与一个负载均衡单元200相连,由该负载均衡单元200为这三个中间件集群100提供外部请求的分发,以及向外部返回根据外部请求处理得到的响应内容的服务。在图1中,负载均衡单元200可以是一个硬件设备,例如Apache代理服务器,负载均衡单元200也可以是安装在服务器等数据处理设备上的程序或软件,例如能够实现负载均衡功能的软件。

接下来说明本申请实施例的负载均衡的实现过程,图2为本申请实施例提供的一种多集群的负载均衡方法的方法流程图,可以应用于例如图1所示的业务处理系统中,所述方法包括:

S201:所述负载均衡单元获取外部请求,所述外部请求携带目标集群的标识,所述目标集群为所述多个中间件集群中的一个中间件集群。

这里所述的外部请求主要是指来自于业务处理系统外部的请求,这类外部请求需要业务处理系统中中间件集群的节点进行处理,有些情况下,需要根据处理结果向外部请求的发送方返回相应的内容(响应)。外部请求例如可以包括由用户发出的访问某个网页所生成的请求,而通过处理而返回的相应内容可以是存储在节点上的该网页内容。

由于该外部请求一般是根据一定的目的或访问需求生成的,故当负载均衡单元接收到外部请求时,可以通过该外部请求所携带的标识明确该外部请求希望访问的是与负载均衡单元相连的哪一个中间件集群,或者说明确需要接收该外部请求的中间件集群是与负载均衡单元相连的中间件集群中的哪一个。

该外部请求可以是由用户发送的,例如图1中的用户A、用户B和用户C中的任意一个。

S202:所述负载均衡单元根据所述目标集群的标识查找配置文件,确定出与所述目标集群的标识对应的多个节点位置信息。

举例说明,负载均衡单元具有预先设置的配置文件,该配置文件中包括了与该负载均衡单元相连的中间件集群、以及这些中间件集群中各个节点的相关信息,故负载均衡单元可以根据该配置文件查找到可以接收该外部请求的目标集群,以及该目标集群中各个节点的位置信息。

该配置文件可以是负载均衡单元预设获取的,也可以是由该负载均衡单元预先采集并配置得到的。本申请实施例提供了一种预先采集配置得到该配置文件的方式。可选的,所述负载均衡单元预先收集所述多个中间件集群中各个节点的位置信息和所属中间件集群的标识;所述负载均衡单元根据各个节点的位置信息和所属中间件集群的标识的对应关系配置所述配置文件。

其中,中间件集群中各个节点的位置信息用于标识节点在网络或局域网中的位置,例如可以包括节点的IP地址和端口信息,而中间件集群的标识可以用于标识中间件集群,以区别于其他中间件集群,例如可以是应用访问关键字。

以图1中的三个中间件集群为例,分别为Cluster1,Cluster2和Cluster3,每个中间件集群均包括两个节点,那么与这三个中间件集群相连的负载均衡单元预先收集的中间件集群的相关信息可以如表1所示:

表1

负载均衡单元可以利用所收集的上述信息配置出配置文件。当负载均衡单元具体为Apache代理服务器时,该配置文件可以是http.conf,若采集到的信息为表1中的内容,那么可以根据如下格式配置http.conf:

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_http_module modules/mod_proxy_http.so

并可以在http.conf的文件末尾添加如下内容:

S203:所述负载均衡单元向目标节点分发所述外部请求,所述目标节点为所述负载均衡单元根据预设规则从所述多个节点位置信息中所选择的。

该预设规则可以是预先设定的负载均衡规则,例如可以是轮流为节点分发外部请求,也可以是相同类型的外部请求分发给同一个节点等,本申请对此不进行限定。总之,负载均衡单元可以根据预设规则从目标集群中确定出一个用于接收该外部请求的节点,即目标节点。相应的,在S202中预先采集了该目标节点的位置信息,可以包括所述目标节点的IP地址和端口信息,该目标节点所属中间件集群的标识包括该目标集群所提供的应用访问关键字。

在从配置文件中确定出该目标节点的位置信息后,可以根据该位置信息将该外部请求分发到该目标节点处,由该目标节点处理该外部请求。

可见,在业务处理系统中,通过同一个负载均衡单元为多个中间件集群分发外部请求,实现负载均衡,其中当该负载均衡单元获取外部请求时,负载均衡单元根据配置文件,查找到与该外部请求所携带标识对应的目标集群,即该多个中间件集群中的一个,负载均衡单元可以根据预设的负载均衡规则从该目标集群的多个节点中确定出可以处理该外部请求的目标节点,并根据该目标节点的位置信息将该外部请求发送给该目标节点,从而实现了为多个中间件集群只需配置一个负载均衡单元,减少了系统资源的消耗,降低了系统成本。

需要注意的是,由于负载均衡单元可以通过配置文件区分出接收到的外部请求由哪个中间件集群进行处理,故该负载均衡单元可以仅通过一个端口用于接收外部请求。由此,多个中间件集群只需要提供一个端口的访问连接,减少了配置有负载均衡单元的服务器以及配置有中间件集群的服务器在公共网络上暴露的风险,从根本上提升了服务器的安全。

图3为本申请实施例提供的一种多集群的负载均衡装置的装置结构图,应用于业务处理系统,所述业务处理系统包括多个中间件集群,所述多个中间件集群与一个负载均衡单元相连,所述装置包括获取单元301、查找单元302和分发单元303:

获取单元301,用于获取外部请求,所述外部请求携带目标集群的标识,所述目标集群为所述多个中间件集群中的一个中间件集群。

查找单元302,用于根据所述目标集群的标识查找配置文件,确定出与所述目标集群的标识对应的多个节点位置信息。

分发单元303,用于向目标节点分发所述外部请求,所述目标节点为所述负载均衡单元根据预设规则从所述多个节点位置信息中所选择的。

可选的,还包括收集单元和配置单元:

所述收集单元,用于预先收集所述多个中间件集群中各个节点的位置信息和所属中间件集群的标识;

所述配置单元,用于根据各个节点的位置信息和所属中间件集群的标识的对应关系配置所述配置文件。

可选的,所述目标节点的位置信息包括所述目标节点的IP地址和端口信息,所述目标节点所属中间件集群的标识包括所述目标集群所提供的应用访问关键字。

可选的,所述负载均衡单元通过一个端口接收外部请求。

可选的,所述负载均衡单元为Apache代理服务器。

可见,在业务处理系统中,通过同一个负载均衡单元为多个中间件集群分发外部请求,实现负载均衡,其中当该负载均衡单元获取外部请求时,负载均衡单元根据配置文件,查找到与该外部请求所携带标识对应的目标集群,即该多个中间件集群中的一个,负载均衡单元可以根据预设的负载均衡规则从该目标集群的多个节点中确定出可以处理该外部请求的目标节点,并根据该目标节点的位置信息将该外部请求发送给该目标节点,从而实现了为多个中间件集群只需配置一个负载均衡单元,减少了系统资源的消耗,降低了系统成本。

需要注意的是,由于负载均衡单元可以通过配置文件区分出接收到的外部请求由哪个中间件集群进行处理,故该负载均衡单元可以仅通过一个端口用于接收外部请求。由此,多个中间件集群只需要提供一个端口的访问连接,减少了配置有负载均衡单元的服务器以及配置有中间件集群的服务器在公共网络上暴露的风险,从根本上提升了服务器的安全。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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