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.一种长连接会话保持方法,其特征在于,所述方法用于负载均衡设备,所述方法包括:为客户端和第一服务器建立第一会话;为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则更新所述第一会话保持表项的老化时间。
【技术特征摘要】
1.一种长连接会话保持方法,其特征在于,所述方法用于负载均衡设备,所述方法包括:为客户端和第一服务器建立第一会话;为所述第一会话创建第一会话保持表项,其中所述第一会话保持表项记录了所述客户端与所述第一服务器的对应关系;当所述第一会话断开后,在所述第一会话保持表项老化之前,向所述客户端发送会话保持表项保活报文,其中所述会话保持表项保活报文用于探测所述客户端的连接状态;如果根据所述客户端对所述保活报文的回复确定所述客户端连接正常,则更新所述第一会话保持表项的老化时间。2.根据权利要求1所述的方法,其特征在于,在所述第一会话保持表项老化之前,具体为:在距离所述第一会话保持表项被删除时刻还剩第一预设时长时。3.根据权利要求1所述的方法,其特征在于,所述更新所述第一会话保持表项的老化时间,包括:将所述第一会话保持表项的老化时间重置为第二预设时长并按所述第二预设时长重新开始老化倒计时。4.根据权利要求1所述的方法,其特征在于,向所述客户端发送会话保持表项保活报文之后,所述方法还包括:如果到所述第一会话保持表项老化时,或者在向所述客户端发送会话保持表项保活报文之后的第三预设时长内,仍未确定所述客户端连接正常,则删除所述第一会话保持表项。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到所述客户端发来的报文时,查询第二会话是否存在,其中所述第二会话是与所述报文对应的会话;如果所述第二会话存在,则更新所述第二会话的老化时间;如果所述第二会话不存在,则建立所述第二会话。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:如果所述第二会话存在,则判断所述客户端发来的报文是否是会话保持表项保活报文的回复报文;如果不是保活报文的回复报文,则将所述报文发送给第二服务器,其中所述第二服务器是与所述第二会话对应的服务器。7.根据权利要求5所述的方法,其特征在于,建立所述第二会话之后,所述方法还包括:查询是否存在第二会话保持表项;如果不存在所述第二会话保持表项,则创建所述第二会话保持表项;如果已存在所述第二会话保持表项,则更新所述第二会话保持表项的老化时间。8.一种长连接会话保持装置,其特征在于,所述装置用于负载均衡设备,所述装置包括:会话管理单元,...
【专利技术属性】
技术研发人员:曲书玉,孙艳杰,
申请(专利权)人:杭州迪普科技股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。