负载均衡会话持续性保证技术

发布时间:2020-07-07 21:05:55   来源:网络


会话持续性保证技术的目标是保证在一定时间段内某一个用户与系统的会话只交给同一台服务器处理,这一点在满足网银、网购等应用场景的需求时格外重要。
 
在实际的应用中,一次业务交互可能包含有多个TCP连接,不同业务的TCP连接有各自的特点。比如FTP业务的连接包含了一个控制通道和多个数据通道,这些TCP连接之间存在显式的关联关系,即数据通道的TCP连接是通过控制通道协商得来的。因此,在负载均衡过程中只需要分析FTP业务的控制通道报文就可以获得各个数据通道的信息并进而将这些信息纳入到一个会话中,从而保证所有通道都访问同一台服务器。但是,对于HTTP业务而言,其各个TCP连接间就不存在这种显式的关联关系,HTTP是一个无状态协议但是在某些场景中又要求一系列HTTP消息之间建立关联,比如HTTP网络购物,这只能依靠携带在数据报文中的相关信息表达连接之间的关联,例如源IP地址、Cookie数据等。
 
这里讲的技术是负载均衡设备通过分析四层TCP数据包和七层HTTP消息中存在的隐式关联关系,确定处理连接请求的服务器,从而实现会话持续性保证。该领域的主要思路包括如下几点。
 
1)基于源IP地址的持续性保持:主要用于四层负载均衡,确保来自同个源IP的业务能够分配到同一合服务器中。当负载均衡设备接收到某IP的首次请求时,建立持续性表项,记录下为该IP分配的服务器情况,在会话表项的生存周期内,后续具有相同源IP地址的业务报文都将被发往该服务器处理。
 
(2)基于Cookie数据的持续性保持:主要用于七层负载均衡,用以确保同一会话的报文能够被分配到同一台服务器中。其中,根据服务器的应答报文中是否携带含有服务器信息的Set-Cookie字段,又可分为采用Cookie插入或者Cookie截取的方法。
 
●Cookie插入保持:服务器的应答报文中不携带含有服务器信息的Set-Cookie字段,而由负载均衡设备在报文中添加相关信息。这样,客户端就会在请求报文中加入含有该服务器信息的Cookie字段,进而由负载均衡设备按照Cookie字段中的服务器信息将请求报文发给相应的服务器。
 
●Cookie截取保持:服务器的应答报文中携带含有服务器信息的Sct-Cookie字段,负载均衡设备根据用户配置的Cookie标识截取应答报文中的Cookie值。对于后续的客户端请求报文,如果能够匹配负载均衡设备中保存的Cookie值,则负载均衡设备直接将请求报文发给相应的服务器。
 
(3)基于SIP报文Call-ID的持续性保持:主要用于七层负载均衡,用以确保IP会话中会话标识相同的SP报文能够被分配到同一合服务器中。当负载均衡设备接收到某一个客户端的某一个业务的首次请求时,建立持续性表项,记录下为该客户端分配的服务器情况,在会话表项的生存周期内,后续具有相同会话标识的SIP业务报文都将被发往该服务器处理。
 
(4) 基于HTTP报文头的持续性保持:主要用于七层负载均衡,用以确保理IP报文头中的某些关键信息相同的报文能够被分配到同一合服务器中。当负载均衠设备接收到某一个客户端的某一个业务的首次请求时,根据HTTP报文头关键字建立持续性表项,记录下为该客户端分配的服务器情况,在会话表项的生存周期内,后续具有相同HTTP报文头信息的报文都将被发往该服务器处理。至于什么信息被设量为关键字,是配置负载均衡策略的一个步骤。
 
CDN互联专业提供国内外高防cdn加速服务
 
猜你喜欢