一种负载均衡系统和方法与流程

文档序号:11254105阅读:389来源:国知局
一种负载均衡系统和方法与流程

本发明涉及数据通信技术领域,特别是涉及一种负载均衡系统和方法。



背景技术:

传统的负载均衡系统包括多个终端、多个逻辑运算服务器和一个前置机。通过把系统负载根据逻辑范围分配到多个逻辑运算服务器上,并把各个逻辑运算服务器的状态信息存储在前置机内。当有新接入的终端需要连接服务器时,终端可以向前置机发出请求,前置机根据其存储的状态信息来判断哪些逻辑运算服务器可以对该终端的请求进行处理,从而将该终端分配给相应的逻辑运算服务器进行业务处理。

但是,当终端的数量巨大,前置机接收到超负荷的连接请求时,容易使前置机系统崩溃,从而无法实现终端与相应服务器之间的数据交互。



技术实现要素:

本发明提供了一种负载均衡系统和方法,以解决传统技术中的负载均衡系统所存在的终端无法及时高效的与服务器进行数据交互的问题。

为了解决上述问题,根据本发明的一个方面,本发明公开了一种负载均衡系统,所述系统包括:主服务器、至少两个负载服务器、至少两个终端,

所述负载服务器,用于接收并处理目标终端的业务请求,并将对所述业务请求进行处理时所产生的业务数据上报至所述主服务器,其中,所述目标终端的网络地址与所述负载服务器的网络地址属于相同网络区域段;

所述主服务器,用于接收并处理所述负载服务器上报的业务数据,并将所述业务数据的处理结果同步下发至所述至少两个负载服务器;

所述负载服务器,还用于将所述业务数据的处理结果返回至所述目标终端。

根据本发明的另一方面,本发明还公开了一种负载均衡方法,应用于负载均衡系统,所述系统包括:主服务器、至少两个负载服务器、至少两个终端,所述方法包括:

所述负载服务器接收并处理目标终端的业务请求,并将对所述业务请求进行处理时所产生的业务数据上报至所述主服务器,其中,所述目标终端的网络地址与所述负载服务器的网络地址属于相同网络区域段;

所述主服务器接收并处理所述负载服务器上报的业务数据,并将所述业务数据的处理结果同步下发至所述至少两个负载服务器;

所述负载服务器将所述业务数据的处理结果返回至所述目标终端。

与现有技术相比,本发明包括以下优点:

本发明通过只有属于相同网络区域段的负载服务器和终端才可以进行信息交互,能够减小每个负载服务器的处理压力;能够使终端及时高效的与负载服务器并间接与主服务器进行数据交互通信,提升数据交互效率。

附图说明

图1是本发明的一种负载均衡系统实施例的结构框图一;

图2是本发明的一种负载均衡系统实施例的结构框图二;

图3是本发明的一种负载均衡方法实施例的步骤流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1和图2,示出了本发明的一种负载均衡系统实施例的两个结构框图,所述系统包括:主服务器、至少两个负载服务器(示出了两个负载服务器)、至少两个终端(这里示出了两个终端,其中,终端可以是客户端、移动终端等终端设备,这里以客户端进行举例说明);

所述负载服务器(这里的负载服务器1或负载服务器2),用于接收并处理目标终端的业务请求,并将对所述业务请求进行处理时所产生的业务数据上报至所述主服务器;

其中,所述目标终端的网络地址与所述负载服务器的网络地址属于相同网络区域段;

例如,负载服务器1的ip地址属于某个网络区域段,那么ip地址为该网络区域段的任意一个终端(例如这里的目标终端)都可以与该负载服务器1进行信息交互。这样,每个负载服务器都对应多个可以进行数据交互的终端;而两个负载服务器的ip地址也可以属于同一个网络区域段,那么同一个终端在面向负载服务器时就可以有多个选择,即,终端可以从这两个负载服务器中选择任意一个负载服务器进行信息交互,这样当某个负载服务器的并发压力较大时,终端则可以选择与另一个属于相同网络区域段的负载服务器进行信息交互,使得终端可以及时高效的与负载服务器进行数据交互。

那么通过只有属于相同网络区域段的负载服务器和终端才可以进行信息交互,一方面缓解了传统技术中全部的终端都向前置机发送访问请求所导致的前置机处理压力大的问题,即,通过使负载服务器定向接收相应网络区域段的终端的请求,能够减小每个负载服务器的处理压力;并通过设置至少两个负载服务器,该至少两个负载服务器的网络地址可以属于相同或不同的网络区域段;当该至少两个负载服务器的网络地址属于相同的网络区域段时,可以使某个负载服务器存在故障或处理压力大而使终端未收到响应时,终端可以向另一个负载服务器进行信息交互,从而提升终端请求的处理效率;而当该至少两个负载服务器的网络地址属于不同的网络区域段时,则可以使各个负载服务器均衡的对网络地址属于不同网络区域段的多组终端进行均衡的信息交互,使分布在任何网络区域段的终端都可以与相应的负载服务器进行信息交互,从而与后续的主服务器进行信息交互,提升终端与主服务器之间的数据交互效率。

此外,当负载服务器的数量在3个或3个以上时,则各个负载服务器可以同时包括:网络地址所属的网络区域段相同的多个负载服务器,以及网络地址所属的网络区域段相同的多个负载服务器。例如负载服务器1和负载服务器2的网络地址所属的网络区域段相同,而它们的网络区域段与负载服务器3的网络地址所属的网络区域段不同。

其中,在一个实施例中,如图1所示,负载服务器可以包括数据上报模块、第一业务处理模块、第一数据同步模块、负载通信模块;

其中,第一业务处理模块可以处理客户端的请求以及向客户端下发相关的数据,当对客户端的数据请求进行处理后,可以生成业务数据(例如业务运行数据,具体而言,业务运行时数据可以是用户在线状态数据、用户之间聊天数据等)并传递给数据上报模块,或者将业务数据存储在相应的存储介质中,待需要时再从存储介质中取出该业务数据传递该数据上报模块;

数据上报模块可以将对所述业务请求进行处理时所产生的业务数据上报至所述主服务器。

所述主服务器,用于接收并处理所述负载服务器上报的业务数据,并将所述业务数据的处理结果同步下发至所述至少两个负载服务器;

其中,主服务器可以包括上报接收模块、第二业务处理模块、第二数据同步模块、负载通信代理模块;

其中,上报接收模块用于接收所述负载服务器的数据上报模块上报的业务数据,并对该业务数据进行封装适配之后交由第二业务处理模块进行处理;

第二业务处理模块主要处理与主服务器相关的业务数据以及负载服务器通过数据上报模块上报给主服务器的由上报接收模块接收之后的数据;

因此,这里第二业务处理模块就可以对上报接收模块传递的业务数据,并对该业务数据进行处理;然后,第二业务数据处理模块将所述业务数据的处理结果转发至第二数据同步模块;

第二数据同步模块就可以将处理结果同步下发至所述至少两个负载服务器的第一数据同步模块。例如这里的业务数据来自于负载服务器1,则这里在同步下发时,会将业务数据的处理结果同步下发至负载服务器1和负载服务器2,即系统中所有的负载服务器的第一数据同步模块。

或者,第二业务处理模块,也可以将业务数据的处理结果存储在相应的存储介质中,待需要时再从存储介质中取出该业务数据的处理结果转发至第二数据同步模块,从而将处理结果同步至系统中的每个负载服务器(包括上传数据的负载服务器)的第一数据同步模块。

所述负载服务器,还用于将所述业务数据的处理结果返回至所述目标终端;

其中,对于该发送请求的负载服务器1,待接收到该业务数据的处理结果后,就可以将该处理结果返回至当初的目标终端,这里为客户端1。

这样,本发明实施例通过设计一个主服务器、位于该主服务器下的至少两个负载服务器,以及每个负载服务器管理网络地址与自身属于相同网络区域段的至少一个终端的负载均衡系统,可以避免大量终端不定时请求主服务器所造成的主服务器的并发压力,减小主服务器的负载压力,同时保证各个负载服务器之间的负载均衡,实现负载服务器对终端的定向管理,使得终端能够及时高效的与负载服务器、以及主服务器进行数据交互。

可选地,继续参照图1和图2,在一个实施例中,为了解决传统技术中的负载服务器之间无法进行数据通信的问题。

所述主服务器,还用于接收所述负载服务器的负载通信请求;

其中,例如负载服务器1为了与负载服务器2进行数据通信,负载服务器1的负载通信模块可以向主服务器发送负载通信请求,其中,所述负载通信请求可以包括目标负载服务器(即负载服务器2)的地址信息(例如ip地址、mac地址等可以进行通信的地址)以及请求通信的目标内容(例如内存,即,目标内容可以是关于负载服务器2的各种参数和/或负载服务器2对终端的请求进行处理时所得到的任何有关终端的信息);

然后,主服务器的负载通信代理模块,就可以接收来自于负载服务器1的负载通信请求;

所述主服务器,还用于将所述负载通信请求发送至所述目标负载服务器;

其中,主服务器可以解析该负载通信请求,从而确定进行通信的目标负载服务器(例如负载服务器2),这样,就可以将该负载通信请求转发至负载服务器2的负载通信模块。

所述目标负载服务器,用于响应所述负载通信请求,并将响应结果返回至所述主服务器,其中,所述响应结果包括所述目标内容;

其中,负载服务器2的负载通信模块就可以对该负载通信请求进行响应,例如目标内容为负载服务器2的内存,那么就可以将内存参数带入至响应结果中返回至主服务器的负载通信代理模块。

所述主服务器,还用于将所述响应结果返回至发送所述负载通信请求的所述负载服务器。

最后,主服务器的负载通信代理模块就可以将该响应结果发生至负载服务器1的负载通信模块。

其中,在一个实施例中,负载服务器上的负载通信模块可以采用netty技术,并采用tcp协议来实现与主服务器上的负载通信代理模块通信,而主服务器上的负载通信代理模块则集成了代理功能。

这样,本发明实施例通过使负载服务器之间,通过其本身的负载通信模块通主服务器的负载通信代理模块实现了不同负载服务器之间的数据通信,实现了不同负载服务器之间的信息共享。

参照图1和图2,在另一个实施例中,在负载服务器向主服务器上报数据时,本发明实施例还可以区分数据类型进行不同方式的上报。

具体而言,所述负载服务器,还用于在将所述业务数据上报至所述主服务器之前,确定所述业务数据的类型,当所述业务数据为第一预设类型数据时,采用activemq对所述业务数据作持久化处理,将持久化处理后的业务数据上报至所述主服务器,当所述业务数据为第二预设类型数据时,采用activemq对所述业务数据作非持久化处理,将非持久化处理后的业务数据上报至所述主服务器。

以负载服务器1为例,在将所述业务数据上报至所述主服务器之前,负载服务器需要确定该业务数据的类型,当该业务数据为属于第一预设类型的重要度较高但实时性要求较低的数据(例如,客户端宿主机器的基本信息、客户端产生的日志数据等)时,可以利用activemq来对该业务数据进行持久化队列处理,再上报;而当该业务数据为属于第二预设类型的重要度较低但实时性要求较高的数据(例如,客户端提交的订单数据、客户端的在线状态数据等)时,则可以activemq来对该业务数据进行非持久化队列处理,再上报。

其中,activemq是一种开源的,实现了jms1.1规范的,面向消息的中间件,可以为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息总线,是一个完全支持jms1.1和j2ee1.4规范的jmsprovider实现,其设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。

这样,本发明实施例能够针对重要度程度和实时性要求不同的数据采用不同的数据上报方式,从而能够有针对性的不同类型的数据进行单独上传,能够满足不同类型的数据的上传要求,提升数据的上传效率。

可选地,在一个实施例中,参照图1和图2,所述主服务器和所述至少两个负载服务器均部署有关系型数据库(例如mysql数据库,或其他关系型数据库),所述主服务器上部署的第一关系型数据库与每个负载服务器上部署的第二关系型数据库之间的关系为主从关系;

所述主服务器(例如其上的第二数据同步模块),还用于将所述业务数据的处理结果存储至所述第一关系型数据库,并当所述第一关系型数据库中的数据发生变化时,将变化数据同步下发至每个负载服务器;

所述每个负载服务器(例如其上的第一数据同步模块),还用于将接收到的所述变化数据同步至本地的第二关系型数据库。

本发明实施例的数据同步由关系型数据库的主从同步机制完成。负载服务器的关系型数据库与主服务器的关系型数据库为主-从的关系,主服务器的数据发生变化之后,会通过其本身的主从同步机制将数据同步到所有的负载服务器中的数据库中,保证了主服务器和所有负载服务器之间的数据同步。

可选地,在一个实施例中,参照图1和图2,所述主服务器与每个负载服务器之间的数据交互协议包括xmpp协议。

其中,负载服务器可以使用基于xmpp协议开发的开源im服务tigase。

tigase是基于封装xmpp协议的基础上实现的im(即时通信)服务器。tigase服务器的实现基于java的nio技术、定时器以及异步多线程,保证了高性能、高并发处理客户端请求以及实现向客户端消息的推送。tigase组件、插件式的设计架构支持定制化的研发组件和插件,这样的设计架构不仅灵活可扩展,而且有利于处理特殊的业务请求。

该技术可以使用简单的配置即可在同一服务器中完成集群的配置,即,图1和图2中示出了负载服务器1可以是一个服务器集群,通过使用集群可以减少单一的负载服务器在高并发的情况下造成的服务器压力过大的情况。

综上,首先,本发明实施例通过将负载服务器安装部署在不同的网络区域段,用于处理相对应的网络区域段的客户端/移动端的请求。同时,利用成熟的im服务(基于xmpp协议的即时通讯开源技术)tigase处理客户端/移动端的数据请求。其次,本发明实施例利用activemq、mysql技术,利用activemq的高效的、可扩展的、稳定的和安全的企业级消息总线,以及其高性能队列处理负载服务器向主服务器上报负载服务器的数据。为提高其上报数据的实时性以及性能,采用activemq的持久化队列以及非持久化队列的方式分别处理不同类型的上报数据,持久化的方式用于重要数据且实时性要求较低的数据上报,非持久化的方式用于次要且实时性要求较高的数据上报。此外,还利用mysql的主从同步机制,完成主服务器以及负载服务器之间的数据同步问题。最后,利用netty技术,通过主服务器作为代理,解决负载服务器之间的数据通信问题。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

与上述本发明实施例所提供的系统相对应,参照图3,示出了本发明一种负载均衡方法实施例的步骤流程图,应用于负载均衡系统,所述系统包括:主服务器、至少两个负载服务器、至少两个终端,具体可以包括如下步骤:

步骤101,所述负载服务器接收并处理目标终端的业务请求,并将对所述业务请求进行处理时所产生的业务数据上报至所述主服务器;

其中,所述目标终端的网络地址与所述负载服务器的网络地址属于相同网络区域段;

步骤102,所述主服务器接收并处理所述负载服务器上报的业务数据,并将所述业务数据的处理结果同步下发至所述至少两个负载服务器;

步骤103,所述负载服务器将所述业务数据的处理结果返回至所述目标终端。

这样,本发明实施例通过设计一个主服务器、位于该主服务器下的至少两个负载服务器,以及每个负载服务器管理网络地址与自身属于相同网络区域段的至少一个终端的负载均衡系统,并利用该系统执行负载均衡的方法可以避免大量终端不定时请求主服务器所造成的主服务器的并发压力,减小主服务器的负载压力,同时保证各个负载服务器之间的负载均衡,实现负载服务器对终端的定向管理,使得终端能够及时高效的与负载服务器、以及主服务器进行数据交互。

可选地,所述方法还包括:

所述主服务器接收所述负载服务器的负载通信请求,其中,所述负载通信请求包括目标负载服务器的地址信息以及请求通信的目标内容;

所述主服务器将所述负载通信请求发送至所述目标负载服务器;

所述目标负载服务器响应所述负载通信请求,并将响应结果返回至所述主服务器,其中,所述响应结果包括所述目标内容;

所述主服务器将所述响应结果返回至发送所述负载通信请求的所述负载服务器。

可选地,所述负载服务器在将所述业务数据上报至所述主服务器之前,所述方法还包括:

所述负载服务器确定所述业务数据的类型,当所述业务数据为第一预设类型数据时,采用activemq对所述业务数据作持久化处理,将持久化处理后的业务数据上报至所述主服务器,当所述业务数据为第二预设类型数据时,采用activemq对所述业务数据作非持久化处理,将非持久化处理后的业务数据上报至所述主服务器。

可选地,所述主服务器和所述至少两个负载服务器均部署有关系型数据库,所述主服务器上部署的第一关系型数据库与每个负载服务器上部署的第二关系型数据库之间的关系为主从关系,所述主服务器将所述业务数据的处理结果同步下发至所述至少两个负载服务器之后,所述方法还包括:

所述主服务器将所述业务数据的处理结果存储至所述第一关系型数据库,并当所述第一关系型数据库中的数据发生变化时,将变化数据同步下发至每个负载服务器;

所述每个负载服务器将接收到的所述变化数据同步至本地的第二关系型数据库。

可选地,所述主服务器与每个负载服务器之间的数据交互协议包括xmpp协议。

对于方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

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

以上对本发明所提供的一种负载均衡系统和一种负载均衡方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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