TOmcat 之 负载均衡模块

在分布式中,为了防止应用在单服务器因受压力过大而崩溃,而利用多个Tomcat集群进行部署,使应用可以无状态的访问到任何一个Tomcat服务器,从而进行合理的负载均衡操作,保证应用的可靠和稳定运行


主要方式

mod_proxy、mod_proxy_blancer、mod_jk

mod_proxy

mod_proxy是一种分工合作的方式,利用反向代理的技术,将任务跳转给各个服务器,并不能实现负载均衡,仅仅是访问跳转。

主要用途:反向单例 单IP多域名多站点的功能

mod_proxy_blancer

mod_proxy_blancer是mod_proxy的扩展,支持负载平衡

可以按轮询策略、权重分配策略和请求相应负载均衡策略进行调度

mod_jk

mod_jk是专门针对tomcat的方法,通过AJP协议链接Tomcat

比较

mod_proxy缺点:当集群中一台服务器停止,apache仍然会转发请求过去,导致502网关错误。(解决办法:启动停止的服务器)

mod_jk优点:Apache 会自动检测到停止掉的tomcat服务器,然后不再发请求过去。

mod_jk缺点:当停止的Tomcat服务器被检测到并停止转发请求后,即使重新启动服务器也不会被Apache发现并继续转发请求。

mod_proxy和mod_jk共同优点:可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理jsp和servlet等动态请求。

mod_proxy和mod_jk共同缺点:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。

mod_proxy和mod_jk对静态页面请求的处理,都可以通设置来选取一个尽可能优化的效果。

mod_proxy_balancer和mod_jk都需要修改tomcat的配置文件配合

综合这三种方式来说,mod_proxy_balancer和mod_jk的负载均衡能力更好,mod_jk的设置能力更强是真对Tomcat而专门的负载均衡方法。

当然Apache自带的是mod_proxy和mod_proxy_balancer模块,该模块主要提供两种集群实现方式:第一种是分工模式,固定为不同服务器分配不同的任务。第二种是可以检测到服务器的状态,如果服务器停止了,就停止发送请求,并转发给其他的服务器。但是第一种比第二种的效率更高。

你可能感兴趣的:(TOmcat 之 负载均衡模块)