一种长连接会话保持方法和装置制造方法及图纸

技术编号:20657356 阅读:33 留言:0更新日期:2019-03-23 08:44
本申请提供一种长连接会话保持方法和装置,用于负载均衡设备,其方法包括:为客户端和第一服务器建立第一会话;创建第一会话保持表项,记录客户端与第一服务器的对应关系;当第一会话断开后,在第一会话保持表项老化之前,向客户端发送会话保持表项保活报文,用于探测连接状态;如果客户端连接正常则更新会话保持表项的老化时间。本发明专利技术建立了会话保持表项更新机制,不但通过会话保持减少了客户端重复建立连接的过程,而且在客户端的连接是长连接的情况下,避免了超出会话保持老化时间后客户端再次访问服务器时因负载均衡器重新分配服务器而导致的业务错误,此外会话保持表项老化机制仍存在,可避免因会话表项长时间不老化而占用设备资源的问题。

A Long Connection Session Holding Method and Device

This application provides a long-connection session-holding method and device for load balancing devices by establishing a first session for the client and the first server, creating a first session-holding table item to record the corresponding relationship between the client and the first server, and sending a session-holding table guarantee to the client before the first session-holding table item ages after the first session is disconnected. Live messages are used to detect connection status; if the client connection is normal, update the aging time of session retention table entries. The invention establishes a session-holding table item update mechanism, which not only reduces the process of repeated connection establishment by the client through session-holding, but also avoids business errors caused by load balancer reallocating the server when the client accesses the server again after exceeding the session-holding aging time when the client is connected for a long time. In addition, session-holding table item aging is also avoided. The mechanism still exists, which can avoid the problem of occupying device resources because session table items are not aging for a long time.

【技术实现步骤摘要】
一种长连接会话保持方法和装置
本申请涉及网络通信
,特别涉及一种长连接会话保持方法和装置。
技术介绍
随着服务器集群技术的迅速发展,为了提高服务器的性能和负载能力,服务器负载均衡设备被广泛应用于服务器集群中,通过内置调度算法将访问流量均衡地分配至各服务器。同时,进行负载均衡时还需要识别客户端与服务器之间交互过程的关联性,保证同一用户相关联的访问请求会被分配到同一服务器上,这一机制通常被称为会话(session)保持。例如,在大多数电子商务的应用系统或者其他需要进行用户身份认证的在线系统中,一个用户与服务器经常需要经过多次交互过程才能完成一笔交易或者是完成一次请求,因为这几次交互过程是密切相关的,所以服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次或上几步交互过程的处理结果,这就要求所有这些相关的交互过程都由同一个服务器完成,实现会话的保持,而不能被负载均衡器分散到不同的服务器上。会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题。对于目前的服务器负载均衡设备,基于源IP的会话保持中一个很重要的参数就是连接超时值,负载均衡器会为每一个处于保持状态的会话设定一个时间值作为超时值。若一个会话从上一次完成到下次再来之间的间隔时间小于超时值,则负载均衡器会将新来的连接进行会话保持;而如果这个间隔大于该超时值,则负载均衡器会将新来的连接认为是新的会话然后重新进行负载均衡调度。例如如下应用场景:某财务应用属于长连接,因为在客户端需要填写大量的表单数据,客户端与服务器建立连接后,客户端使用者将花费几分钟甚至几十分钟来填写表单相关信息。然而当使用者终于填好表单所需信息后,点击“提交”按钮,结果此时由于早已超过连接超时值,负载均衡设备其将重新进行负载均衡,分配到了另一个服务器,这就会造成该应用产生故障,导致客户端使用者所有的工作需要重新来,给使用者带来极大的不便和损失。
技术实现思路
有鉴于此,本申请提供一种长连接会话保持方法和装置,以实现不局限于连接超时值的会话保持。具体地,本申请是通过如下技术方案实现的:一种长连接会话保持方法,所述方法用于负载均衡设备,所述方法包括:为客户端和第一服务器建立第一会话;为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则更新所述第一会话保持表项的老化时间。一种长连接会话保持装置,所述装置用于负载均衡设备,所述装置包括:会话管理单元,用于为客户端和第一服务器建立第一会话;会话保持表项管理单元,用于为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;更新所述第一会话保持表项的老化时间;探测单元,用于当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则触发所述会话保持表项管理单元更新所述第一会话保持表项的老化时间。由以上本申请提供的技术方案可见,在本方案中负载均衡设备会在所述第一会话保持表项老化之前,向所述客户端发送用于探测所述客户端连接状态的会话保持表项保活报文,然后根据客户端对所述保活报文的回复来确定所述客户端是连接正常,如果客户端连接正常,则代表该长连接会话需要被继续保持,第一会话保持表项不可被老化,因此会更新第一会话保持表项老化时间。本方案建立了会话保持表项更新机制,通过对客户端的探测完成会话保持表项的更新,即使客户端发来的前后两次报文的间隔时间超过连接超时值,只要客户端连接正常,则该会话保持表项仍可存在,这样不但通过会话保持减少了客户端重复建立连接的过程,而且在客户端的连接是长连接的情况下,避免了超出会话保持老化时间后客户端再次访问服务器时因负载均衡器重新分配服务器而导致的业务错误,此外本方案中会话保持表项老化的机制仍存在,可避免因会话表项长时间不老化而占用设备资源导致负载均衡器性能不足的问题。附图说明图1为本申请示出的一种长连接会话保持方法的流程图;图2为本申请示出的一种长连接会话保持方法的流程图;图3为本申请示出的当接收到客户端发来的报文时的流程图;图4为本申请示出的当接收到客户端发来的报文时的流程图;图5为本申请示出的一种长连接会话保持装置的示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。请参见图1,图1为本申请示出的一种长连接会话保持方法的流程图。该方法可用于负载均衡设备。包括如下步骤:步骤S101,为客户端和第一服务器建立第一会话。第一会话为新会话。例如客户端C1访问虚拟服务,与负载均衡设备(或称负载均衡器)建立新会话,负载均衡设备通过负载均衡调度算法调度到一台真实服务器S1上。负载均衡调度算法的作用,就是根据不同的业务环境、服务器状况等,将业务流量合理分配到后端服务器,保障后端服务器的正常、稳定、高效的运行。作为示例,通用算法主要有:轮询、加权轮询、最小连接、加权最小连接等,此处不再赘述。步骤S102,为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系。下面以简单会话保持(也称作基于源地址的会话保持、基于IP的会话保持)为例进行说明。简单会话保持是指负载均衡器在作负载均衡时根据访问请求的源地址作为判断关联会话的依据,对来自同一IP地址的所有访问请求在作负载均衡时都会被保持到一台服务器上去。简单会话保持中一个很重要的参数就是连接超时值,负载均衡器会为每一个处于保持状态中的会话设定一个时间超时值。若一个会话从上一次完成到下次再来之间的间隔时间小于超时值时,负载均衡器将会将再次的连接进行会话保持;但如果这个间隔大于该超时值,负载均衡器会将新来的连接认为是新的会话然后进行负载平衡。负载均衡器是通过会话保持表项来实现会话保持的。负载均衡器将客户端与本文档来自技高网
...

【技术保护点】
1.一种长连接会话保持方法,其特征在于,所述方法用于负载均衡设备,所述方法包括:为客户端和第一服务器建立第一会话;为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则更新所述第一会话保持表项的老化时间。

【技术特征摘要】
1.一种长连接会话保持方法,其特征在于,所述方法用于负载均衡设备,所述方法包括:为客户端和第一服务器建立第一会话;为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则更新所述第一会话保持表项的老化时间。2.根据权利要求1所述的方法,其特征在于,在所述第一会话保持表项老化之前,具体为:在距离所述第一会话保持表项被删除时刻还剩第一预设时长时。3.根据权利要求1所述的方法,其特征在于,所述更新所述第一会话保持表项的老化时间,包括:将所述第一会话保持表项的老化时间重置为第二预设时长并按所述第二预设时长重新开始老化倒计时。4.根据权利要求1所述的方法,其特征在于,向所述客户端发送会话保持表项保活报文之后,所述方法还包括:如果到所述第一会话保持表项老化时,或者在向所述客户端发送会话保持表项保活报文之后的第三预设时长内,仍未确定所述客户端连接正常,则删除所述第一会话保持表项。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到所述客户端发来的报文时,查询第二会话是否存在,其中所述第二会话是与所述报文对应的会话;如果所述第二会话存在,则更新所述第二会话的老化时间;如果所述第二会话不存在,则建立所述第二会话。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:如果所述第二会话存在,则判断所述客户端发来的报文是否是会话保持表项保活报文的回复报文;如果不是保活报文的回复报文,则将所述报文发送给第二服务器,其中所述第二服务器是与所述第二会话对应的服务器。7.根据权利要求5所述的方法,其特征在于,建立所述第二会话之后,所述方法还包括:查询是否存在第二会话保持表项;如果不存在所述第二会话保持表项,则创建所述第二会话保持表项;如果已存在所述第二会话保持表项,则更新所述第二会话保持表项的老化时间。8.一种长连接会话保持装置,其特征在于,所述装置用于负载均衡设备,所述装置包括:会话管理单元,...

【专利技术属性】
技术研发人员:曲书玉孙艳杰
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1