答:
传统项目(或者单体项目)中不需要实现Session共享.
在传统登录时,用户登录会将用户的登录信息存储在Session中,然后返回id 保存到客户端的Cookie中.
用户下次登录时,取出客户端的Cookie登录id,到服务器中去找到相应的Session对象,如果找到证明登录,反之就没有登录.
(这个只涉及到单服务器的登录)
如果是采用的SOA分布式服务架构,设计到各个服务之间要进行相互调用,这里每个服务器之间都有自己单独的Session
例如:用户访问服务器A,当他在服务器A登陆,创建Session对象,保存Session信息到服务器A中,
用户下一次访问由于负载均衡,把用户分配到一个服务器压力较小的服务器B中,我在用客户端的CookieId到服务器B中找相对应的Session对象,肯定是找不到的,这里就会认为用户还未登录,
服务与服务之间session不互通导致未登录,为了解决这个问题,我们要实现服务器与服务器之间的一次登录多服务可用, 这个就叫做session共享
解决方式一: Redis
使用Redis作为各个服务器之间的连接纽带,用来保存用户登录时的Session信息
用户登录时,获取用户的登录信息,将用户登录的Session信息存储到Redis的Value中,Key则保存的是用户的Cookieid
当用户再次登录时,取出用户CookieId到Redis数据库中进行比对, 找到就证明用户已经登录
标签:登录,Redis,用户,Session,解决,服务器,共享,服务器之间 From: https://www.cnblogs.com/wong-/p/18107922