应用服务器集群的多台应用服务器之间没有直接的交互,他们都是依赖数据库各自对外提供服务。同时应用服务器集群也会带来几个问题:
1、用户的请求由谁来转发到到具体的应用服务器?
2、有那些转发的算法和策略可以使用?
3、应用服务器如何返回用户的请求?
4、用户如果每次访问到的服务器不一样,那么如何维护 Session 的一致性?
针对上面的问题,可以采用以下解决方案
负载均衡的问题
集群调度转发算法
集群请求返回模式问题
集群 Session 一致性问题
值得一提的是:Nginx 目前支持的负载均衡算法有 WRR、SH、LC。而且 Nginx 作为均衡器的话,还可以一同作为静态资源服务器。Keepalived + ipvsadm 比较强大,目前支持的算法有:RR、WRR、LC、WLC、LBLC、SH、DH,Keepalived 支持集群模式有:NAT、DR、TUN。
解决了以上问题之后,架构如下: