集群:会话保持【nignx IP】、会话复制【tomcat session-manager多节点会影响性能】、会话共享【缓存】
基于nginx tomcat redis分布式web应用的session共享配置
Nginx 负载均衡
nginx的负载均衡策略可以划分为两大类:内置策略和扩展策略。
内置策略包含加权轮询和ip hash,在默认情况下这两种策略会编译进nginx内核,只需在nginx配置中指明参数即可。
扩展策略有很多,如fair、通用hash、consistent hash等,默认不编译进nginx内核。
加权轮询:nginx采用的是先深搜索算法,即将首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器。
ip hash:hash值既与ip有关又与后端机器的数量有关。只能产生1045个互异的value,这是该算法的硬限制。对此nginx使用了保护机制,当经过20次hash仍然找不到可用的机器时,算法退化成轮询。
fair:其原理是根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。这种策略具有很强的自适应性,但是实际的网络环境往往不是那么简单,因此要慎用。
通用hash、一致性hash:通用hash比较简单,可以以nginx内置的变量为key进行hash,一致性hash采用了nginx内置的一致性hash环,可以支持memcache。
对比测试