本文共 817 字,大约阅读时间需要 2 分钟。
背景:假设某个网站是由多台服务器提供服务,nginx采用轮询机制做负载均衡,那么同一个IP访问该网站时,请求就可能会被分配到不同的服务器上,如果session没有实现共享,就会出现重复登陆授权的情况。
是指session信息会在集群节点之间复制,每个节点服务器上都会有相同的session信息。
优点:
是即使一个节点服务器宕机了,只要还有服务器存活,就不影响用户使用。缺点:
缺点是node之间通信频繁,响应速度有影响,多并发、高频操作的情况下性能下降比较厉害。
基于Memcache/Redis等数据库的session共享
tomcat自带集群:属于session 复制,session信息会在各个tomcat中同步,对网络要求较高,session内存消耗影响会很大,对于小集群够用了,大集群还是建议使用redis或者memcache进行共享。
可以使用redission实现
1.轮询(默认),指定权重,fair(第三方),url_hash(第三方)此时集群各个节点之间必须进行session共享
2.IP绑定 ip_hash,用户的请求都会绑定在同一个节点服务器上,不考虑节点服务器宕机的情况,可以不进行session共享。节点服务器宕机后,用户需要关掉浏览器从新打开登录,体验极差。
1.轮询策略:即根据http请求数(requests)来均衡的分配给所代理的服务器,此时集群各个节点之间必须进行session共享
2.权重分配策略:即根据请求数量,调整分配比例(即访问三次40,访问一次22),此时集群各个节点之间必须进行session共享
转载地址:http://cpypi.baihongyu.com/