负载均衡方法和负载均衡系统的制作方法

文档序号:7553413阅读:160来源:国知局
专利名称:负载均衡方法和负载均衡系统的制作方法
技术领域
本发明涉及计算机网络技术领域,更具体地,涉及一种负载均衡方法和负载均衡系统。
背景技术
在网络环境中向客户端提供服务时,为了提高系统的负载能力,经常采用多点并行服务方式。多点并行服务方式是指:网络中部署的多个服务器节点同时向客户端提供服务,当一个服务器节点工作时,客户端可以向其他服务节点提交请求使得这些服务节点并行提供服务。然而,这种多点并行服务方式的系统容易遇到各个服务节点负载不均衡的问题,例如有时不同服务器节点之间的负载量相差很大。这是由于客户端很难获取当前各个服务节点的服务状态,从而导致对某些服务器节点访问过于频繁,而对另外的服务器节点访问较少,造成各个服务节点的负载不均衡,降低整个系统的服务能力、反应速度和稳定性。为了解决这类问题,传统的方法是为系统增加一个负载均衡器。所有服务节点都由负载均衡器统一管理,负载均衡器了解所有服务节点的工作状态。客户端只能向负载均衡器提交请求,由负载均衡器根据当前各服务节点的负载情况,向客户端返回合适的服务节点的链接,客户端再向服务器节点提交请求获取服务。这种实现比较复杂,因为负载均衡器需要和各个服务器节点通信,以获取当前服务器节点的工作状态。获取服务器节点的工作状态可能需要使用独有的通信协议,以保证通信的高效稳定,这大大增加工作的复杂性。另外,传统的负载均衡器通常一个负载均衡器只负责一种服务应用、管理一组服务节点,难以管理多种服务应用。再者,使用传统的单节点负载均衡服务器容易造成系统的不稳定,例如当采用的单个负载均衡服务器出现故障时,整个系统服务将停止;大型系统负载均衡服务器压力过大也可能导致系统崩溃。

发明内容
本发明要解决的技术问题在于提高一种稳定可靠的负载均衡系统或负载均衡方法。根据本发明的一方面,提供了一种负载均衡方法,包括:在至少一个负载均衡服务器上启动并运行IceGridRegistry服务;使各个应用服务节点向所运行的IceGridRegistry服务中的至少一个注册后在所述各个应用服务节点上启动并运行相应的IceGridNode服务;每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信,其中,所述多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry服务;所述至少一个负载均衡服务器中的一个接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接;
所述客户端使用所述网络链接直接与相应的应用服务节点通信以获得服务。在可选实施例中,在每个负载均衡服务器上启动所述IceGridRegistry服务之前,配置对应于所述IceGridRegistry服务的配置文件,其中,所述配置文件包括IP地址、端口号和使用的传输层协议。在可选实施例中,在各个应用服务节点上启动一个IceGridNode服务之前,配置对应于该IceGridNode服务的配置文件,其中,所述配置文件包括指定IceGridNode服务向IceGridRegistry服务注册的IP地址、端口号和使用的传输层协议。其中,该IP地址、端口号就是运行对应的IceGridRegistry的负载均衡器的IP地址和端口号。在可选实施例中,在所述至少一个负载均衡服务器中的一个上启动并运行IceGridAdmin服务;使用所述IceGridAdmin服务向所述至少一个负载均衡服务器上要管理的IceGridRegistry服务添加应用服务;或者,使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。在可选实施例中,对于要在其上启动IceGridAdmin服务的负载均衡服务器,利用该负载均衡服务器上配置的对应于所述IceGridRegistry服务的配置文件来启动所述IceGridAdmin 服务。根据本发明的另一方面,还提供了一种负载均衡系统,包括:至少一个负载均衡服务器和多个应用服务节点,其中:所述至少一个负载均衡服务器中的一个或多个用于在其上启动并运行一个IceGridRegistry 服务;每个应用服务节点用于向所运行的IceGridRegistry服务中的至少一个注册后启动并运行相应的IceGridNode服务,并且,每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信,其中,所述多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry 服务;所述负载均衡服务器还用于在接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接,以便所述客户端使用所述网络链接直接与相应的应用服务节点通信以获得服务。在可选实施例中,所述负载均衡服务器还用于在启动IceGridRegistry服务之前,配置对应于所述IceGridRegistry服务的配置文件,其中,所述配置文件包括IP地址、端口号和使用的传输层协议。在可选实施例中,各个应用服务节点还用于在启动一个IceGridNode服务之前,配置对应于该IceGridNode服务的配置文件,其中,所述配置文件包括指定IceGridNode服务向IceGridRegistry服务注册的IP地址、端口号和使用的传输层协议。其中,该IP地址、端口号就是运行对应的IceGridRegistry服务的负载均衡器的IP地址和端口号。在可选实施例中,所述至少一个负载均衡服务器中的一个还用于执行以下功能:启动IceGridAdmin服务;以及,使用所述IceGridAdmin服务向要管理的IceGridRegistry服务添加应用服务;或者,使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。在可选实施例中,所述至少一个负载均衡服务器中的一个启动IceGridAdmin服务包括:利用其上配置的对应于所述IceGridRegistry服务的配置文件来启动IceGridAdmin 服务。本发明实施例的负载均衡系统和负载均衡方法通过采用IceGrid技术来提供稳定可靠的负载均衡服务器,从而使得各应用服务节点上的负载可以均衡,并且多负载均衡服务器的模式能够系统稳定性。


图1是根据本发明一实施例的网络架构示意图。图2是基于图1所示的网络架构的负载均衡系统的结构示意图。图3是根据本发明一实施例的负载均衡方法的流程示意图。
具体实施例方式下面结合附图对本发明实施例作进一步的详细说明。本发明实施例使用Ice中间件技术中的IceGrid服务来建立多个负载均衡服务器节点以完成系统中多个服务应用的负载均衡。所建立的各负载均衡服务器功能基本相同。在一些实施例中,各负载均衡服务器的功能完全相同。这些负载均衡服务器可并行工作,管理所有的各类服务应用,从而使得系统可以获得很高的稳定性。网络通信引擎(InternetCommunications Engine, Ice)是由ZeroC的分布式系统开发专家实现的一种高性能的面向对象中间件平台,其为构建面向对象的客户-服务器应用提供了工具、API和库支持。图1是根据本发明一实施例的网络架构示意图。如图1所示,该网络架构包括多个客户端10、多个负载均衡服务器20和多个应用服务节点30。客户端10可以向负载均衡服务器20中的任意一个发送应用服务节点请求。在一可选实施例中,任一客户端10向系统提交服务时,可以首先随机地向已知的某个负载均衡服务器提交应用服务节点请求,然后由负载均衡服务器为该客户端分配相应的应用服务节点。图2是基于图1所示的网络架构的负载均衡系统的结构示意图。该负载均衡系统包括至少一个负载均衡服务器20和多个应用服务节点30。.
每个负载均衡服务器20上可运行IceGridRegistry服务,其中IceGridRegistry服务负载用于对应用服务节点30进行管理,这包括各应用服务节点的服务内容、服务节点的增加和删除等。在一实施例中,负载均衡服务器20启动IceGridRegistry服务之前,需要配置一个配置文件,其中,配置文件中主要指定当前IceGridRegistry服务的IP地址、端口号、使用的传输层协议(例如TCP协议)等。例如,文件名为config.registry的配置文件中可以指定IP地址为本机IP、传输层协议使用默认值、端口号设定为12121 ;则启动IceGridRegistry 月艮务的命令为:icegridregistry—Ice.Config = config.registry。每个应用服务节点30上可运行IceGridNode服务,IceGridNode服务管理应用服务节点上的服务应用,同一应用服务节点可以提供多个服务。在一些实施例中,应用服务节点上的某个服务可以根据预设定在空闲时停止应用程序,这对于一个应用服务节点运行多个服务尤其重要。
在一实施例中,应用服务节点30在启动IceGridNode服务之前,需要配置一个配置文件,配置文件中主要指定要注册IceGridRegistry服务的该IceGridNode服务的IP地址、端口号、使用的传输层协议等。例如,文件名为config.nodel的IP地址配置为
10.0.31.186,传输层协议使用TCP协议、端口号设定为12011 ;则启动IceGridNode服务的命令为:icegridnode —Ice.Config = config.nodel。然后,IceGridNode服务会与IceGridRegistry服务通信以保证负载均衡服务器的良好运行。例如,每个IceGridNode通过IP地址等参数与不同的IceGridRegistry服务进行通信,相互之间完全独立,互不影响。在可选实施例中,每个应用服务节点都可以运行多个IceGridNode服务,以对应多个负载均衡服务器,从而每个应用服务节点都可以通过其上的一个IceGridNode服务与多个负载均衡服务器中每一个上的IceGridRegistry服务通信。负载均衡服务器20中的一个接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接。然后,所述客户端使用该网络链接直接与相应的应用服务节点通信以获得服务。例如,负载均衡服务器20可以与对应的应用服务节点30(也即IceGridNode)通信获取应用服务的socket ;然后负载均衡服务器20将通信的socket发送给客户端。在一实施例中,客户端将应用服务节点请求随机发送给某个负载均衡服务器,如果该负载均衡服务器出现故障,则客户端可以在负载均衡服务器超时时,向其他负载均衡服务器提交应用服务节点请求。在另一实施例中,客户端可以采用轮询的方式将应用服务节点请求发送给多个负载均衡服务器中的一个。进一步地,在本发明另一实施例的负载均衡系统中,在负载均衡服务器20上运行IceGridRegistry服务以及在应用服务节点30上运行IceGridNode服务之后,还可以在负载均衡服务器20上启动IceGridAdmin服务,从而使用IceGridAdmin服务向IceGridRegistry服务添加应用服务。具体地,使用IceGridAdmin服务进行管理时首先要指定要管理的IceGridRegistry服务,这个可以通过配置文件来指定。 在一可选实施例中,如果要启动的IceGridAdmin服务和某个已运行的IceGridRegistry在同一负载均衡服务器,那么可以使用同一个配置文件,即启动该负载均衡服务器上的IceGridRegistry服务时所用的配置文件,这时IceGridAdmin管理本节点的IceGridRegistry。在另一可选实施例中,可以是在任意节点上启动并运行IceGridAdmin服务,在配置文件中指定要管理的IceGridRegistry的IP和P0RT,这样可以管理其他节点上的 IceGridRegistry 服务。另外,向IceGridRegistry中添加应用服务,应用需配置在一个xml文件中。配置文件中指定了应用服务的文件路径等信息,配置文件中指定了应用服务的文件路径等信息。例如,添加应用服务的命令为:icegridadmin —Ice.Config = config.registry “application add ‘application, xml”,。在进一步的实施例中,还可以使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。根据本发明的另一实施例,还提供了一种负载均衡方法,如图3所示,该负载均衡方法包括:
S101,在至少一个负载均衡服务器上启动并运行IceGridRegistry服务。S102,使各个应用服务节点向所运行的IceGridRegistry服务中的至少一个注册后在所述各个应用服务节点上启动并运行相应的IceGridNode服务。在可选实施例中,在每个负载均衡服务器启动所述IceGridRegistry服务之前,配置对应于所述IceGridRegistry服务的配置文件。例如,所述配置文件可包括IP地址、端口号和使用的传输层协议。例如,对每个负载均衡服务器配置该配置文件可以由管理员进行操作,或者,负载均衡服务器上的配置模块进行配置。S103,每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信。其中,该多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry服务。例如,在使用多个负载均衡服务器的情况下,每个IceGridNode服务通过IP地址等参数与不同的IceGridRegistry服务(分别在不同的负载均衡服务器上运行)进行通信。在可选实施例中,在各个应用服务节点上启动一个IceGridNode服务之前,配置对应于该IceGridNode服务的配置文件,其中,所述配置文件包括指定IceGridNode服务向IceGridRegistry服务注册的IP地址、端口号和使用的传输层协议。类似地,该配置文件可以通过管理员对各个应用服务节点进行操作来配置,也可以是由各应用服务节点上的配置模块来进行配置。S104,至少一个负载均衡服务器中的一个接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接。S105,客户端使用所述网络链接直接与相应的应用服务节点通信以获得服务。在本发明另一可选实施例的负载均衡方法中,在步骤S103之后以及步骤S104之前,还包括:在所述至少一个负载均衡服务器中的一个上启动并运行IceGridAdmin服务;使用所述IceGridAdmin服务向所述至少一个负载均衡服务器上要管理的IceGridRegistry服务添加应用服务。在进一步的可选实施例中,还可以包括使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。在另一可选实施例中,某一负载均衡服务器要在其上启动IceGridAdmin服务,可以利用其上配置的对应于所述IceGridRegistry服务的配置文件来启动所述IceGridAdmin 服务。关于本发明实施例的负载均衡方法的进一步详细实现可以参考前面关于负载均衡系统的描述。本发明实施例采用IceGrid技术来实现应用服务节点上的负载均衡和稳定。传统的负载均衡系统,由客户端、负载均衡器和应用服务器自己实现网络通信模块,较难保证网络通信的稳定可靠,而且对于系统中的各种错误处理复杂。本发明实施例提出的基于IceGrid技术的负载均衡系统和均衡方法向客户端与应用服务器或节点屏蔽了网络通信的底层细节,自动实现了网络通信模块。而且,传统负载均衡服务器与应用服务器或节点要专门实现交换负载信息的逻辑,必要时设计专用通信协议;基于IceGird技术的负载均衡系统或方法由于具有可靠稳定的负载调控策略,因此可以降低实现负载均衡系统或方法的复杂度。此外,传统负载均衡服务器基于复杂度的考虑一般采用单负载均衡服务器模式,这使得在新系统应用中成为瓶颈,而本发明实施例的负载均衡系统或方法采用多负载均衡服务节点技术,可以避免因负载均衡服务器故障导致的不稳定,并且与传统负载均衡服务器相t匕,这种负载均衡方案对整个系统升级与维护简单可靠,例如,维护某个应用服务节点时只需使用IceGridAdmin服务从各个IceGridRegistry服务中将该节点进行删除即可,要增加应用服务节点也只需使用IceGridAdmin服务向各个IceGridRegistry服务中增加该节点;而要维护负载均衡节点可以直接断掉以对其进行维护。在此提供的算法和实现不限于任何特定的计算机、虚拟系统或者其它设备。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或部件,以及此外可以把它们分成多个子模块或子单元或子部件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本申请的说明书中虽然描述了本发明实施例的大量具体细节,然而,能够理解,本发明实施例并不是必须在所有的具体细节情况下才能实施。在一些实例中,并未详细示出公知的方法、结构和技术,以便于清楚地理解本发明的发明主旨。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种负载均衡方法,包括: 在至少一个负载均衡服务器上启动并运行IceGridRegistry服务; 使各个应用服务节点向所运行的IceGridRegistry服务中的至少一个注册后在所述各个应用服务节点上启动并运行相应的IceGridNode服务; 每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信,其中,所述多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry服务; 所述至少一个负载均衡服务器中的一个接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接; 所述客户端使用所述网络链接直接与相应的应用服务节点通信以获得服务。
2.根据权利要求1所述的负载均衡方法,其特征在于: 在每个负载均衡服务器上启动所述IceGridRegistry服务之前,配置对应于所述IceGridRegistry服务的配置文件,其中,所述配置文件包括IP地址、端口号和使用的传输层协议。
3.根据权利要求1所述的负载均衡方法,其特征在于: 在各个应用服务节点上启动一个IceGridNode服务之前,配置对应于该IceGridNode服务的配置文件,其中,所述配置文件包括指定IceGridNode服务向IceGridRegistry服务注册的IP地址、端口号和使用的传输层协议。
4.根据权利要求1或2所述的负载均衡方法,其特征在于: 在所述至少一个负载均衡服务器中的一个上启动并运行IceGridAdmin服务; 使用所述IceGridAdmin服务向所述至少一个负载均衡服务器上要管理的IceGridRegistry服务添加应用服务;或者,使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。
5.根据权利要求4所述的负载均衡方法,其特征在于: 对于要在其上启动IceGridAdmin服务的负载均衡服务器,利用该负载均衡服务器上配置的对应于所述IceGridRegistry服务的配置文件来启动所述IceGridAdmin服务。
6.一种负载均衡系统,包括:至少一个负载均衡服务器和多个应用服务节点,其中: 所述至少一个负载均衡服务器中的一个或多个用于在其上启动并运行一个IceGridRegistry 服务; 每个应用服务节点用于向所运行的IceGridRegistry服务中的至少一个注册后启动并运行相应的IceGridNode服务,并且,每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信,其中,所述多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry 服务; 所述负载均衡服务器还用于在接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接,以便所述客户端使用所述网络链接直接与相应的应用服务节点通信以获得服务。
7.根据权利要求6所述的负载均衡系统,其特征在于,所述负载均衡服务器还用于在启动所述IceGridRegistry服务之前,配置对应于所述IceGridRegistry服务的配置文件,其中,所述配置文件包括IP地址、端口号和使用的传输层协议。
8.根据权利要求6所述的负载均衡系统,其特征在于,各个应用服务节点还用于在启动一个IceGridNode服务之前,配置对应于该IceGridNode服务的配置文件,其中,所述配置文件包括指定IceGridNode服务向IceGridRegistry服务注册的IP地址、端口号和使用的传输层协议。
9.根据权利要求6或7所述的负载均衡系统,其特征在于,所述至少一个负载均衡服务器中的一个还用于执行以下功能: 启动IceGridAdmin服务;以及, 使用所述IceGridAdmin服务向要管理的IceGridRegistry服务添加应用服务;或者,使用所述IceGridAdmin服务在各个IceGridRegistry服务中删除或增加同一应用服务节点。
10.根据权利要求9所述的负载均衡系统,其特征在于,所述至少一个负载均衡服务器中的一个启动IceGridAdmin服务包括: 利用其上配置的对 应于所述IceGridRegistry服务的配置文件来启动IceGridAdmin服务。
全文摘要
本发明公开了一种负载均衡方法,包括在至少一个负载均衡服务器上启动并运行IceGridRegistry服务;使各个应用服务节点向所运行的IceGridRegistry服务中的至少一个注册后在各个应用服务节点上启动并运行相应的IceGridNode服务;每个应用服务节点上运行的一个或多个IceGridNode服务与相应的负载均衡服务器上运行的IceGridRegistry服务进行通信,其中,所述多个IceGridNode服务分别对应于不同负载均衡服务器上的一个IceGridRegistry服务;所述至少一个负载均衡服务器中的一个接收到来自客户端的应用服务节点请求后,根据负载均衡策略向所述客户端提供到相应的应用服务节点的网络链接;客户端使用该网络链接直接与相应的应用服务节点通信以获得服务。本发明还提供了一种负载均衡系统。采用本发明,可以提供稳定可靠的负载均衡服务。
文档编号H04L29/08GK103118142SQ20131008169
公开日2013年5月22日 申请日期2013年3月14日 优先权日2013年3月14日
发明者王少佳, 宋怀明, 苗艳超, 刘新春, 邵宗有 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1