转载来源:
https://blog.youkuaiyun.com/qq_26431469/article/details/70312853
负载均衡时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访问被分发到A服务器,那么session就会被存到A服务器,再次访问时负载均衡会分发到B服务器那么第一次访问的session信息就会获取不到之前的session信息。从而导致数据的不一致。
解决方案有以下几种:
方案一(nginx或者haproxy做的负载均衡):
用Nginx 做的负载均衡可以添加ip_hash这个配置,
用haproxy做的负载均衡可以用 balance source这个配置。
从而使同一个ip的请求发到同一台服务器。
方案二 利用数据库同步session:
这种方案不可取,这样会加大数据库的访问压力。
方案三 利用cookie同步session数据原理图如下: