什么是共享session
多个应用实例共同保持的用户的状态,例如登录状态
为什么要实现共享session
分布式应用需要用户在某一点登录,记录用户登录状态在其他应用实例中也能获取到已经登录的状态
实现流程
用户登录
1.用户登录时,生成一个全局唯一uuid,
2.将uuid:用户信息以key:value形式存到redis中,这里边采用将对象序列化后村放入redis的操作进行
3.将生成的token(uuid)存放到cookie中
用户访问
1.使用token从redis中获取用户状态信息,以标识用户是否成功访问
代码实现
https://gitee.com/potatobeancox/potato-seckill/blob/master/src/main/java/com/potato/seckill/controller/LoginController.java
中login流程,查com.potato.seckill.service.SeckillUserService#getByToken调用栈