包括但不限于:
粘性 Session
每次请求都会转发到指定的机器,比如 Nginx 的 ip_hash,将用户和机器绑定起来,造成单机的效果,实现起来较为简单,只需加一些额外的配置
但是这种方式有一定的局限性,一旦当前服务器发生故障,用户会被转发到其他服务器上,Session 信息就会丢失
Session 复制
这种方式需要服务器的支持,每当 Session 发生改变,该节点就会自动将 Session 内容广播给其他节点
因此对服务器的带宽有一定的占用,如果数据量过多,可能会对请求的响应造成一定的影响
Session 共享
可以将 Session 信息存入 Redis
缺点就是每次引入第三方中间件,都要考虑可靠性问题,挂了怎么办
Session 持久化到数据库
持久化 Session 有一个好处就是当服务器发生故障的时候,Session 不会丢失
缺点就是给数据库造成了额外的负担
Cookie
将数据放在 Cookie 里,实现起来也比较简单
只是数据放在浏览器里是不安全的,不能放敏感数据