Java Web分布式集群搭建(二)——Apache+Tomcat集群负载均衡

JavaWeb yan loading.. 0评论 已收录

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

主要方式

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的配置文件配合<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"

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

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

安装实例 —— mod_jk模式

系统Ubuntu 12.04 程序Apache2和Tomcat7

安装程序

配置文件

在配置文件中,分别添加JkOptions +RejectUnsafeURIJkMount /* loadbalancer

修改workers.tomcat_homeworkers.java_home为自己的tomcat和java路径.

默认路径:java:/usr/lib/jvm/java-1.7.0-openjdk-amd64 tomcat:/usr/share/tomcat7

配置worker.list

在<VirtualHost *:80>中添加JkMount /* loadbalancer

修改每个节点/var/lib/tomcat7/conf/server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">添加jvmRoute标签(要和前面对应上)

在<Engine/>标签中添加以下这段代码:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

重启服务 service tomcat7 restart

安装实例——Ubuntu mod_proxy_blancer模式

系统Ubuntu 12.04 程序Apache2和Tomcat7

加载模块

执行完上述模块的加载后,可以重启apache,如果发送错误可以查看错误日志

配置反向代理(负载均衡)

如下配置内容:

注意:

  • lbmethod=byrequests 按照请求次数均衡(默认)
  • lbmethod=bytraffic 按照流量均衡
  • lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)

然后重启服务器,就完成了配置工作

关注<爱上极客>公众号,定期推送精彩内容!

喜欢 (2)

如未说明则本站原创,转载请注明出处:爱上极客 » Java Web分布式集群搭建(二)——Apache+Tomcat集群负载均衡


0
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址