负载均衡常见问题之会话保持-粘滞会话(Sticky Sessions)

会话保持,又称粘滞会话,是负载均衡中的重要概念,旨在确保来自同一客户端的请求被转发到同一台服务器处理,以解决因负载均衡导致的会话丢失问题。文章介绍了会话与连接的区别,讨论了原始负载均衡原理,以及会话保持的必要性。简单会话保持是基于源IP地址的会话保持,F5和NginX等支持多种会话保持方法。文章最后探讨了简单会话保持的局限性和其他会话保持解决方案,如基于数据库、文件系统、Cookie和Memcached的Session共享。
摘要由CSDN通过智能技术生成

会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题。


会话保持有时候又叫做粘滞会话(Sticky Sessions)。


在介绍会话保持技术之前,我们必须先花点时间弄清楚一些概念:什么是连接(Connection)、什么是会话(Session),以及这二者之间的区别。需要特别强调的是,如果我们仅仅是谈论负载均衡,会话和连接往往具有相同的含义。


从简单的角度来看,


如果用户需要登录,那么就可以简单的理解为会话;


如果不需要登录,那么就是连接。


实际上,会话保持机制与负载均衡的基本功能是完全矛盾的。负载均衡希望将来自客户端的连接、请求均衡的转发至后端的多台服务器,以避免单台服务器负载过高;而会话保持机制却要求将某些请求转发至同一台服务器进行处理。因此,在实际的部署环境中,我们要根据应用环境的特点,选择适当的会话保持机制。



原始负载均衡的基本原理


对于同一个连接中的数据包,负载均衡会将其进行NAT转换后,转发至后端固定的服务器进行处理,这是负载均衡最基本、最原始的功能。负载均衡系统内部会专门有一张表来记录这些连接的状况,包括:[源IP:端口]、[目的IP:端口]、[服务器IP:端口]、空闲超时时间(Idle Timeout)等等。


由于负载均衡内部记录连接状态的这张表需要消耗系统的内存资源,因此,这张表不可能无限大,所有厂家都会有一定的限制。这张表的大小一般称之为最大并发连接数,也就是系统同时能够容纳的连接数量。考虑到建立这些连接的客户端或服务器会发生一些异常状况,导致这些连接不能被正常终结掉,因此,负载均衡的当前连接状态表项中,设计了一个空闲超时时间的参数。这个参数定义为,当该连接在一定时间内无流量通过时,负载均衡会自动删除该连接条目,释放系统资源。


看了这段文字之后,应该就能够很好的理解为什么负载均衡的硬件设备的发展速度,无法和软件的发展相比较。因为这个硬件的发展速度,比不上服务器的发展速度….

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值