服务器集群的负载均衡方法及负载均衡系统的制作方法

文档序号:10597291阅读:365来源:国知局
服务器集群的负载均衡方法及负载均衡系统的制作方法
【专利摘要】本发明提供了一种服务器集群的负载均衡方法及负载均衡系统,其中,所述服务器集群的负载均衡方法,包括:向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合;其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。本发明的技术方案可以减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
【专利说明】
服务器集群的负载均衡方法及负载均衡系统
技术领域
[0001]本发明涉及集群服务器技术领域,具体而言,涉及一种服务器集群的负载均衡方法和一种服务器集群的负载均衡系统。
【背景技术】
[0002]随着即时通讯用户的不断增加,即时通讯服务器的访问量也急剧增加,进而导致即时通讯服务器的性能压力也不断加大。为了满足用户对即时通讯的性能要求,因此相关技术中引入了服务器负载均衡的概念,即实现客户端可访问多台同时工作的服务器,动态分配每一个应用请求到后台的服务器。
[0003]图1示出了即时通讯服务器负载均衡的通用模型,其中,一个集群内包含多个服务器节点(如图1中所示的服务器S1、服务器S2、服务器S3、服务器S4和服务器S5),每个客户端连接的具体消息服务器地址是根据分配策略(比如负载最小策略)动态分配的,假如客户端Cl连接服务器SI,客户端C2连接服务器S2,则当客户端Cl给客户端C2发送消息时,服务器SI必须要知道客户端C2连接的服务器S2,以将客户端Cl发来的消息转发到服务器S2,然后由服务器S2转发给客户端C2。
[0004]在传统的负载均衡模型下,由于客户端连接的服务器动态分配,客户端每次连接服务器后,尤其当大量客户端频繁上线下线时,服务器间都需要将连接信息在所有节点间同步,很容易导致死锁等问题,最终可能导致用户量下降,尤其在节点多的情况下,每两个节点间都要同步数据,形成复杂的网状结构,增加了服务器的负担,影响即时通讯服务器的性能。
[0005]因此,如何能够减少服务器间同步客户端信息的工作量,以减轻服务器的负担,提高服务器的处理效率成为亟待解决的技术问题。

【发明内容】

[0006]本发明正是基于上述技术问题至少之一,提出了一种新的服务器集群的负载均衡方案,可以减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0007]有鉴于此,根据本发明的第一方面,提出了一种服务器集群的负载均衡方法,包括:向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合;其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。
[0008]在该技术方案中,通过向客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,且每个服务器存储有服务器集群中的任一服务器对应的标识码区间,使得服务器集群中的每个服务器都能够管理固定的客户端,并且都能够根据存储的信息知晓服务器集群中的其它服务器管理的客户端集合,进而能够减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0009]在上述技术方案中,优选地,还包括:第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息;所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器;所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。
[0010]在该技术方案中,由于服务器集群中的每个服务器已经存储了其它服务器对应的标识码区间,即已经知晓了其它服务器管理的客户端集合,进而在需要将客户端发送的消息转发至管理接收方客户端的服务器时,能够根据存储的信息来确定,无需频繁地与其它服务器进行信息的同步而导致服务器的处理负担较大的问题。
[0011]在上述任一技术方案中,优选地,还包括:
[0012]检测所述服务器集群中的每个服务器的负载状态;根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间,并触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0013]在该技术方案中,通过根据每个服务器的负载状态,调整向每个服务器分配的标识码区间,并触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在保证服务器集群之间的负载均衡的前提下,及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。
[0014]其中,服务器的负载状态包括客户端的在线数量,若客户端的在线数量过多,则说明服务器的负载较大,则可以向负载较小的其它服务器分配一部分负载,具体可通过调整向服务器分配的标识码区间来实现。
[0015]在上述任一技术方案中,优选地,还包括:在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0016]在该技术方案中,通过在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除服务器集群中的指定服务器和/或指定标识码区间的指令时,触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在改变标识码区间和服务器集群中的服务器数量时,能够及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。同时,在本发明提出的服务器集群的负载均衡方法的基础上,能够方便地实现扩容。
[0017]在上述任一技术方案中,优选地,所述标识码包括整型数字。
[0018]根据本发明的第二方面,还提出了一种服务器集群的负载均衡系统,包括:分配单元,用于向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合;其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。
[0019]在该技术方案中,通过向客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,且每个服务器存储有服务器集群中的任一服务器对应的标识码区间,使得服务器集群中的每个服务器都能够管理固定的客户端,并且都能够根据存储的信息知晓服务器集群中的其它服务器管理的客户端集合,进而能够减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0020]在上述技术方案中,优选地,第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息;所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器;所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。
[0021]在该技术方案中,由于服务器集群中的每个服务器已经存储了其它服务器对应的标识码区间,即已经知晓了其它服务器管理的客户端集合,进而在需要将客户端发送的消息转发至管理接收方客户端的服务器时,能够根据存储的信息来确定,无需频繁地与其它服务器进行信息的同步而导致服务器的处理负担较大的问题。
[0022]在上述任一技术方案中,优选地,还包括:检测单元,用于检测所述服务器集群中的每个服务器的负载状态;调整单元,用于根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间;以及第一触发单元,用于触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0023]在该技术方案中,通过根据每个服务器的负载状态,调整向每个服务器分配的标识码区间,并触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在保证服务器集群之间的负载均衡的前提下,及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。
[0024]其中,服务器的负载状态包括客户端的在线数量,若客户端的在线数量过多,则说明服务器的负载较大,则可以向负载较小的其它服务器分配一部分负载,具体可通过调整向服务器分配的标识码区间来实现。
[0025]在上述任一技术方案中,优选地,还包括:第二触发单元,用于在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0026]在该技术方案中,通过在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除服务器集群中的指定服务器和/或指定标识码区间的指令时,触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在改变标识码区间和服务器集群中的服务器数量时,能够及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。同时,在本发明提出的服务器集群的负载均衡系统的基础上,能够方便地实现扩容。
[0027]在上述任一技术方案中,优选地,所述标识码包括整型数字。
[0028]通过以上技术方案,可以减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
【附图说明】
[0029]图1示出了相关技术中使用的即时通讯服务器负载均衡的通用模型示意图;
[0030]图2示出了根据本发明的实施例的服务器集群的负载均衡方法的示意流程图;
[0031]图3示出了根据本发明的实施例的服务器集群的负载均衡系统的示意框图;
[0032]图4示出了根据本发明的实施例的即时通讯服务器负载均衡的模型示意图。
【具体实施方式】
[0033]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0034]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0035]图2示出了根据本发明的实施例的服务器集群的负载均衡方法的示意流程图。
[0036]如图2所示,根据本发明的实施例的服务器集群的负载均衡方法,包括:
[0037]步骤202,向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合;其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。
[0038]在该技术方案中,通过向客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,且每个服务器存储有服务器集群中的任一服务器对应的标识码区间,使得服务器集群中的每个服务器都能够管理固定的客户端,并且都能够根据存储的信息知晓服务器集群中的其它服务器管理的客户端集合,进而能够减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0039]在上述技术方案中,优选地,还包括:第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息;所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器;所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。
[0040]在该技术方案中,由于服务器集群中的每个服务器已经存储了其它服务器对应的标识码区间,即已经知晓了其它服务器管理的客户端集合,进而在需要将客户端发送的消息转发至管理接收方客户端的服务器时,能够根据存储的信息来确定,无需频繁地与其它服务器进行信息的同步而导致服务器的处理负担较大的问题。
[0041]在上述任一技术方案中,优选地,还包括:
[0042]检测所述服务器集群中的每个服务器的负载状态;根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间,并触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0043]在该技术方案中,通过根据每个服务器的负载状态,调整向每个服务器分配的标识码区间,并触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在保证服务器集群之间的负载均衡的前提下,及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。
[0044]其中,服务器的负载状态包括客户端的在线数量,若客户端的在线数量过多,则说明服务器的负载较大,则可以向负载较小的其它服务器分配一部分负载,具体可通过调整向服务器分配的标识码区间来实现。
[0045]在上述任一技术方案中,优选地,还包括:在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0046]在该技术方案中,通过在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除服务器集群中的指定服务器和/或指定标识码区间的指令时,触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在改变标识码区间和服务器集群中的服务器数量时,能够及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。同时,在本发明提出的服务器集群的负载均衡方法的基础上,能够方便地实现扩容。
[0047]在上述任一技术方案中,优选地,所述标识码包括整型数字。
[0048]图3示出了根据本发明的实施例的服务器集群的负载均衡系统的示意框图。
[0049]如图3所示,根据本发明的实施例的服务器集群的负载均衡系统300,包括:
[0050]分配单元302,用于向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合;其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。
[0051]在该技术方案中,通过向客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,且每个服务器存储有服务器集群中的任一服务器对应的标识码区间,使得服务器集群中的每个服务器都能够管理固定的客户端,并且都能够根据存储的信息知晓服务器集群中的其它服务器管理的客户端集合,进而能够减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0052]在上述技术方案中,优选地,第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息;所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器;所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。
[0053]在该技术方案中,由于服务器集群中的每个服务器已经存储了其它服务器对应的标识码区间,即已经知晓了其它服务器管理的客户端集合,进而在需要将客户端发送的消息转发至管理接收方客户端的服务器时,能够根据存储的信息来确定,无需频繁地与其它服务器进行信息的同步而导致服务器的处理负担较大的问题。
[0054]在上述任一技术方案中,优选地,还包括:检测单元304,用于检测所述服务器集群中的每个服务器的负载状态;调整单元306,用于根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间;以及第一触发单元308,用于触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0055]在该技术方案中,通过根据每个服务器的负载状态,调整向每个服务器分配的标识码区间,并触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在保证服务器集群之间的负载均衡的前提下,及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。
[0056]其中,服务器的负载状态包括客户端的在线数量,若客户端的在线数量过多,则说明服务器的负载较大,则可以向负载较小的其它服务器分配一部分负载,具体可通过调整向服务器分配的标识码区间来实现。
[0057]在上述任一技术方案中,优选地,还包括:第二触发单元310,用于在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。
[0058]在该技术方案中,通过在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除服务器集群中的指定服务器和/或指定标识码区间的指令时,触发每个服务器对存储的任一服务器对应的标识码区间进行更新,使得在改变标识码区间和服务器集群中的服务器数量时,能够及时更新每个服务器存储的信息,以保证在即时通信过程中,发送方客户端发送的消息能够准确发送至接收方客户端。同时,在本发明提出的服务器集群的负载均衡系统的基础上,能够方便地实现扩容。
[0059]在上述任一技术方案中,优选地,所述标识码包括整型数字。
[0060]以下结合图4以具体的实施例详细说明本发明的技术方案。
[0061]在本发明的一个实施例中,给每个客户端分配的标识码可以是一个整型数字,SP向每个客户端分配一个整型数字作为用户ID,然后把客户端按照号段(即区间)进行分配,每一个服务器负责管理固定号段的客户端,所有服务器都存储有号段与相应服务器的对应关系,从而减少服务器之间同步连接信息的工作量,减轻了服务器的负担,让服务器更有效地进行消息传输。
[0062]—般情况下,服务器不会更新号段与相应服务器的对应关系,即不在服务器节点之间同步相关信息,只有当某个服务器管理的客户端的在线数量大到一定极限而需要把部分号段分配给其它服务器上时,或增/减服务器或号段等情况时,才需要重新调整并更新服务器对应的用户号段。
[0063]具体地,如图4所示,若服务器402负责管理号段1(如1-10000)的客户端、服务器404负责管理号段2(如10001-20000)的客户端、服务器406负责管理号段3(如20001-30000)的客户端、服务器408负责管理号段4(如30001-40000)的客户端、服务器410负责管理号段5(如40001-50000)的客户端,且客户端412的标识码属于号段1、客户端414的标识码属于号段2,那么服务器集群系统的处理过程如下:
[0064]1、所有服务器启动时加载所有号段与相应服务器的对应关系。
[0065]2、客户端412连接服务器时直接连接服务器402,不需在各节点间要同步连接信息。
[0066]3、客户端414连接服务器时直接连接服务器404,不需在各节点间要同步连接信息。
[0067]4、客户端412要发送消息给客户端414,先将消息发给服务器402,服务器402通过号段分配原则查询出来客户端414连接的服务器404。
[0068]5、服务器402把消息报文转发给服务器404。
[0069]6、服务器404把消息报文发给客户端414。
[0070]其中,当有如下情况时,需要调整服务器存储的号段与相应服务器的对应关系:
[0071]1、某个服务器管理的客户端的在线数量达到了极限;
[0072 ] 2、新增了服务器和/或号段;
[0073]3、移除了服务器和/或号段(如在运行中服务器出现了故障,需要移除)。
[0074]以上结合附图详细说明了本发明的技术方案,本发明提出了一种新的服务器集群的负载均衡方案,可以减少服务器之间同步客户端信息的工作量,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率,同时提升了用户的体验。
[0075]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种服务器集群的负载均衡方法,其特征在于,包括: 向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合; 其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。2.根据权利要求1所述的服务器集群的负载均衡方法,其特征在于,还包括: 第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息; 所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器; 所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。3.根据权利要求1所述的服务器集群的负载均衡方法,其特征在于,还包括: 检测所述服务器集群中的每个服务器的负载状态; 根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间,并触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。4.根据权利要求1所述的服务器集群的负载均衡方法,其特征在于,还包括: 在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。5.根据权利要求1至4中任一项所述的服务器集群的负载均衡方法,其特征在于,所述标识码包括整型数字。6.一种服务器集群的负载均衡系统,其特征在于,包括: 分配单元,用于向每个客户端分配标识码,并向服务器集群中的每个服务器分配标识码区间,所述标识码区间用于标识所述每个服务器管理的客户端的集合; 其中,所述每个服务器存储有所述服务器集群中的任一服务器对应的标识码区间,以用于确定所述任一服务器管理的客户端的集合。7.根据权利要求6所述的服务器集群的负载均衡系统,其特征在于: 第一客户端在向第二客户端发送消息时,向管理所述第一客户端的第一服务器发送包含所述第二客户端的标识码的消息; 所述第一服务器根据所述消息中包含的所述第二客户端的标识码和存储的所述任一服务器对应的标识码区间,确定管理所述第二客户端的第二服务器的信息,并将所述消息发送至所述第二服务器; 所述第二服务器根据所述消息中包含的所述第二客户端的标识码,将所述消息发送至所述第二客户端。8.根据权利要求6所述的服务器集群的负载均衡系统,其特征在于,还包括: 检测单元,用于检测所述服务器集群中的每个服务器的负载状态; 调整单元,用于根据所述每个服务器的负载状态,调整向所述每个服务器分配的标识码区间;以及 第一触发单元,用于触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。9.根据权利要求6所述的服务器集群的负载均衡系统,其特征在于,还包括: 第二触发单元,用于在接收到新增服务器和/或标识码区间的指令时,和/或在接收到移除所述服务器集群中的指定服务器和/或指定标识码区间的指令时,触发所述每个服务器对存储的任一服务器对应的标识码区间进行更新。10.根据权利要求6至9中任一项所述的服务器集群的负载均衡系统,其特征在于,所述标识码包括整型数字。
【文档编号】H04L29/08GK105959410SQ201610497277
【公开日】2016年9月21日
【申请日】2016年6月29日
【发明人】漆利华, 左召梅, 黄维丰
【申请人】深圳中兴网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1