分布式环境怎么保存用户状态?第一种:粘性session (Nginx)原理:粘性Session是指将用户锁定到某一个服务器上,比如上面说的例子,用户第一次请求时,负载均衡器将用户的请求转发到了A服务器上,如果负载均衡器设置了粘性Session的话,那么用户以后的每次请求都会转发到A服务器上,相当于把用户和A服务器粘到了一块,这就是粘性Session机制。优点:简单,不需要对session做任何处理。缺点:缺乏容错性,如果当前访问的服务器发生故障,用户被转移到第二个服务器上时,他的session信息都将失效。适用场景:发生故障对客户产生的影响较小;服务器发生故障是低概率事件。实现方式:以Nginx为例,在upstream模块配置ip_hash属性即可实现粘性Session。upstream mycluster{ #这里添加的是上面启动好的两台Tomcat服务器 ip_hash;#粘性Session server192.168.22.229:8080 weight=1; server192.168.22.230:8080 weight=1;} 第二种:session持久化到数据库原理:用数据库,专门用来存储session信息,保证session的持久化。优点:服务器出现问题,session不会丢失缺点:如果网站的访问量很大,把session存储到数据库中,会对数据库造成很大压力,还需要增加额外的开销维护数据库。