目前项目上使用的分布式session解决方案,主要是以下的三种方式:
(1)session复制
session复制是早期企业应用系统使用比较多的一种服务器集群Session管理机制。应用服务器开启Web容器的的Session复制功能,在集群中的几台服务器之间同步Session对象,是的每台服务器上都保存所有用户的Session信息。
(2)session会话保持(黏滞会话)
会话保持是利用负载均衡的原地址Hash算法实现,负载均衡服务器总是将来源于同一IP的请求分发到同一台服务器上,这种会话保持也叫黏滞会话(Sticky Sessions)。
(3)session服务器(集群)
使用专门的session服务器集群管理会话,集成了高可用、伸缩性好、对保存信息大小没有限制、性能也相对很好。将以前在本地内存中建立的数据缓存、Session缓存,在微服务架构中把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算服务节点。这样,计算服务就可以按需动态伸缩,微服务应用在运行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。