CN102164116B - 均衡负载的方法、系统及相应设备 - Google Patents
均衡负载的方法、系统及相应设备 Download PDFInfo
- Publication number
- CN102164116B CN102164116B CN2010101370258A CN201010137025A CN102164116B CN 102164116 B CN102164116 B CN 102164116B CN 2010101370258 A CN2010101370258 A CN 2010101370258A CN 201010137025 A CN201010137025 A CN 201010137025A CN 102164116 B CN102164116 B CN 102164116B
- Authority
- CN
- China
- Prior art keywords
- node
- server
- group
- interchange
- address information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1038—Load balancing arrangements to avoid a single path through a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的实施例公开了一种均衡负载的方法、系统及相应设备,涉及计算机应用领域,解决了现有技术中由于引入机制过多,导致的系统复杂度增加,可用性差的技术问题。本发明的方法主要包括:端侧从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于叠加网;当所述端侧是服务器时,所述服务器存储所述地址信息,并向其中一个地址信息对应的交流节点报告其服务器信息,接收到服务器信息的交流节点将该服务器信息扩散到其他交流节点;当所述端侧是客户端时,所述客户端存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述服务器信息。本发明实施例主要应用在网络中。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种基于叠加网(overlay)上实现的均衡负载的方法、系统及相应设备。
背景技术
LVS((Linux Virtual Server,Linux虚拟服务器)是目前比较常用的一种均衡负载技术。如图1所示,在LVS技术中,客户端,即图1中的User或图形监视器(Graphic Monitor)通过Internet或Intranet将IP包发送到负载均衡器(loadbalancer),在load balancer的Linux内核这一层基于设置的负载均衡算法,loadbalancer将IP包转发到真实服务器(Real Server)。在Real Server上工作的应用进程将获取这个IP包中的相应信息作相应处理,并在处理后直接将IP包返回到客户端。这样当需要扩容时,通过增加Real server机器的数量,并在load balancer上作相应配置,来实现扩容。
LVS比较适用于互联网领域,为web服务提供负载均衡。web服务是一种上下行不对称(即:上行数据量小,下行数据量大)的应用,且上行数据必须经过load balancer,所以如果上行数据量较大,那么就有大量的IP包必须经过loadbalancer,load balancer自身的网络带宽成为了系统瓶颈。也正因为上行数据必须经过load balancer,一台load balancer的处理性能以及网络带宽毕竟有限,所以一台load balancer能够带动的Real Server数量也有限。因此当Real server的数量达到这个上限后,就不能通过简单增加Real server的数量来进行扩容了。
为了解决上述问题,现有技术引入了一些其他的机制,以便确保load balancer的服务能力。例如:在LVS中,因为所有的上下行数据皆经过load balancer,故而使load balancer形成了单点,因此需要增加一个设备(例如图中的Backup(备份)端)来为load balancer提供双机热备功能,所以又需要类似于心跳(heartbeat)机制或者keepalived机制这样的应用来实现双机热备。
在实现上述方案的过程中,发明人发现现有技术中至少存在如下问题:在实现双机热备过程中引入的机制较为复杂,并且若Real server出现了故障,还需要通过在load balancer和Real server之间传送心跳消息的机制通知load balancer,以便load balancer不会将IP包转发到出现故障的real server,但也因此加重了loadbalancer的负担。
发明内容
本发明的实施例提供一种均衡负载的方法、系统及相应设备,使系统具有较高的可用性以及平滑扩容的能力。
为达到上述目的,本发明的实施例采用如下技术方案:
一种均衡负载的方法,包括:
端侧从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于叠加网(overlay);
当所述端侧是服务器时,所述服务器存储所述地址信息,并向其中一个地址信息对应的交流节点报告其服务器信息,接收到所述服务器信息的交流节点将所述服务器信息扩散到其他交流节点;
当所述端侧是客户端时,所述客户端存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述服务器信息。
一种端设备,包括:
节点获取单元,用于从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于overlay;
存储单元,用于存储所述地址信息;
交互单元,用于向其中一个地址信息对应的交流节点报告其服务器信息;和/或,并从其中一个地址信息对应的交流节点获取服务器信息;
和/或
所述存储单元,还用于存储所述服务器信息。
一种节点设备,其中,所述节点设备属于overlay,包括:
启动单元,用于接收来自端侧获取至少一个交流节点的请求,并将可为所述端侧服务的交流节点的地址信息返回到所述端侧,其中,所述端侧包括服务器和客户端;
扩散单元,用于接收来自服务器的服务器信息,存储所述服务器信息,以及将所述服务器信息扩散到其他节点设备;
提供单元,用于接收来自客户端的服务器信息请求,并将存储的服务器信息返回到所述客户端。
一种均衡负载的系统,其特征在于,包括:
服务器,用于从节点设备中获取至少一个节点设备的地址信息,存储所述地址信息,并向其中一个地址信息对应的节点设备报告其服务器信息;
客户端,用于从节点设备中获取至少一个节点设备的地址信息,存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述获取的服务器信息;
至少一个节点设备,用于接收来自服务器和客户端的获取至少一个节点设备的请求,并将可为所述服务器和客户端服务的节点设备的地址信息返回到所述服务器和客户端,以及接收来自服务器的服务器信息,存储所述服务器信息,以及将所述服务器信息扩散到其他节点设备,并且接收来自客户端的服务器信息请求,再将存储的服务器信息返回到所述客户端;
其中,所述至少一个节点设备属于overlay。
本发明实施例提供的方案具有如下有益效果:利用overlay,以overlay中至少一个交流节点作为中介,客户端可通过该至少一个交流节点获取服务器信息从而获知可用的服务器,相应地,服务器可通过向其中一个交流节点报告其服务器信息,并通过该一个交流节点将服务器信息扩散到其它交流节点,从而使各交流节点在overlay中的功能彼此对等,因此,无单点形成,在扩容过程中,对整个系统产生的影响小,可实现平滑扩容,并且也无需为减轻单点负担,或确保单点的服务能力引入过多复杂的机制,降低了系统的复杂度,提高了系统的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为背景技术中LVS技术的应用示意图;
图2为本发明实施例1服务器作为peer时,均衡负载的方法的流程示意图;
图3为本发明实施例1周期性的更新地址信息的流程示意图;
图4为本发明实施例1客户端作为peer时,均衡负载的方法的流程示意图;
图5为本发明实施例2端设备的结构示意图;
图6为本发明实施例3节点设备的结构示意图;
图7为本发明实施例4均衡负载的系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,以下各实施例均为本发明的可选方案,实施例的排列顺序及实施例的编号与其优选执行顺序无关。
实施例1
本实施例提供一种均衡负载的方法,该方法涉及端侧(peer)和overlay。在本实施例中,在本实施例以及下述实施例中,该peer是指相对于overlay而言需要访问overlay的实体,包括客户端和服务器;该overlay是指由多个节点组成的网络,且组成该网络的多个节点彼此对等。另外,在overlay中,设peer首次访问的节点为启动节点,对参与本实例方法的overlay中的节点称为交流节点(交流节点可以同时是上述启动节点,也可以不是)。
在本实施例的方法执行前,可先进行如下部署:制定服务类型分组协议,客户端和服务器均需要遵照服务类型分组协议,该协议中根据服务类型规定了组编号,所述组编号是所述服务类型在overlay中可用的交流节点所在的组编号,或者所述协议中根据地域对应规定了可用的组编号,所述组编号是所述地域在overlay中可用的交流节点所在的组编号。这样,遵照所述协议的服务器根据其可提供的服务器类型可以获知自己可以使用哪些交流节点,同样,客户端根据其需要请求的服务类型可以获知自己可以使用些交流节点。相应地,需要对overlay中的交流节点进行分组,并为每组分配在overlay中的组编号。
另外,在上述部署后,overlay的每个交流节点可以通过闲谈算法,将其节点信息扩散到整个overlay中,因此,每个交流节点上均保存有其它交流节点的节点信息,且所述节点信息可因交流节点间的交互而时时更新,以便每个交流节点上均保存有其它交流节点最新的节点信息,该节点信息可包括:该交流节点的组编号,负载状况,IP地址等。其中,因为闲谈算法在现有技术中已有应用,所以关于该算法的具体内容在此不赘述。
下面先结合该peer是服务器时,本实施例提供的方法的具体执行过程,图2所示,包括:
步骤101,peer从启动节点中获取至少一个交流节点的地址信息。
上述peer具体是服务器,该服务器得知启动节点的地址的方法可以是操作人员在服务器上指定出启动节点的地址,也可以是启动节点发消息通知服务器自身的地址,或是其他方法,在此不做限定。
具体地,该步骤101可以通过如下方式实现:服务器根据所述服务类型分组协议的规定以及其可提供的服务类型,或者其所属地域获取组编号,并通过节点请求消息携带所述获取的组编号到所述启动节点;所述启动节点根据所述服务器发来的组编号,将overlay中与其相同组编号下的交流节点的地址信息通过节点应答消息携带到所述服务器。
例如:假设Overlay有30个交流节点(node1,node2,node3......node30),在部署时,对交流节点进行分组,假设分为10组,组编号分别为(1,2,3......10)
Node1,node2,node3所在的组编号为1;
Node4,node5,node6所在的组编号为2;
Node28,node29,node30所在的组编号为10。
假设设有四台服务器,分别为Server11,Server12,Server23,Server24,对应可提供的服务类型分别是type11,type12,type23,type24,该四台服务器遵照的服务类型分组协议中,根据服务类型规定的在overlay中可用的交流节点所属的组编号如下:
type11——组编号1
type12——组编号为1
type23——组编号为2
type24——组编号为2
服务器根据自己可提供的服务类型和服务类型分组协议的规定,获取自己的组编号。即:
Server11可使用组编号为1的交流节点;
Server12可使用组编号为1的交流节点;
Server23可使用组编号为2的交流节点;
Server24可使用组编号为2的交流节点;
这样,在服务器作为overlay的一个peer访问overlay时,可使用的组编号为1的Server11,Server12可以与组编号为1的overlay交流节点(node1,node2,node3)进行交流。
因此,以Server11为例,Server11根据其可提供的服务类型(type11)以及所述服务类型分组协议的规定(type11——组编号1)获取组编号(1),并通过节点请求消息携带所述获取的组编号1到所述启动节点;
所述启动节点根据Server11发来的组编号1,将overlay中与其相同组编号下的交流节点(node1,node2,node3)的地址信息通过节点应答消息携带到Server11。或者,
所述启动节点根据Server11发来的组编号1,选择overlay中与其相同组编号下的交流节点(node1,node2,node3)中负载较轻的交流节点,并将该同组且负载较轻的交流节点的地址信息通过节点应答消息携带到Server11。其中,node1,node2,node3的负载状况,启动节点可根据保存在其上的其它交流节点的节点信息获知。
步骤102,服务器存储所述地址信息,并向其中一个地址信息对应的交流节点报告其服务器信息,接收到所述服务器信息的交流节点将所述服务器信息扩散到其他交流节点。
该步骤102具体可通过如下方式实现:服务器通过携带组编号的心跳消息周期性地向其中一个地址信息对应的交流节点发送其服务器信息,因为接收到的地址信息可能是多个交流节点的,所以可通过随机或轮询的方式从地址信息中选取一个交流节点的地址信息;
接收到所述服务器信息的交流节点将所述服务器信息扩散到在overlay中相同组编号下的其它交流节点中;
相应地,接收到该服务器信息的所述相同组编号下的其他交流节点存储所述服务器信息。其中,上述服务器信息包括:服务器可提供的服务类型;服务器的IP地址和端口号;可选的,还包括服务器的负载状况。
例如:Server11在第一周期通过携带组编号1的心跳消息随机向node1发送;
node1接收到该心跳消息后,向node2和node3扩散Server11的服务器信息。相应地,接收到该服务器信息的node2和node3将存储该Server11的服务器信息。Server11在第二周期通过携带组编号1的心跳消息随机向node1发送,以此类推。
另外,在本实施例中,在步骤101后,即从启动节点处获取到可用的交流节点的地址信息后,还可以执行如图3所述的步骤。
步骤301,作为peer的服务器可周期性的携带获取的组编号向其中一个地址信息所对应的交流节点发送节点请求消息。
例如:服务器从启动节点处获取了A、B、C三个交流节点的地址信息。服务器携带组编号1向A发送节点请求消息。
当然,该其中一个地址信息可通过随机或轮询的方式从地址信息中选取,或者若步骤101中,启动节点在发送地址信息时,还将相应的交流节点的负载状况一并发送过来,那么此时也可以选择负载较轻的一个交流节点的地址信息。
步骤302,接收到来自服务器节点请求消息的交流节点根据节点信息中的地址信息和组编号将与所述组编号相同的交流节点的地址信息通过节点应答消息携带到所述服务器。
例如:A接收到该节点请求消息后,根据组编号1以及A上保存的其他交流节点的节点信息,发现组编号1下的交流节点当前是A、B和D。A将该A、B和D的地址信息通过节点应答消息发送到该服务器。
步骤303,相应地,该服务器用携带而来的地址信息更新保存的地址信息。
例如:服务器接收到该应答消息,用A、B和D的地址信息更新原有的A、B、C的地址信息。
通过上述方案,可以有效的更新服务器上的可与其进行交互的交流节点的地址信息,避免因交流节点故障,退出或加入导致的该交流节点不可用或利用不充分的情况,使服务器上的保存的地址信息时时有效。
下面结合该peer是客户端时,本实施例提供的方法的具体执行过程,图4所示,包括:
步骤401,peer从启动节点中获取至少一个交流节点的地址信息。
上述peer具体是客户端,该客户端得知启动节点的地址的方法可以是操作人员在服务器上指定出启动节点的地址,也可以是启动节点发消息通知客户端自身的地址,或是其他方法,在此不做限定。
具体地,该步骤401可以通过如下方式实现:客户端根据上述服务类型分组协议的规定以及需要请求的服务类型,或者地域获取组编号,并通过节点请求消息携带所述获取的组编号到所述启动节点;所述启动节点根据客户端发来的组编号,将overlay中与其相同组编号下的交流节点的地址信息通过节点应答消息携带到客户端,以便客户端利用该地址信息在overlay中同组编号下的交流节点上获取到服务器信息,详细内容请见步骤402。
如果客户端作为peer需要获取多种服务类型,那么该peer将会获取到多个对应的组编号。服务器作为peer也同样。
步骤401的实例可参考步骤101实例。仅需将步骤101实例中服务器作为客户端看待即可。
步骤402,客户端存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述服务器信息。
具体地,该步骤402具体可通过如下方式实现:
客户端携带自身需要请求的服务类型,以及组编号周期性地向其中一个地址信息对应的交流节点发送获取服务器信息请求消息,因为接收到的地址信息可能是多个交流节点的,所以可通过随机或轮询的方式从地址信息中选取一个交流节点的地址信息;
接收到所述请求消息的交流节点根据请求的服务类型获取服务器信息,并将获取到的服务器信息通过获取服务器信息应答消息发送到客户端。
因为在服务器信息中包括服务类型这一项,所以交流节点接收到服务类型时,可根据服务类型查询到包含该服务类型的服务器信息。
例如:user11携带需要请求的服务类型type11,以及user11所属的组编号1在第一周期向node1的地址发送获取服务信息请求消息;node1根据type11查询到包含type11的服务器信息,并将该服务器信息通过获取服务器信息应答消息发送到user11;user11携带需要请求的服务类型type12,以及user11所属的组编号1在第二周期向node2的地址发送获取服务信息请求消息,以此类推。
在上述实例中,携带的组编号1,可以用于node1在向user11发送服务器信息前,根据组编号1进行校验,看该user11的组编号1是否和node1的组编号相同,如果不相同,则不会将服务器信息发送到user11,以便提高信息安全性。
另外,在本实施例中,在步骤401后,即从启动节点处获取到可用的交流节点的地址信息后,客户端还可以周期性的通过访问其中一个地址信息对应的交流节点的方式,更新其上保存的地址信息。具体执行方式与如图3所示的服务器的执行步骤类似,在此不赘述。
如果客户端需要被提供多种服务类型,那么该客户端就访问多种服务类型,因此这个客户端就需要先后以多种组编号访问overlay,获取相应的服务器信息并保存起来,具体执行方法可按照上述描述重复执行,在此不赘述。
在客户端存储所述服务器信息后,本实施例中的方法还包括:
当客户端向服务器请求获取服务时,该客户端根据其上存储的服务器信息通过随机或轮询的方式向可为其提供服务的服务器发送所述请求,或者选择服务器信息中指示的负载状况较轻的服务器发送请求。这里的可为其提供服务的服务器是指:客户端请求的服务类型是其所能提供的服务器。
例如:user11请求获取type11的服务类型。根据其上存储的服务器信息可知,Server11和Server12均可以提供该服务类型,且Server11的负载较轻,或者user11随机选择了Server11,因此,user11向Server11发起获取type11的服务请求。
此外,在本实施例中,因为客户端是通过overlay中的交流节点获取到服务器信息,且交流节点在功能上彼此对等,因此如果发现某种服务需要扩容,直接增加相应的服务器就可以了;如果发现overlay需要扩容,直接增加相应的节点就可以了。其他网元不需要改动。服务器可通过心跳消息通知overlay中的交流节点,所以这个服务器的加入和退出,这个交流节点是知道的,并且该交流节点可以用闲谈算法通知其他overlay的交流节点。客户端也会周期性的访问overlay的交流节点,获取自己需要服务的服务器信息,因此,如果有新服务器的加入或退出,客户端也可以根据周期性的访问结果更新自己保存的地址信息和服务器信息等。
需要说明的是:上述本实施例的方法在执行时,要求对交流节点进行分组,以及端侧遵照服务类型分组协议,但在本发明的另一个实施例中,在无需上述进行分组和端侧遵照协议的部署过程仍旧可以实现本发明的均衡负载的方法,其主要不同之处在于:端侧(包括服务器和客户端)在与overlay的交流节点进行交互时,无需携带组编号,相应地,交流节点在扩散服务器信息时,无需考虑组编号,可通过闲谈算法向整个overlay进行扩散,交流节点在保存服务器信息时,也是保存所有服务器的服务器信息,该方法同样可提高可用性并实现平滑扩容。只是考虑到如果服务器信息较多,或者overlay中的交流节点数量较多,那么如果将服务器信息全网传播,可能会造成网络带宽等资源的浪费的情况,因此该方法较适用于overlay规模较小,或服务器信息处理量较小的场景。
在本实施例提供的方法客户端可动态的从交流节点获取可用的服务器信息,服务器可动态的向交流节点报告有效的服务器信息,且整个实施方案不会限制在某个固定的交流节点上,因此不会形成单点,对上下行数据量也没有限制,故而可提供较高的可用性和容错能力;并且因为扩容过程的实施不会对其他网元,例如:客户端,overlay的交流节点等造成影响,因此可实现平滑扩容。
实施例2
本实施例提供一种端设备,该端设备可以作为实施例1中客户端使用,也可以作为实施例1中的服务器。如图5所示,包括:节点获取单元51,存储单元52,交互单元53。
节点获取单元51,用于从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于叠加网;存储单元52,用于存储所述地址信息;交互单元53,用于向其中一个地址信息对应的交流节点报告其服务器信息,以及从其中一个地址信息对应的交流节点获取服务器信息;相应地,所述存储单元52,还用于存储所述服务器信息。
在本实施例中,该设备还可包括:编号获取单元54,服务请求单元55,地址更新单元56。
编号获取单元54,用于根据服务类型分组协议的规则获取组编号;服务请求单元55,用于根据所述服务器信息通过随机或轮询的方式向其中一个服务器信息对应的服务器发送请求服务消息;地址更新单元56,用于周期性的携带所述获取的组编号向其中一个地址信息所对应的交流节点发送节点请求消息,并在接收到返回的节点应答消息中携带的地址信息后,用返回的所述地址信息更新存储的地址信息。
其中,节点获取单元51包括:
节点获取模块511,用于在编号获取单元54获取到组编号后,通过节点请求消息携带该组编号到所述启动节点,并在所述启动节点返回的节点应答消息中获取overlay中与其相同组编号下的交流节点的地址信息。
交互单元53包括:服务器交互模块531,客户端交互模块532。
服务器交互模块531,用于通过携带组编号的心跳消息周期性地向其中一个地址信息对应的交流节点报告其服务器信息,所述其中一个地址信息是通过随机或轮询的方式选取的;和/或
客户端交互模块532,用于携带需要请求的服务类型,以及组编号周期性地向其中一个地址信息对应的交流节点发送获取服务器信息请求消息,并通过获取服务器信息应答消息获取到交流节点根据请求的服务类型获取服务器信息,所述其中一个地址信息是通过随机或轮询的方式选取的。
本实施例提供的设备可便于以overlay中至少一个交流节点作为中介,通过与该至少一个交流节点的交互获取服务器信息,从而使各交流节点在overlay中的功能彼此对等,因此,无单点形成,可用性高,并且在扩容过程中,对整个系统产生的影响小,可实现平滑扩容。
实施例3
本实施例提供一种节点设备,所述节点设备属于overlay且该节点设备有组编号,而且可具体作为实施例1中的启动节点,或者交流节点使用。如图6所示,包括:启动单元61,扩散单元62,提供单元63。
启动单元61,用于接收来自端侧获取至少一个交流节点的请求,并将可为所述端侧服务的交流节点的地址信息返回到所述端侧,其中,所述端侧包括服务器和客户端;扩散单元62,用于接收来自服务器的服务器信息,存储所述服务器信息,以及将所述服务器信息扩散到其他节点设备;提供单元63,用于接收来自客户端的服务器信息请求,并将存储的服务器信息返回到所述客户端。
在本实施例中,该设备还包括:存储单元64.
存储单元64,用于保存有其它节点设备的节点信息,且所述节点信息因节点设备间的交互可时时更新。
其中,启动单元61包括:
编号启动模块611,用于当来自端侧的获取至少一个节点请求中携带所述端侧的组编号时,根据所述端侧发来的组编号和存储单元64存储的节点信息中的组编号,将叠加网中与其相同组编号下的节点设备的地址信息发送到端侧。
扩散单元62包括:
编号扩散模块621,用于接收来自服务器的携带组编号和服务器信息的心跳消息,并根据存储单元64存储的节点信息中组编号将所述服务器信息扩散到在叠加网中相同组编号下的其它节点设备中。
提供单元63包括:
编号提供单元631,用于接收来自客户端的携带请求的服务类型,以及组编号的获取服务器信息请求消息,根据请求的服务类型和组编号获取对应的服务器信息,并通过获取服务器信息应答消息发送到所述客户端。
本实施例提供的设备可与端侧动态的进行交互,作为客户端和服务器的中介,提供可供其访问的地址信息或者服务器信息,便于应用在overlay中,且不会形成单点,有利于实现平滑扩容,不会产生较大的负载负担,提高了可用性。
实施例4
本实施例提供一种均衡负载的系统,如图7所示,包括:服务器71,客户端72,至少一个节点设备73。
服务器71,用于从节点设备中获取至少一个节点设备73的地址信息,存储所述地址信息,并向其中一个地址信息对应的节点设备73报告其服务器信息。
客户端72,用于从节点设备73中获取至少一个节点设备的地址信息,存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述获取的服务器信息。
至少一个节点设备73,用于接收来自服务器71和客户端72的获取至少一个节点设备的请求,并将可为所述服务器71和客户端72服务的节点设备的地址信息返回到所述服务器71和客户端72,以及接收来自服务器71的服务器信息,存储所述服务器信息,以及将所述服务器信息扩散到其他节点设备,并且接收来自客户端72的服务器信息请求,再将存储的服务器信息返回到所述客户端72。
其中,至少一个节点设备73属于overlay。
另外,服务器71和客户端72遵照服务类型分组协议,所述协议中根据服务类型规定了组编号,所述组编号是所述服务类型在overlay中可用的交流节点所在的组编号,或者所述协议中根据地域对应规定了可用的组编号,所述组编号是所述地域在overlay中可用的交流节点所在的组编号;
其中,overlay中的至少一个节点设备已分组,并且每组分配有overlay中的组编号。
本发明实施例提供的系统具有如下有益效果:是一种利用overlay的全新方法,以overlay中至少一个交流节点作为中介,客户端可通过该至少一个交流节点获取服务器信息从而获知可用的服务器,相应地,服务器可通过向其中一个交流节点报告其服务器信息,并通过该一个交流节点将服务器信息扩散到其它交流节点,从而使各交流节点在overlay中的功能彼此对等,因此,无单点形成,在扩容过程中,对整个系统产生的影响小,可实现平滑扩容,并且也无需为减轻单点负担,或确保单点的服务能力引入过多复杂的机制,降低了系统的复杂度,便于使用,具有高可用性。
需要说明的是:如果对web浏览器做相应改动,使其作为一个peer访问overlay来动态获取服务器信息,则也相当于应用了本发明实施例提供的方案,因为不离本发明的精髓,因此也应在本专利保护之内。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台设备(可以是笔记本电脑等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种均衡负载的方法,其特征在于,包括:
端侧从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于叠加网;
当所述端侧是服务器时,所述服务器存储所述地址信息,并向其中一个地址信息对应的交流节点报告其服务器信息,接收到所述服务器信息的交流节点将所述服务器信息扩散到其他交流节点;
当所述端侧是客户端时,所述客户端存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述服务器信息;
在所述端侧从启动节点中获取至少一个交流节点的地址信息之前,该方法还包括:
所述端侧遵照服务类型分组协议,所述协议中根据服务类型规定了组编号,所述组编号是所述服务类型在叠加网中可用的交流节点所在的组编号;或者
所述端侧遵照服务类型分组协议,所述协议中根据地域对应规定了可用的组编号,所述组编号是所述地域在叠加网中可用的交流节点所在的组编号;
其中,叠加网中的各交流节点已分组,并且每组分配有叠加网中的组编号;
叠加网中的每个交流节点上均保存有其它交流节点的节点信息,且所述节点信息因交流节点间的交互可实时更新;在所述端侧遵照服务类型分组协议之后,该方法还包括:
所述端侧根据所述服务类型分组协议的规则获取到组编号,并周期性的携带所述获取的组编号向其中一个地址信息所对应的交流节点发送节点请求消息;
接收到所述节点请求消息的交流节点根据节点信息中的地址信息和组编号将与所述组编号相同的交流节点的地址信息通过节点应答消息携带到所述端侧;
所述端侧根据携带而来的地址信息更新保存的地址信息。
2.根据权利要求1所述的方法,其特征在于,在所述端侧遵照服务类型分组协议之后,该方法还包括:当所述端侧是服务器时,所述服务器根据所述服务类型分组协议的规定以及其可提供的服务类型获取组编号,或者所述服务器根据所述服务类型分组协议的规定以及其所属地域获取组编号;
所述端侧从启动节点中获取至少一个交流节点的地址信息具体包括:
所述服务器通过节点请求消息携带所述获取的组编号到所述启动节点;
所述启动节点根据所述服务器发来的组编号,将叠加网中与其相同组编号下的交流节点的地址信息通过节点应答消息携带到所述服务器。
3.根据权利要求2所述的方法,其特征在于,所述服务器向其中一个地址信息对应的交流节点报告其服务器信息,接收到所述服务器信息的交流节点将所述服务器信息扩散到其他交流节点具体包括:
所述服务器通过携带组编号的心跳消息周期性地向其中一个地址信息对应的交流节点发送其服务器信息,所述其中一个地址信息是通过随机或轮询的方式选取的;
接收到所述服务器信息的交流节点将所述服务器信息扩散到在叠加网中相同组编号下的其它交流节点中;
所述相同组编号下的其他交流节点存储所述服务器信息。
4.根据权利要求1所述的方法,其特征在于,在所述端侧遵照服务类型分组协议之后,该方法还包括:当所述端侧是客户端时,所述客户端根据所述服务类型分组协议的规定以及需要请求的服务类型获取组编号,或者所述客户端根据所述服务类型分组协议的规定以及其所属地域获取组编号;
所述端侧从启动节点中获取交流节点的地址信息具体包括:
所述客户端通过节点请求消息携带所述获取的组编号到所述启动节点;
所述启动节点根据所述客户端发来的组编号,将叠加网中与其相同组编号下的交流节点的地址信息通过节点应答消息携带到所述客户端。
5.根据权利要求4所述的方法,其特征在于,所述客户端向其中一个地址信息对应的交流节点获取服务器信息具体包括:
所述客户端携带需要请求的服务类型,以及组编号周期性地向其中一个地址信息对应的交流节点发送获取服务器信息请求消息,所述其中一个地址信息是通过随机或轮询的方式选取的;
接收到所述请求消息的交流节点根据请求的服务类型获取服务器信息,并将所述服务器信息通过获取服务器信息应答消息发送到所述客户端。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,在所述客户端存储所述服务器信息后,该方法还包括:
当所述客户端向服务器请求获取服务时,根据所述服务器信息通过随机或轮询的方式向对应的服务器发送所述请求;
其中,所述服务器信息包括:服务器可提供的服务类型;服务器的IP地址和端口号;还可以包括:服务器的负载状况。
7.一种端设备,其特征在于,包括:
节点获取单元,用于从启动节点中获取至少一个交流节点的地址信息,其中,所述启动节点和所述交流节点均属于叠加网;
存储单元,用于存储所述地址信息;
交互单元,用于向其中一个地址信息对应的交流节点报告其服务器信息,以及从其中一个地址信息对应的交流节点获取服务器信息;
所述存储单元,还用于存储所述服务器信息;
该设备还包括:
编号获取单元,用于根据服务类型分组协议的规则获取组编号;所述节点获取单元包括:
节点获取模块,用于通过节点请求消息携带编号获取单元获取的组编号到所述启动节点,并从所述启动节点处获取到通过节点应答消息携带的叠加网中与其相同组编号下的交流节点的地址信息;
所述交互单元包括:
服务器交互模块,用于通过携带组编号的心跳消息周期性地向其中一个地址信息对应的交流节点报告其服务器信息,所述其中一个地址信息是通过随机或轮询的方式选取的;和/或
客户端交互模块,用于携带需要请求的服务类型,以及组编号周期性地向其中一个地址信息对应的交流节点发送获取服务器信息请求消息,并通过获取服务器信息应答消息获取到交流节点根据请求的服务类型获取服务器信息,所述其中一个地址信息是通过随机或轮询的方式选取的。
8.根据权利要求7所述的设备,其特征在于,该设备还包括:
服务请求单元,用于根据所述服务器信息通过随机或轮询的方式向对应的服务器发送请求服务消息。
9.一种均衡负载的系统,其特征在于,包括:
服务器,用于从节点设备中获取至少一个节点设备的地址信息,存储所述地址信息,并向其中一个地址信息对应的节点设备报告其服务器信息;
客户端,用于从节点设备中获取至少一个节点设备的地址信息,存储所述地址信息,并从其中一个地址信息对应的交流节点获取服务器信息,以及存储所述获取的服务器信息;
至少一个节点设备,用于接收来自服务器和客户端的获取至少一个节点设备的请求,并将可为所述服务器和客户端服务的节点设备的地址信息返回到所述服务器和客户端,以及接收来自服务器的服务器信息,存储所述服务器信息,以及将所述服务器信息扩散到其他节点设备,并且接收来自客户端的服务器信息请求,再将存储的服务器信息返回到所述客户端;
其中,所述至少一个节点设备属于叠加网;
所述服务器和所述客户端遵照服务类型分组协议,所述协议中根据服务类型规定了组编号,所述组编号是所述服务类型在叠加网中可用的交流节点所在的组编号,或者所述协议中根据地域对应规定了可用的组编号,所述组编号是所述地域在叠加网中可用的交流节点所在的组编号;
其中,叠加网中的至少一个节点设备已分组,并且每组分配有叠加网中的组编号;
叠加网中的每个交流节点上均保存有其它交流节点的节点信息,且所述节点信息因交流节点间的交互可实时更新;所述服务器或所述客户端还用于,
根据所述服务类型分组协议的规则获取到组编号,并周期性的携带所述获取的组编号向其中一个地址信息所对应的交流节点发送节点请求消息;
接收到所述节点请求消息的交流节点根据节点信息中的地址信息和组编号将与所述组编号相同的交流节点的地址信息通过节点应答消息携带到所述服务器或者所述客户端;
所述服务器或者所述客户端根据携带而来的地址信息更新保存的地址信息。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101370258A CN102164116B (zh) | 2010-03-30 | 2010-03-30 | 均衡负载的方法、系统及相应设备 |
PCT/CN2010/073699 WO2011120256A1 (zh) | 2010-03-30 | 2010-07-06 | 均衡负载的方法、系统及相应设备 |
US13/635,352 US20130007253A1 (en) | 2010-03-30 | 2010-07-06 | Method, system and corresponding device for load balancing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101370258A CN102164116B (zh) | 2010-03-30 | 2010-03-30 | 均衡负载的方法、系统及相应设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102164116A CN102164116A (zh) | 2011-08-24 |
CN102164116B true CN102164116B (zh) | 2013-11-13 |
Family
ID=44465094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101370258A Active CN102164116B (zh) | 2010-03-30 | 2010-03-30 | 均衡负载的方法、系统及相应设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130007253A1 (zh) |
CN (1) | CN102164116B (zh) |
WO (1) | WO2011120256A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135912B2 (en) | 2009-05-18 | 2012-03-13 | Hola Networks, Ltd. | System and method of increasing cache size |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
US9942278B2 (en) * | 2012-03-28 | 2018-04-10 | Sony Corporation | Controlling communication based on relationship between a plurality of devices |
CN107483574B (zh) | 2012-10-17 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 一种负载均衡下的数据交互系统、方法及装置 |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
CN105554065B (zh) * | 2015-12-03 | 2019-06-18 | 华为技术有限公司 | 处理报文的方法、转换单元和应用单元 |
CN106255197B (zh) * | 2016-08-10 | 2019-12-31 | 北京邮电大学 | 一种分布式软交换系统的用户接入方法 |
CN109413117B (zh) * | 2017-08-15 | 2022-05-06 | 中兴通讯股份有限公司 | 分布式数据计算方法、装置、服务器及计算机存储介质 |
EP4311204A3 (en) | 2017-08-28 | 2024-04-10 | Bright Data Ltd. | Method for improving content fetching by selecting tunnel devices |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
CN109981696B (zh) * | 2017-12-27 | 2021-11-30 | 阿里巴巴集团控股有限公司 | 一种负载均衡方法、装置及设备 |
JP6597823B2 (ja) * | 2018-03-23 | 2019-10-30 | 日本電気株式会社 | ロードバランシング装置、通信システム、制御方法及びプログラム |
LT3780547T (lt) | 2019-02-25 | 2023-03-10 | Bright Data Ltd. | Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas |
EP4030318A1 (en) | 2019-04-02 | 2022-07-20 | Bright Data Ltd. | System and method for managing non-direct url fetching service |
CN112084072B (zh) * | 2020-09-11 | 2021-05-28 | 重庆紫光华山智安科技有限公司 | 一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端 |
CN113364122B (zh) * | 2021-06-04 | 2022-06-24 | 广东电网有限责任公司 | 基于服务器实例扩容的电网监控系统通道分配方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848802A (zh) * | 2005-11-25 | 2006-10-18 | 清华大学 | 基于P2P在IPv4上实现IPv6高性能互联的方法 |
CN101588265A (zh) * | 2009-05-21 | 2009-11-25 | 北京华环电子股份有限公司 | 一种获取网络信息的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105797A1 (en) * | 2001-12-04 | 2003-06-05 | Dan Dolev | Dynamic load balancing among a set of servers |
US20080059631A1 (en) * | 2006-07-07 | 2008-03-06 | Voddler, Inc. | Push-Pull Based Content Delivery System |
US9338597B2 (en) * | 2007-12-06 | 2016-05-10 | Suhayya Abu-Hakima | Alert broadcasting to unconfigured communications devices |
CN102668505B (zh) * | 2009-10-21 | 2015-02-18 | 瑞典爱立信有限公司 | 用于定位对等网络中的服务的方法和设备 |
-
2010
- 2010-03-30 CN CN2010101370258A patent/CN102164116B/zh active Active
- 2010-07-06 US US13/635,352 patent/US20130007253A1/en not_active Abandoned
- 2010-07-06 WO PCT/CN2010/073699 patent/WO2011120256A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848802A (zh) * | 2005-11-25 | 2006-10-18 | 清华大学 | 基于P2P在IPv4上实现IPv6高性能互联的方法 |
CN101588265A (zh) * | 2009-05-21 | 2009-11-25 | 北京华环电子股份有限公司 | 一种获取网络信息的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2011120256A1 (zh) | 2011-10-06 |
US20130007253A1 (en) | 2013-01-03 |
CN102164116A (zh) | 2011-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102164116B (zh) | 均衡负载的方法、系统及相应设备 | |
US11005762B2 (en) | Application delivery controller and global server load balancer | |
CN106464731B (zh) | 利用分层边缘服务器的负载平衡 | |
US10523748B2 (en) | Managing health status of network devices in a distributed global server load balancing system | |
CN103905500B (zh) | 一种接入应用服务器的方法和装置 | |
CN104618164B (zh) | 云计算平台应用快速部署的管理方法 | |
Wen et al. | Effective load balancing for cloud-based multimedia system | |
CN111277629A (zh) | 一种基于高可用性的web高并发系统及方法 | |
CN102223365A (zh) | 基于ssl vpn网关集群的用户接入方法及其装置 | |
KR20010088742A (ko) | 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법 | |
CN102025630A (zh) | 负载均衡方法及负载均衡系统 | |
CN107682442B (zh) | 一种Web连接方法及装置 | |
CN109951566A (zh) | 一种Nginx负载均衡方法、装置、设备及可读存储介质 | |
JP2013090072A (ja) | サービス提供システム | |
Trossen et al. | Towards an information centric network architecture for universal internet access | |
CN112492022A (zh) | 提高数据库可用性的集群、方法、系统及存储介质 | |
CN102217247A (zh) | 实现多Web应用请求调度的方法、装置及系统 | |
CN108449388A (zh) | 一种多节点设备闲置带宽聚合利用方法及系统 | |
Makris et al. | Load balancing for minimizing the average response time of get operations in distributed key-value stores | |
JP2006235837A (ja) | 負荷分散システム、負荷分散装置管理サーバ、負荷分散装置の切り替え方法及びプログラム | |
JP2006209465A (ja) | 負荷分散システム、負荷分散装置、サーバ、負荷分散プログラム、及び負荷分散方法 | |
CN107920104A (zh) | 一种集群服务器缓存负载均衡的方法和系统 | |
CN102647424A (zh) | 一种数据传输方法及其装置 | |
Ngamsuriyaroj et al. | Performance evaluation of load balanced web proxies | |
Xia et al. | Heterogeneity and load balance in structured P2P system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170213 Address after: 266100 Shandong Province, Qingdao city Laoshan District Songling Road No. 399 Patentee after: Poly Polytron Technologies Inc Address before: 266071 Laoshan, Qingdao province Hongkong District No. East Road, room 248, room 131 Patentee before: Qingdao Hisense Media Networks Co., Ltd. |