CN112910793B - 用于七层负载均衡中连接复用的方法和负载均衡器 - Google Patents

用于七层负载均衡中连接复用的方法和负载均衡器 Download PDF

Info

Publication number
CN112910793B
CN112910793B CN201911223828.2A CN201911223828A CN112910793B CN 112910793 B CN112910793 B CN 112910793B CN 201911223828 A CN201911223828 A CN 201911223828A CN 112910793 B CN112910793 B CN 112910793B
Authority
CN
China
Prior art keywords
connection
cookie
web server
connection multiplexing
multiplexing pool
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
CN201911223828.2A
Other languages
English (en)
Other versions
CN112910793A (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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN201911223828.2A priority Critical patent/CN112910793B/zh
Publication of CN112910793A publication Critical patent/CN112910793A/zh
Application granted granted Critical
Publication of CN112910793B publication Critical patent/CN112910793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Abstract

本公开提供一种用于七层负载均衡中连接复用的方法和负载均衡器。负载均衡器初始化连接复用池;在接收到客户端发送的HTTP请求后,与客户端建立TCP连接,并对HTTP请求进行解析;若HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;若能够找到与cookie ID相对应的连接复用池,则检测相对应的连接复用池中是否存在空闲连接;若相对应的连接复用池中存在空闲连接,则从相对应的连接复用池中选取一个可用连接;将HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。本公开能够加速请求响应过程,且同一个客户端的多次请求可被发送至同一个连接复用池对应的Web服务器上,达到会话保持的效果。

Description

用于七层负载均衡中连接复用的方法和负载均衡器
技术领域
本公开涉及通信领域,特别涉及一种用于七层负载均衡中连接复用的方法和负载均衡器。
背景技术
七层负载均衡是现在Web应用业务中普遍使用的技术,可为Web业务提供很好的稳定性和业务能力。七层负载均衡能为Web业务提供很多高级的特性,让网络更智能化。比如,可以通过HTTP(Hyper Text Transfer Protocol,超文本传输协议)内容调度HTTP请求至指定Web服务器上,通过cookie进行会话保持,通过重写头部字段修改hTTP请求响应内容等。充分利用HTTP协议报文的扩展性、灵活性,七层负载均衡器可以提供各种定制化的特性需求。
但七层负载均衡的业务性能远远不及四层负载均衡的业务性能,这主要是因为四层负载均衡的实现是基于报文转发的原理,负载均衡不需要与客户端和Web服务器进行TCP(Transmission Control Protocol,传输控制协议)握手建连接通信,而七层负载均衡业务则需要负载均衡器分别与客户端和Web服务器建立TCP连接,比四层业务多一次TCP握手通信过程。
为加快七层负载均衡器的请求响应速度,可以使用一种连接复用技术,同一范围内的客户端请求先后到达负载均衡器后,可重复使用同一条负载均衡器与Web服务器间的TCP连接。此时,负载均衡器需建立一个连接池,池中保存有提前与Web服务器建立好的空闲TCP长连接,在需要时连接出池,在使用完毕后连接入池。这样就可以减少一次负载均衡器与Web服务器的TCP握手通信交互。传统设备厂商的负载均衡器,如F5,一般是通过TCP/IP五元组的哈希(hash)值作为建立连接复用池的依据。该种方式在客户端IP特别分散时,需创建很多连接复用池,导致连接匹配效率低。
发明内容
本公开提供一种七层负载均衡中的连接复用方案,能够提高客户端对Web服务的请求响应速度,同时也能达到会话保持的效果。
根据本公开实施例的第一方面,提供一种用于七层负载均衡中连接复用的方法,由负载均衡器执行,所述方法包括:初始化连接复用池;在接收到客户端发送的HTTP请求后,与所述客户端建立TCP连接,并对所述HTTP请求进行解析;判断所述HTTP请求中是否包括cookie内容;若所述HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;判断是否能够找到与cookie ID相对应的连接复用池;若能够找到与cookie ID相对应的连接复用池,则检测所述相对应的连接复用池中是否存在空闲连接;若所述相对应的连接复用池中存在空闲连接,则从所述相对应的连接复用池中选取一个可用连接;将所述HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。
在一些实施例中,若所述相对应的连接复用池中不存在空闲连接,则与所选择的Web服务器建立TCP连接,以便将所述HTTP请求发送给所选择的Web服务器。
在一些实施例中,若未能找到与cookie ID相对应的连接复用池,则通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池;然后执行检测所述相对应的连接复用池中是否存在空闲连接的步骤。
在一些实施例中,若所述HTTP请求中不包括cookie内容,则执行通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池的步骤。
在一些实施例中,在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID;将携带有cookie ID的HTTP响应报文发送给所述客户端。
在一些实施例中,在将携带有cookie ID的HTTP响应报文发送给所述客户端后,还包括:以预定方式对所述客户端与负载均衡器之间的TCP连接进行老化处理;将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将所存入的连接的状态修改为空闲状态。
根据本公开实施例的第二方面,提供一种用于七层负载均衡中连接复用的负载均衡器,包括:初始化模块,被配置为初始化连接复用池;连接管理模块,被配置为在接收到客户端发送的HTTP请求后,与所述客户端建立TCP连接,并对所述HTTP请求进行解析;判断所述HTTP请求中是否包括cookie内容;若所述HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;判断是否能够找到与cookie ID相对应的连接复用池;若能够找到与cookie ID相对应的连接复用池,则检测所述相对应的连接复用池中是否存在空闲连接;若所述相对应的连接复用池中存在空闲连接,则从所述相对应的连接复用池中选取一个可用连接,将所述HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。
在一些实施例中,连接管理模块还被配置为若所述相对应的连接复用池中不存在空闲连接,则与所选择的Web服务器建立TCP连接,以便将所述HTTP请求发送给所选择的Web服务器。
在一些实施例中,连接管理模块还被配置为若未能找到与cookie ID相对应的连接复用池,则通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池;然后指示第三检测模块执行检测所述相对应的连接复用池中是否存在空闲连接的操作。
在一些实施例中,连接管理模块还被配置为若所述HTTP请求中不包括cookie内容,则执行通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池的操作。
在一些实施例中,连接管理模块还被配置为在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID,将携带有cookie ID的HTTP响应报文发送给所述客户端。
在一些实施例中,连接管理模块还被配置为在将携带有cookie ID的HTTP响应报文发送给所述客户端后,以预定方式对所述客户端与负载均衡器之间的TCP连接进行老化处理;将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将所存入的连接的状态修改为空闲状态。
根据本公开实施例的第三方面,提供一种负载均衡器,包括:存储器,被配置为存储指令;处理器,耦合到存储器,处理器被配置为基于存储器存储的指令执行实现如上述任一实施例所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上述任一实施例涉及的方法。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是根据本公开一个实施例的用于七层负载均衡中连接复用的方法的流程示意图;
图2是根据本公开一个实施例的连接复用池的结构示意图;
图3是根据本公开一个实施例的连接入池出池示意图;
图4是根据本公开另一个实施例的用于七层负载均衡中连接复用的方法的流程示意图;
图5是根据本公开一个实施例的用于七层负载均衡中连接复用的负载均衡器的结构示意图;
图6是根据本公开另一个实施例的用于七层负载均衡中连接复用的负载均衡器的结构示意图。
应当明白,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。此外,相同或类似的参考标号表示相同或类似的构件。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本公开可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本公开透彻且完整,并且向本领域技术人员充分表达本公开的范围。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、材料的组分和数值应被解释为仅仅是示例性的,而不是作为限制。
本公开中使用的“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。
本公开使用的所有术语(包括技术术语或者科学术语)与本公开所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
图1是根据本公开一个实施例的用于七层负载均衡中连接复用的方法的流程示意图。在一些实施例中,下面的用于七层负载均衡中连接复用的方法步骤由负载均衡器执行。
在步骤101,初始化连接复用池。
在一些实施例中,如图2所示,负载均衡器针对每个Web服务器设置一个连接复用池和一个唯一的cookie ID。每个连接复用池中存在多个与同一个Web服务器建立好的TCP长连接。每个TCP长连接都有保活机制和老化机制。如图3所示,连接复用池中的TCP长连接都处于空闲状态,在需使用时连接出池,在使用完毕后连接入池。
返回图1。在步骤102,在接收到客户端发送的HTTP请求后,与客户端建立TCP连接,并对HTTP请求进行解析。
在步骤103,判断HTTP请求中是否包括cookie内容。
在步骤104,若HTTP请求中包括cookie内容,则根据cookie内容中包括的cookieID查找相对应的连接复用池。
在步骤105,判断是否能够找到与cookie ID相对应的连接复用池。
在步骤106,若能够找到与cookie ID相对应的连接复用池,则检测相对应的连接复用池中是否存在空闲连接。
在步骤107,若相对应的连接复用池中存在空闲连接,则从相对应的连接复用池中选取一个可用连接。
在步骤108,将HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。
在本公开上述实施例提供的用于七层负载均衡中连接复用的方法中,通过利用HTTP请求内容中的cookie ID直接查找对应的连接复用池,取出池中的空闲连接直接使用,加速请求响应过程,且同一个客户端的多次请求可被发送至同一个连接复用池对应的Web服务器上,达到会话保持的效果。
图4是根据本公开一个实施例的用于七层负载均衡中连接复用的方法的流程示意图。在一些实施例中,下面的用于七层负载均衡中连接复用的方法步骤由负载均衡器执行。
在步骤401,初始化连接复用池。
在步骤402,在接收到客户端发送的HTTP请求后,与客户端建立TCP连接,并对HTTP请求进行解析。
在步骤403,判断HTTP请求中是否包括cookie内容。
若HTTP请求中不包括cookie内容,则执行步骤404;若HTTP请求中包括cookie内容,则执行步骤409。
这里需要说明的是,若HTTP请求中不包括cookie内容,则表明这是客户端的首次HTTP请求。
在步骤404,通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池。
在步骤405,检测相对应的连接复用池中是否存在空闲连接。
若相对应的连接复用池中不存在空闲连接,则执行步骤406;若相对应的连接复用池中存在空闲连接,则执行步骤407。
这里需要说明的是,在连接复用池首次使用时,不存在空闲连接。
在步骤406,与所选择的Web服务器建立TCP连接,以便将HTTP请求发送给所选择的Web服务器。
在步骤407,从相对应的连接复用池中选取一个可用连接。
在步骤408,将HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。
在步骤409,根据cookie内容中包括的cookie ID查找相对应的连接复用池。
在步骤410,判断是否能够找到与cookie ID相对应的连接复用池。
若能够找到与cookie ID相对应的连接复用池,则执行步骤405;若未能找到与cookie ID相对应的连接复用池,则执行步骤404。
在一些实施例中,在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID,将携带有cookie ID的HTTP响应报文发送给客户端。
也就是说,客户端在首次发送HTTP请求时,HTTP请求中并不包括cookie ID,而在之后发送的HTTP请求中,就会包括相应的cookie ID。由此,就可利用cookie ID直接查找对应的连接复用池。
在一些实施例中,在将携带有cookie ID的HTTP响应报文发送给客户端后,以预定方式对客户端与负载均衡器之间的TCP连接进行老化处理。将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将其状态修改为空闲状态。此外,连接复用池中所有长连接通过定时发送tcp keepalive报文保活,且设置有连接老化时间,从该连接创建时计时。
在一些实施例中,负载均衡器对HTTP报文中cookie的处理分两种情况:
A、Web原始响应报文不携带Set-Cookie时:
负载均衡器在给客户端的响应报文中需加入Set-Cookie内容,示例如下:
Set-Cookie:COOKIEID=cookie1\r\n
之后,该客户端再次发送HTTP请求报文则可能会携带同样的cookie内容,示例如下:
Cookie:COOKIEID=cookie1\r\n
而负载均衡器转发给web服务器的http请求则不携带cookie内容。
B、Web原始响应报文携带Set-Cookie时:
负载均衡器在给客户端的响应报文中需新加入一个Set-Cookie内容,示例如下:
Set-Cookie:JSESSIONID=cXOt2Y9\r\n(原始web携带的cookie内容)
Set-Cookie:COOKIEID=cookie1\r\n(新增cookie内容)
之后,该客户端再次发送HTTP请求报文则可能会携带同样的cookie内容,示例如下:
Cookie:JSESSIONID=cXOt2Y9;COOKIEID=cookie1\r\n
而负载均衡器转发给web服务器的http请求则只携带原始web的cookie内容,示例如下:
Cookie:JSESSIONID=cXOt2Y9\r\n
图5是根据本公开一个实施例的用于七层负载均衡中连接复用的负载均衡器的结构示意图。如图5所示,负载均衡器包括初始化模块51和连接管理模块52。
初始化模块51被配置为初始化连接复用池。
连接管理模块52被配置为在接收到客户端发送的HTTP请求后,与客户端建立TCP连接,并对HTTP请求进行解析;判断HTTP请求中是否包括cookie内容;若HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;判断是否能够找到与cookie ID相对应的连接复用池;若能够找到与cookie ID相对应的连接复用池,则检测相对应的连接复用池中是否存在空闲连接;若相对应的连接复用池中存在空闲连接,则从相对应的连接复用池中选取一个可用连接,将HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器。
在一些实施例中,连接管理模块52还被配置为若相对应的连接复用池中不存在空闲连接,则与所选择的Web服务器建立TCP连接,以便将HTTP请求发送给所选择的Web服务器。
在一些实施例中,连接管理模块52还被配置为若未能找到与cookie ID相对应的连接复用池,则通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池;然后指示第三检测模块执行检测相对应的连接复用池中是否存在空闲连接的操作。
在一些实施例中,连接管理模块52还被配置为若HTTP请求中不包括cookie内容,则执行通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池的操作。
在一些实施例中,连接管理模块52还被配置为在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID,将携带有cookie ID的HTTP响应报文发送给客户端。
在一些实施例中,连接管理模块52还被配置为在将携带有cookie ID的HTTP响应报文发送给客户端后,以预定方式对客户端与负载均衡器之间的TCP连接进行老化处理;将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将所存入的连接的状态修改为空闲状态。
图6是根据本公开另一个实施例的用于七层负载均衡中连接复用的负载均衡器的结构示意图。如图6所示,负载均衡器包括存储器61和处理器62。
存储器61用于存储指令。处理器62耦合到存储器61。处理器62被配置为基于存储器存储的指令执行实现如图1、4中任一实施例涉及的方法。
如图6所示,负载均衡器还包括通信接口63,用于与其它设备进行信息交互。同时,该负载均衡器还包括总线64,处理器62、通信接口63、以及存储器61通过总线64完成相互间的通信。
存储器61可以包含高速RAM(Random Access Memory,随机存取存储器),也可还包括NVM(Non-Volatile Memory,非易失性存储器)。例如至少一个磁盘存储器。存储器61也可以是存储器阵列。存储器61还可能被分块,并且块可按一定的规则组合成虚拟卷。
此外,处理器62可以是一个中央处理器,或者可以是ASIC(Application SpecificIntegrated Circuit,专用集成电路),或者是被配置成实施本公开实施例的一个或多个集成电路。
本公开还提供一种计算机可读存储介质。计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如图1、4中任一实施例涉及的方法。
在一些实施例中,上述功能模块可以实现为用于执行本公开所描述功能的通用处理器、可编程逻辑控制器(Programmable Logic Controller,简称:PLC)、数字信号处理器(Digital Signal Processor,简称:DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称:ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
在一些实施例中,通过搭建负载均衡业务环境,一般由客户端(Google浏览器、IE浏览器、或者测试仪等)、负载均衡器、Web服务器组成。配置对应的七层负载均衡业务、基于cookie的连接复用特性。可使用测试仪打流的方式,对比使用该连接复用特性前后的性能情况。可使用浏览器客户端访问七层负载均衡业务,通过抓包软件比如wireshark等,获取对应的请求响应报文,查看报文中是否存在cookie内容,以验证会话保持特性。
通过实施本公开的方案,可以得到以下有益效果:
1、使用cookie字段达到与客户端会话保持的同时,又再次利用该cookie字段建立与Web服务器的连接复用池,可省去大量的负载均衡器与Web服务器建立TCP连接时握手交互过程,加快请求响应速度。
2、充分利用七层HTTP协议报文首部字段的可扩展性、灵活性,使用cookie字段建立连接复用池,相比传统连接复用技术使用TCP/IP五元组哈希(hash)的结果建立连接复用池,可以减少连接复用池的个数,省去hash计算过程,更快速匹配连接池中的空闲连接。
至此,已经详细描述了本公开的实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。

Claims (10)

1.一种用于七层负载均衡中连接复用的方法,由负载均衡器执行,所述方法包括:
初始化连接复用池;
在接收到客户端发送的HTTP请求后,与所述客户端建立TCP连接,并对所述HTTP请求进行解析;
判断所述HTTP请求中是否包括cookie内容;
若所述HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;
判断是否能够找到与cookie ID相对应的连接复用池;
若能够找到与cookie ID相对应的连接复用池,则检测所述相对应的连接复用池中是否存在空闲连接;
若所述相对应的连接复用池中存在空闲连接,则从所述相对应的连接复用池中选取一个可用连接;
将所述HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器;
若所述相对应的连接复用池中不存在空闲连接,则与所选择的Web服务器建立TCP连接,以便将所述HTTP请求发送给所选择的Web服务器;
若未能找到与cookie ID相对应的连接复用池,则通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池;
然后执行检测所述相对应的连接复用池中是否存在空闲连接的步骤。
2.根据权利要求1所述的方法,还包括:
若所述HTTP请求中不包括cookie内容,则执行通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池的步骤。
3.根据权利要求2所述的方法,还包括:
在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID;
将携带有cookie ID的HTTP响应报文发送给所述客户端。
4.根据权利要求3所述的方法,其中,在将携带有cookie ID的HTTP响应报文发送给所述客户端后,还包括:
以预定方式对所述客户端与负载均衡器之间的TCP连接进行老化处理;
将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将所存入的连接的状态修改为空闲状态。
5.一种用于七层负载均衡中连接复用的负载均衡器,包括:
初始化模块,被配置为初始化连接复用池;
连接管理模块,被配置为在接收到客户端发送的HTTP请求后,与所述客户端建立TCP连接,并对所述HTTP请求进行解析;判断所述HTTP请求中是否包括cookie内容;若所述HTTP请求中包括cookie内容,则根据cookie内容中包括的cookie ID查找相对应的连接复用池;判断是否能够找到与cookie ID相对应的连接复用池;若能够找到与cookie ID相对应的连接复用池,则检测所述相对应的连接复用池中是否存在空闲连接;若所述相对应的连接复用池中存在空闲连接,则从所述相对应的连接复用池中选取一个可用连接,将所述HTTP请求中的cookie ID删除,以便将未携带cookie ID的HTTP请求发送给Web服务器,若所述相对应的连接复用池中不存在空闲连接,则与所选择的Web服务器建立TCP连接,以便将所述HTTP请求发送给所选择的Web服务器,若未能找到与cookie ID相对应的连接复用池,则通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池;然后指示第三检测模块执行检测所述相对应的连接复用池中是否存在空闲连接的操作。
6.根据权利要求5所述的负载均衡器,其中,
连接管理模块还被配置为若所述HTTP请求中不包括cookie内容,则执行通过预设的负载均衡调度算法选择相应的Web服务器,并查找与所选择的Web服务器相对应的连接复用池的操作。
7.根据权利要求6所述的负载均衡器,还包括:
连接管理模块还被配置为在接收到Web服务器发送的HTTP响应报文后,在HTTP响应报文中添加一个Set-Cookie字段,并在Set-Cookie字段中添加相应连接复用池的cookie ID,将携带有cookie ID的HTTP响应报文发送给所述客户端。
8.根据权利要求7所述的负载均衡器,其中
连接管理模块还被配置为在将携带有cookie ID的HTTP响应报文发送给所述客户端后,以预定方式对所述客户端与负载均衡器之间的TCP连接进行老化处理;将Web服务器和负载均衡器之间的TCP连接存入相应的连接复用池,并将所存入的连接的状态修改为空闲状态。
9.一种负载均衡器,包括:
存储器,被配置为存储指令;
处理器,耦合到存储器,处理器被配置为基于存储器存储的指令执行实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN201911223828.2A 2019-12-04 2019-12-04 用于七层负载均衡中连接复用的方法和负载均衡器 Active CN112910793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911223828.2A CN112910793B (zh) 2019-12-04 2019-12-04 用于七层负载均衡中连接复用的方法和负载均衡器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911223828.2A CN112910793B (zh) 2019-12-04 2019-12-04 用于七层负载均衡中连接复用的方法和负载均衡器

Publications (2)

Publication Number Publication Date
CN112910793A CN112910793A (zh) 2021-06-04
CN112910793B true CN112910793B (zh) 2023-04-07

Family

ID=76104483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911223828.2A Active CN112910793B (zh) 2019-12-04 2019-12-04 用于七层负载均衡中连接复用的方法和负载均衡器

Country Status (1)

Country Link
CN (1) CN112910793B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873036B (zh) * 2021-09-28 2024-03-05 北京达佳互联信息技术有限公司 一种通信方法、装置、服务器及存储介质
CN114866442B (zh) * 2022-05-31 2023-05-26 杭州迪普科技股份有限公司 基于8583协议跨虚拟服务会话保持的测试方法及装置
CN115277807A (zh) * 2022-07-06 2022-11-01 上海弘积信息科技有限公司 一种负载均衡系统中使用连接池的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120743A1 (en) * 2001-02-26 2002-08-29 Lior Shabtay Splicing persistent connections
US8484287B2 (en) * 2010-08-05 2013-07-09 Citrix Systems, Inc. Systems and methods for cookie proxy jar management across cores in a multi-core system
CN101990256A (zh) * 2010-08-27 2011-03-23 中兴通讯股份有限公司 长连接管理装置及长连接通讯的链路资源管理方法
CN103810203B (zh) * 2012-11-13 2018-02-27 深圳市腾讯计算机系统有限公司 一种数据库管理系统连接复用方法及装置
WO2016032518A1 (en) * 2014-08-29 2016-03-03 Hewlett Packard Enterprise Development Lp Multiplexing network connections
US11290540B2 (en) * 2016-08-12 2022-03-29 Oracle International Corporation System and method for use of server-side connection pool tagging in a multi-tenant environment

Also Published As

Publication number Publication date
CN112910793A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN112910793B (zh) 用于七层负载均衡中连接复用的方法和负载均衡器
US9602428B2 (en) Method and apparatus for locality sensitive hash-based load balancing
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
US9456030B2 (en) Methods of operating load balancing switches and controllers using modified flow entries
CN104010001B (zh) 移动终端中同类联网请求进行连接通信的方法和系统
US10178033B2 (en) System and method for efficient traffic shaping and quota enforcement in a cluster environment
CN112261094A (zh) 一种报文处理方法及代理服务器
CN110545230B (zh) 用于转发vxlan报文的方法和装置
CN113595927A (zh) 一种旁路模式下镜像流量的处理方法和装置
CN110784436B (zh) 用于维持互联网协议安全隧道的方法和设备
US20200213233A1 (en) Balancing load
CN105991442B (zh) 报文转发方法及装置
CN112968965A (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
CN111245637B (zh) 生成基于应用的代理自动配置
WO2023186109A1 (zh) 节点访问方法以及数据传输系统
CN107612831B (zh) 一种访问源站的数据报文的传输方法及装置
CN114244850B (zh) 数据包处理方法、装置、计算机设备和存储介质
CN114338477B (zh) 一种通信链路监控方法、装置、设备及存储介质
US20210105299A1 (en) Method and system for defending an http flood attack
US20210281656A1 (en) Applying application-based policy rules using a programmable application cache
CN115484232A (zh) Dhcp服务器的部署方法、装置、设备及存储介质
CN104202297A (zh) 一种动态地适应服务器性能的防攻击方法和设备
CN106209666B (zh) 一种基于负载均衡器的链路复用方法及系统
CN106301832B (zh) 一种处理系统日志报文的方法和装置
CN105812274B (zh) 一种业务数据的处理方法和相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220126

Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing

Applicant after: Tianyiyun Technology Co.,Ltd.

Address before: No.31, Financial Street, Xicheng District, Beijing, 100033

Applicant before: CHINA TELECOM Corp.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant