CN103795642B - 一种负载均衡的方法及装置 - Google Patents

一种负载均衡的方法及装置 Download PDF

Info

Publication number
CN103795642B
CN103795642B CN201410035398.2A CN201410035398A CN103795642B CN 103795642 B CN103795642 B CN 103795642B CN 201410035398 A CN201410035398 A CN 201410035398A CN 103795642 B CN103795642 B CN 103795642B
Authority
CN
China
Prior art keywords
server
response
client
solicited message
message
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
Application number
CN201410035398.2A
Other languages
English (en)
Other versions
CN103795642A (zh
Inventor
戴晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Tianji cloud Clothing Technology Co., Ltd.
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201410035398.2A priority Critical patent/CN103795642B/zh
Publication of CN103795642A publication Critical patent/CN103795642A/zh
Application granted granted Critical
Publication of CN103795642B publication Critical patent/CN103795642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及通信技术,尤其涉及一种负载均衡的方法及装置。该方法包括:接收客户端发送的第一请求信息;当所述第一请求信息不包括服务器信息时,为所述客户端分配响应服务器,以用于执行所述第一请求信息;当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则设置所述响应服务器为所述客户端的指定服务器。该方法能够有效提高集群的负载均衡效果。

Description

一种负载均衡的方法及装置
技术领域
本发明涉及通信技术,尤其涉及一种负载均衡的方法及装置。
背景技术
伴随着计算机技术和网络通信技术的快速发展,集群得到了广泛应用。由于集群中具有多个并行服务器,因此集群中通常通过负载均衡服务器实现各个服务器的负载均衡。
现有技术的负载均衡方法基于负载均衡服务器,当负载均衡服务器接收到客户端发送的第一次请求信息时,根据负载均衡算法为该客户端分配一服务器,以响应该客户端的请求,并粘连该客户端与该服务器,即建立该客户端与该服务器的长连接,使得该客户端后续的请求信息均发送到该服务器执行。
但是,当后续该客户端发起请求时,该服务器可能负载相对于集群中的其他服务器的负载可能较大,而此时负载均衡服务器仍然根据建立的长连接将该客户端发起的请求发送至该服务器,导致集群的负载均衡效果较差,从而降低工作效率。
发明内容
本发明实施例提供一种负载均衡的方法及装置,以提高集群的负载均衡效果。
本发明实施例提供了一种负载均衡的方法,所述方法包括:
接收客户端发送的第一请求信息;
当所述第一请求信息不包括服务器信息时,为所述客户端分配响应服务器,以用于执行所述第一请求信息;
当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则设置所述响应服务器为所述客户端的指定服务器。
对应地,本发明实施例还提供了一种负载均衡的装置,所述装置包括:
第一请求信息接收单元,用于接收客户端发送的第一请求信息;
响应服务器分配单元,当所述第一请求信息不包括服务器信息时,用于为所述客户端分配响应服务器,以用于执行所述第一请求信息;
指定服务器设置单元,当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则用于设置所述响应服务器为所述客户端的指定服务器。
本发明实施例提出了一种负载均衡的方法及装置,在建立客户端与服务器粘连之前,先判断服务器所属集群中除服务器以外的其他服务器是否完成同步,当其他服务器完成同步时建立客户端与服务器粘连,从而提高了集群中服务器的负载均衡效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,并不构成对本发明的限定。在附图中:
图1是本发明第一实施例提供的一种负载均衡的方法的实现流程图;
图2是本发明第二实施例提供的一种负载均衡的装置的结构示意图;
图3是本发明第二实施例中的负载均衡装置的各个部分之间的交互过程示意图;
图4是本发明第二实施例中的负载均衡装置的各个部分之间的交互过程示意图。
具体实施方式
下面结合附图及具体实施例对本发明进行更加详细与完整的说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1是本发明第一实施例提供的一种负载均衡的方法的实现流程图。本发明实施例提供的方法可以由本发明实施例提供的提供信息装置来执行,该装置可以由软件和/或硬件来实现。如图1所示,本发明实施例提供的方法包括:
步骤101、接收客户端发送的第一请求信息。
负载均衡服务器接收客户端发送的第一请求信息,即接收客户端发送的HTTP请求报文。负载均衡服务器用于连接客户端和服务端,以将客户端的请求信息分配到待响应请求信息的服务器中。例如,Nginx为轻量级的负载均衡服务,它能够按照轮询、IP哈希、URL哈希或权重等多种方式对后端服务器做负载均衡。
步骤102、当所述第一请求信息不包括服务器信息时,为所述客户端分配响应服务器,以用于执行所述第一请求信息。
服务端为集群,其中集群中的各个服务器为并行服务器,它们可以为使用同一组应用程序的大量用户提供服务。集群中每个服务器都可以承担一定的处理负载,并且负载均衡服务器可以实现处理负载在集群中服务器之间的动态分配,以实现负载均衡。当第一请求信息中不包括服务器信息时,即发送所述第一请求信息的客户端没有连接的服务器时,负载均衡服务器采用调度算法在集群中为第一请求信息分配一个服务器作为所述客户端的响应服务器,以响应第一请求信息。例如,第一请求信息对应的HTTP请求报文首部中不包括服务器信息时,负载均衡服务器使用轮叫调度算法计算出集群中待响应第一请求信息的响应服务器的标号(Identity,ID),并将该响应服务器的ID添加到第一请求信息对应的HTTP请求报文首部,使得第一请求信息能够发送到响应服务器中。
响应服务器接收第一请求信息后,处理所述第一请求信息,并且将第一请求信息的响应结果同步到响应服务器所属集群中除响应服务器以外的其他服务器中。例如,响应服务器在执行第一请求信息时,修改了数据库的内容,相对应的位于响应服务器的缓存中也进行了修改,然而响应服务器所属集群中除响应服务器以外的其他服务器的缓存没有进行相应的修改,即其他服务器的缓存与数据库内容不一致。为了使得其他服务器的缓存与数据库内容一致,其他服务器均需同步所述第一请求信息的响应结果。具体的,事件监听器将监听到的响应服务器中的缓存内容变化事件保存到事件队列中,并且保存时从当前线程变量中取出所述客户端的ID作为关键字。定时的从事件队列中将待同步的事件取出并通知其他节点。优选的,将同一客户端的所有待同步事件同时打包取出,以同时完成同一客户端的待同步事件。
步骤103、当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则设置所述响应服务器为所述客户端的指定服务器。
当响应服务器完成第一请求信息之后,响应服务器向客户端返回第一请求信息的响应信息,此时需要判断响应服务器所属集群中除响应服务器外的其他节点是否均完成同步,如果其他服务器中所有服务器均完成同步则集群中每个服务器均与第一请求信息的响应结果一致,客户端后续向集群发送HTTP请求报文时,集群中任意一个服务器均能够执行HTTP请求报文,此时不需要建立客户端与响应服务器的连接;如果其他服务器中至少有一个服务器没有完成同步,则客户端后续向集群发送请求信息时,集群中其他节点不能够执行HTTP请求报文,即客户端的后续请求仍然需要响应服务器执行,故需要设置响应服务器为客户端的指定服务器。
设置响应服务器为所述客户端的指定服务器,即建立客户端与响应服务器的连接,使得该客户端后续的请求信息均发送到响应服务器执行。设置所述响应服务器为所述客户端的指定服务器,包括:向所述客户端发送连接信息,以连接所述客户端和所述响应服务器。可选的,第一实施例中所述连接信息为cookie。例如,响应服务器返回第一请求信息的响应信息且其他服务器没有全部完成同步时,从待返回客户端的HTTP响应报文首部取出响应服务器的ID,并将响应服务器的ID设置到cookie中。若客户端后续向负载均衡服务器发送请求时会同时发送cookie。
所述设置所述响应服务器为所述客户端的指定服务器之后,还包括:接收所述客户端发送的第二请求信息;将所述第二请求信息转发给所述指定服务器,以使所述指定服务器执行所述第二请求信息;当所述指定服务器返回第二请求信息的响应信息时,若所述指定服务器所属的集群中除所述指定服务器以外的其他服务器每个服务器均完成同步,则删除所述客户端的所述指定服务器。
负载均衡服务器接收第二请求信息时,能够检查到cookie,由于cookie中包括服务器的ID,故会优先将第二请求信息发送到cookie中指定的服务器,即步骤103中为客户端设置的指定服务器中,而无需用调度算法为第二请求信息分配服务器。指定服务器接收第二请求信息后处理第二请求信息,并且指定服务器所属集群中除指定服务器以外的其他服务器均同步所述第二请求信息的响应结果。
进一步的,当所述指定服务器返回第二请求信息的响应信息时,若所述其他服务器每个服务器均完成同步,删除所述客户端的指定服务器。
当指定服务器返回第二请求信息的响应信息时,判断其他服务器是否完成了同步,如果所有服务器均完成了同步,则需解除客户端与指定服务器的粘连,即删除客户端的指定服务器。这样所述客户端的后续请求信息又会被负载均衡服务器通过步骤102中的方法,根据调度算法被分配到相应的服务器中,重新实现负载平衡。
进一步的,删除所述客户端的所述指定服务器,包括:删除所述第二请求信息的响应信息中的连接信息。
删除客户端的指定服务器,即当指定服务器返回第二请求信息的响应信息时,将第二请求信息的HTTP响应报文首部中指定服务器的ID删除,从而向客户端返回无状态的HTTP响应报文。
本发明实施例中提出的负载均衡的方法,当集群中服务器没有完成客户端请求信息的响应结果的同步时,建立客户端与服务器的连接,随后,当集群中服务器完成响应结果的同步时,解除客户端与服务器的连接,以减少客户端与服务器的连接时间,从而提高负载均衡的效果。
图2是本发明第二实施例中提供的一种负载均衡的装置的结构效果图。本发明实施例和本发明中方法实施例处于统一构思,如图2所示,本发明实施例提供的装置,包括:
第一请求信息接收单元201,用于接收客户端发送的第一请求信息;
响应服务器分配单元202,当所述第一请求信息不包括服务器信息时,用于为所述客户端分配响应服务器,以用于执行所述第一请求信息;
指定服务器设置单元203,当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则用于设置所述响应服务器为所述客户端的指定服务器。
所述指定服务器设置单元203包括:连接信息发送单元,用于向所述客户端发送连接信息,以连接所述客户端和所述响应服务器。
所述装置还包括:第二请求信息接收单元,用于接收所述客户端发送的第二请求信息;第二请求信息转发单元,用于将所述第二请求信息转发给所述指定服务器,以使所述指定服务器执行所述第二请求信息;指定服务器删除单元,当所述指定服务器返回第二请求信息的响应信息时,若所述指定服务器所属的集群中除所述指定服务器以外的其他服务器每个服务器均完成同步,则用于删除所述客户端的所述指定服务器。
所述指定服务器删除单元包括:连接信息删除单元,用于删除所述第二请求信息的响应信息中的连接信息。
进一步的,第二实施例中所述连接信息为cookie。
示例性的,图3和图4均是本发明第二实施例中的负载均衡装置的各个部分之间的交互过程示意图,如图3所示,当HTTP请求报文中不包括服务器信息时,所述交互过程包括:
步骤301和步骤302、负载均衡服务器接收客户端的HTTP请求报文并且根据轮叫调度算法计算出准备响应所述HTTP请求报文的响应服务器,以及将响应服务器的ID添加到HTTP请求报文首部;
步骤303、响应服务器接收HTTP请求报文;
步骤304-步骤307、响应服务器处理HTTP请求报文,若响应服务器中修改了缓存内容,则Ehcache事件监听器将监听到的缓存内容变化事件保存到事件队列中,并且保存时会从当前线程中取出当前登录用户的ID作为关键字;
步骤308、后端服务器的同步线程定时的扫描事件队列,将事件批量取出并通知集群中的除响应服务器以外的其他服务器。取出事件时优先地将同一用户的所有事件打包取出通知其他服务器。
步骤313-步骤315、过滤器拦截HTTP响应报文,并检查同步线程是否已经将该用户的缓存事件同步到其他服务器。如果其他服务器没有完成同步,将HTTP响应报文首部的响应服务器ID取出并设置到cookie中。
步骤316、过滤器将HTTP响应报文返回至负载均衡服务器。
步骤317、负载均衡服务器将HTTP响应报文返回至客户端。
如图4所示,当HTTP请求报文中包括服务器信息时,所述交互过程包括:
步骤401、负载均衡服务器检查到cookie,将HTTP请求报文发送到cookie中的指定服务器;
步骤402-步骤405、指定服务器处理HTTP请求报文;
步骤406-步骤408、HTTP响应报文的响应信息被过滤器拦截时,如果检查到事件队列中不存在该用户的事件了,则表明缓存复制已经完成。于是删除保存服务器ID的cookie,即解除了该用户请求与当前服务器的粘连。
步骤409、过滤器将HTTP响应报文返回至负载均衡服务器。
步骤410、负载均衡服务器将HTTP响应报文返回至客户端。
本发明实施例中提出的负载均衡的装置,通过建立客户端与服务器的连接以及当集群中服务器完成同步时立即解除客户端与指定服务器的连接,以减小客户端与指定服务器的连接时间,从而提高负载均衡效果。
本实施例提出的负载均衡的装置用于执行本发明任意实施例提供的负载均衡的方法,具备相应的功能模块,达到相同的技术效果。
上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种负载均衡的方法,其特征在于,包括:
接收客户端发送的第一请求信息;
当所述第一请求信息不包括服务器信息时,为所述客户端分配响应服务器,以用于执行所述第一请求信息;
当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则设置所述响应服务器为所述客户端的指定服务器;
接收所述客户端发送的第二请求信息;
将所述第二请求信息转发给所述指定服务器,以使所述指定服务器执行所述第二请求信息;
当所述指定服务器返回第二请求信息的响应信息时,若所述指定服务器所属的集群中除所述指定服务器以外的其他服务器每个服务器均完成同步,则删除所述客户端的所述指定服务器。
2.根据权利要求1所述的方法,其特征在于,设置所述响应服务器为所述客户端的指定服务器,包括:
向所述客户端发送连接信息,以连接所述客户端和所述响应服务器。
3.根据权利要求1所述的方法,其特征在于,删除所述客户端的所述指定服务器,包括:
删除所述第二请求信息的响应信息中的连接信息。
4.根据权利要求2或3所述的方法,其特征在于,所述连接信息为cookie。
5.一种负载均衡的装置,其特征在于,包括:
第一请求信息接收单元,用于接收客户端发送的第一请求信息;
响应服务器分配单元,当所述第一请求信息不包括服务器信息时,用于为所述客户端分配响应服务器,以用于执行所述第一请求信息;
指定服务器设置单元,当所述响应服务器返回所述第一请求信息的响应信息时,若所述响应服务器所属的集群中除所述响应服务器以外的其他服务器中至少有一个服务器没有完成同步,则用于设置所述响应服务器为所述客户端的指定服务器;
第二请求信息接收单元,用于接收所述客户端发送的第二请求信息;
第二请求信息转发单元,用于将所述第二请求信息转发给所述指定服务器,以使所述指定服务器执行所述第二请求信息;
指定服务器删除单元,当所述指定服务器返回第二请求信息的响应信息时,若所述指定服务器所属的集群中除所述指定服务器以外的其他服务器每个服务器均完成同步,则用于删除所述客户端的所述指定服务器。
6.根据权利要求5所述的装置,其特征在于,所述指定服务器设置单元包括:
连接信息发送单元,用于向所述客户端发送连接信息,以连接所述客户端和所述响应服务器。
7.根据权利要求5所述的装置,其特征在于,所述指定服务器删除单元包括:
连接信息删除单元,用于删除所述第二请求信息的响应信息中的连接信息。
8.根据权利要求6或7所述的装置,其特征在于,所述连接信息为cookie。
CN201410035398.2A 2014-01-24 2014-01-24 一种负载均衡的方法及装置 Active CN103795642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410035398.2A CN103795642B (zh) 2014-01-24 2014-01-24 一种负载均衡的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410035398.2A CN103795642B (zh) 2014-01-24 2014-01-24 一种负载均衡的方法及装置

Publications (2)

Publication Number Publication Date
CN103795642A CN103795642A (zh) 2014-05-14
CN103795642B true CN103795642B (zh) 2017-04-19

Family

ID=50670947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410035398.2A Active CN103795642B (zh) 2014-01-24 2014-01-24 一种负载均衡的方法及装置

Country Status (1)

Country Link
CN (1) CN103795642B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959410B (zh) * 2016-06-29 2019-06-04 深圳中兴网信科技有限公司 服务器集群的负载均衡方法及负载均衡系统
CN107959702B (zh) * 2016-10-17 2020-09-29 财付通支付科技有限公司 路由方法和装置
CN108664625B (zh) * 2018-05-14 2020-06-02 贝壳找房(北京)科技有限公司 一种跨系统数据同步方法及装置
CN108881430A (zh) * 2018-06-14 2018-11-23 平安科技(深圳)有限公司 会话保持方法、装置、计算机设备及存储介质
CN114024972B (zh) * 2021-10-28 2023-11-03 平安科技(深圳)有限公司 一种长连接通信方法、系统、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1665206A (zh) * 2004-03-03 2005-09-07 华为技术有限公司 实现网络长连接倒换的方法
CN102025783A (zh) * 2010-10-09 2011-04-20 青岛普加智能信息有限公司 集群系统及其消息处理方法和协议转发网关

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185096B2 (en) * 2003-05-27 2007-02-27 Sun Microsystems, Inc. System and method for cluster-sensitive sticky load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1665206A (zh) * 2004-03-03 2005-09-07 华为技术有限公司 实现网络长连接倒换的方法
CN102025783A (zh) * 2010-10-09 2011-04-20 青岛普加智能信息有限公司 集群系统及其消息处理方法和协议转发网关

Also Published As

Publication number Publication date
CN103795642A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
CN103795642B (zh) 一种负载均衡的方法及装置
CN104834722B (zh) 基于cdn的内容管理系统
CN103442030B (zh) 发送和处理业务请求信息的方法和系统以及客户端装置
US8892768B2 (en) Load balancing apparatus and load balancing method
CN104751348B (zh) 一种基于社交网络的电子商务系统
CN106254377B (zh) 支持海量长连接的软负载均衡方法及系统
CN105978950A (zh) 一种服务器资源分配方法、装置及系统
CN107172187A (zh) 一种负载均衡系统和方法
US8103245B2 (en) Systems and methods for session records correlation
CN105847139A (zh) 数据传输方法、装置及系统
CN106101264B (zh) 内容分发网络日志推送方法、装置和系统
CN104660409B (zh) 集群环境下系统登录的方法和认证服务器集群
Buyakar et al. Prototyping and load balancing the service based architecture of 5G core using NFV
CN104202386B (zh) 一种高并发量分布式文件系统及其二次负载均衡方法
CN107579924A (zh) 一种流量调拨方法和装置
CN109617966A (zh) 一种基于Openstack的云管平台部署系统及方法
CN105681266B (zh) 一种多媒体电话MMTel的通讯集群方法及装置
CN102629345B (zh) 链式沟通协作方法、装置及系统
CN103560937B (zh) 数据访问方法和入口服务器
CN111131367B (zh) 一种分布式接入服务处理方法及装置
CN105099738B (zh) 数据获取方法、装置及系统
CN106060060A (zh) 客户端获取锁的方法及系统
CN105871972A (zh) 一种视频资源的分布式缓存方法、装置及系统
CN107404517A (zh) 网络模块的控制方法、调度服务器及系统
CN106408793B (zh) 一种适用于atm业务的业务组件共享方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180504

Address after: 223800 room 416-429, Hengtong mansion, 19 Hongze Hu Dong Road, Suyu District, Suqian, Jiangsu, -YS00157

Patentee after: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

Address before: 100080 2 floor, No. 2, No. 20, Suzhou Street, Haidian District, Beijing

Co-patentee before: Beijing Jingdong Century Commerce Co., Ltd.

Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180712

Address after: 401121 6, Fortune 2, A building, Fortune Plaza, 15, fortune Avenue, Yubei District, Chongqing

Patentee after: Chongqing Tianji cloud Clothing Technology Co., Ltd.

Address before: 223800 room 416-429, Hengtong mansion, 19 Hongze Hu Dong Road, Suyu District, Suqian, Jiangsu, -YS00157

Patentee before: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

TR01 Transfer of patent right