apache+Tomcat 集群搭建
来源:互联网 发布:最短路径算法最简单的 编辑:程序博客网 时间:2024/05/14 10:52
最近在做项目时遇到一个很头大的问题:在业务高峰期并发量大的时候很容易卡,JVM查看的时候发现单个tomcat内存释放不及时导致一直卡顿。手动处理了好几次虽然缓解危机了但是总是治标不治本。越来越大的并发量总有一天会拖死程序最后宕机,而且在更新的时候必须得等到晚上没有业务的时候才能停机更新 越来越渴望集群来真正解决这个问题。
由于服务是JAVA WEB程序,运用当下最流行的集群服务:tomcat+Apache 来搭建服务器集群。希望今天的心得能帮助各位
流程如下:用户发送请求到Web服务器(也就是apache) apache 根据定义规则进行http转发到不同的tomcat服务器 。同时要保证各个tomcat服务器之间的消息共享(非常重要!如在tomcat改变某一个内存值的同时要更新到每一台服务器上)实现实时消息同步 。
具体步骤如下:
1.下载JDK 并且配置好
2.下载Apache应用 网址:http://archive.apache.org/dist/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi
3 .下载mod_jk(用于连接apache和tomcat) 网址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/mod_jk-apache-2.0.55.so
4.下载 tomcat 7
准备完以后我们开始搭建负载均衡了
1.把Apache,两个Tomcat解压到D:\Apache Group文件夹下
2.在apache的httpd.cfg下配置加上include conf/mod_jk.conf
#<VirtualHost *:80># ServerAdmin webmaster@dummy-host.example.com# DocumentRoot /www/docs/dummy-host.example.com# ServerName dummy-host.example.com# ErrorLog logs/dummy-host.example.com-error_log# CustomLog logs/dummy-host.example.com-access_log common#</VirtualHost>include conf/mod_jk.conf3.把下载的mod_jk 复制到D:\Apache Group\Apache2\modules 路径下
4、在cof文件夹下新建mod_jk.conf,
#加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定 workers.properties文件路径 JkWorkersFile conf/myworkers.properties #指定那些请求交给tomcat处理,(controller表示所有)JkMount /* controller
5.在同路径下新建myworkers.properties
worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=9092 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9093 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat worker.controller.sticky_session=1
解释一下:
workers.properties中已经配置了端口和各个tomcat,从端口找到服务。
worker.controller.sticky_session,设置为1或true使用粘着session,设置为0或false不使用粘着session。如果sticky_session设为true时,建议sticky_session_force设为false,此参数表明如果集群中某台服务器在多次请求没有响应后,将转发当前的请求到其它服务器上处理;sticky_session=false时,影响比较大,会导致转发到其它服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。sticky_session、sticky_session_force的默认值分别为true,false。
6.修改两个tomcat的ajp13端口号(和上面myworker.properties)必须一一对应 并且修改两个tomcat中的开启端口号和服务端口号,以免重复
以上基本完成tomcat集群的基本配置 现在要做最重要的session共享; 。
7,打开两个tomcat的集群控制
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!---->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
8在自己应用服务的web.xml中 <web-app> 模块下加入<distributable />
<web-app><!-- for cluster --><!-- --><distributable />
OK 大功告成 一起去试试吧
- apache+Tomcat 集群搭建
- Apache与Tomcat搭建集群
- linux搭建apache+tomcat 集群
- Linux apache tomcat 集群搭建
- apache和tomcat搭建集群
- Tomcat+apache+memcached集群搭建
- Tomcat集群配置-apache,mod_jk_tomcat搭建集群
- Tomcat:基于Apache+Tomcat的集群搭建
- 搭建WEB服务器集群(apache+tk+tomcat)
- Apache+Tomcat集群之环境搭建
- 搭建apache+tomcat+memcached集群环境
- linux搭建apache和tomcat集群
- Apache+Tomcat集群之环境搭建 .
- 搭建Apache+Tomcat负载均衡集群
- apache+tomcat集群搭建,包括负载均衡
- Apache+Tomcat负载均衡集群搭建
- Apache+tomcat集群 简易版环境搭建
- Linux下apache tomcat集群搭建
- 直接通过response把文件内容下载到客户端
- Mybatis框架下SQL注入漏洞处理
- input checkbox 复选框大小修改
- Jquery——Day2(包裹节点、节点操作)
- 浅谈关于java中的关键字final以及this的一点理解
- apache+Tomcat 集群搭建
- node.js 关于 async的使用
- javascript学习笔记3
- oracle数据库的存储过程PROCEDURE与函数FUNCTION示例
- lxc安装使用教程
- sublime text 调试js代码
- 367. Valid Perfect Square |计算一个数是否是一个数的平方
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 深入FFM原理与实践