分布式系统下的Session会话同步保持探讨

2017-04-23

  服务器架构设计中,伸缩性是一个及其重要的指标。简单的说,伸缩性是指当目前i的应用服务器计算能力不足以处理用户请求时,服务器集群可以通过简单的增加节点,增强计算能力,来实现系统扩容的目的。

服务器集群是保障服务器稳定性最直接和简便的一个措施。两个服务器同时提供相同的服务,就可算做一个简单的集群。如果前端加上负载均衡服务器,均衡的将用户请求分发到不同服务器上,可以在尽量降低单个系统负载的情况下,提供尽可能稳定的服务。

如果客户端与服务器的交互是无状态,那么服务器端的扩容相对容易,我们仅仅需要将其他服务器上运行的代码复制到新的服务器就可以了。但是在实际中,有好多场景客户端与服务器交互是有状态的。比如电商,用户添加购物车、下单和查看历史订单,都需要服务器保持用户的会话(Session)相关信息。这种情况下,应用服务器的扩容就是一个问题了。

目前常用的Session会话保持技术主要有“Session复制”、“绑定IP地址”、“浏览器本地Cookie”和“专用Session会话服务器”几种。下面对四种方式做一下比较。假设应用服务器集群中有三台服务器,分别是172.16.0.1,172.16.0.2,172.16.0.3。前端有一台负载均衡服务器负责分发请求和反向代理工作。

Comments
Write a Comment