SESSION
是服务器为客户端建立的一个会话,存储用户的相关信息,用以标识用户身份等。在单服务器环境下是不须要考虑会话的一致性的问题的,可是在集群环境下就会出现一些问题,假如一个用户在登陆请求时负载均衡到了A
服务器,A
服务器为其分配了SESSION
,下次请求数据时被分配到了B
服务器,此时因为B
服务器不存在此用户的SESSION
,此用户会被重定向到登陆页面,这种状况是不合理的业务逻辑,因此须要维护SESSION
的一致性。html
多个服务器之间互相同步SESSION
,即A
服务器生成一个SESSION
信息后同步传输到B
、C
、D
等服务器,一样B
、C
、D
服务器生成SESSION
信息后也须要同步到A
,这样每一个服务器之间都包含所有的SESSION
sql
SESSION
复制的功能来实现集群SESSION
须要网络传输进行同步,其会占用带宽,而且存在必定的延迟SESSION
信息有所变化,必须同步更新全部服务器SESSION
内容经过将负载均衡服务器进行修改,经过对返回给用户的SESSION ID
或者用户请求的IP
地址进行标记,也就是使用第四层传输层中读取网络层的IP
或者是在第七层中读取HTTP
协议中某些属性来作HASH
,保证对于此用户的请求所有落到同一台服务器上数据库
将数据直接存储到客户端好比Cookie
或请求头中,每次请求客户端自动携带数据信息后端
将SESSION
存储在一台单独的服务器中的数据库中,例如Mysql
、Oracle
、SqlServer
、Redis
、Mongodb
等等,各SERVER
服务器须要用户信息时携带SESSION ID
对于集中存储服务器进行请求,进而获取用户信息安全
SERVER
服务器重启不会形成SESSION
丢失https://www.jianshu.com/p/5caed857dc3e https://www.cnblogs.com/study-everyday/p/7853145.html