Tomcat+Aapache集群
来源:互联网 发布:家装招标软件 编辑:程序博客网 时间:2024/06/06 03:08
一直觉得大并发、多请求的分担很好奇,所以在网上找了一些资料做了一下ApacheServer+Tomcat集群,看了资料之后才理解原来大并发就是把N多个请求用一个负载均衡服务器装起来,然后在分发到各个服务器上(并保持请求的同步、session的复制),集群的概念图就是下面这样。
下面就开始实现ApacheServer+Tomcat集群的安装。首先需要下载tomcat和apacheServer 然后解压安装,安装apacheServer 一路Next既可;安装完成之后,访问localhost测试一下服务是否开启
ApacheServer安装完成之后,就可以配置Tomcat了。在ApacheServer的安装目录下面把下载的tomcat解压多个,并命名好
文件解压完成之后,需要下载一个tomcat自带的组件:mod_jk
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/mod_jk-1.2.31-httpd-2.2.3.so
,ApacheServer就是通过这个玩意把请求分发给多个tomcat的。下载完成之后,把它放到ApacheServer安装目录的modules下面,然后在conf目录下面新建一个mod_jk.conf文件,并添加下面的配置:
#加载mod_jk Module
LoadModule jk_modulemodules/mod_jk-1.2.31-httpd-2.2.3.so
#指定workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /* controller
注意红色部分的配置,发现了什么? 对没错,它指向了一个workers.properties配置文件。在ApacheServer的安装目录的conf目录下面新建一个workers.properties文件,并添加如下配置:#server
worker.list= controller
#========tomcat1========
#ajp13端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
#协议类型
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多。lbfactor是负载平衡因数(Load Balance Factor)
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========controller,负载均衡控制器========
#负载均衡控制器类型,lbfactor是负载平衡因数(LoadBalance Factor)
worker.controller.type=lb
#指定分担请求的tomcat列表
worker.controller.balanced_workers=tomcat1,tomcat2
#粘性session(默认是打开的) 当该属性值=true(或1)时,代表session是粘性的,即同一session在集群中的同一个节点上处理,session不跨越节点。在集群环境中,一般将该值设置为false
worker.controller.sticky_session=false
#设置用于负载均衡的server的session可否共享
worker.controller.sticky_session_force=1
下面开始配置Tomcat
在ApacheServer同级目录中的tomcat1中的server.xml里面的<Engine>中添加 jvmRoute="tomcat1" (注意,这个名字要和workers.properties文件中的一致)
并在<Engine>下面添加:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
OK 第一个Tomcat的配置就完成了!第二个Tomcat配置和第一个差不多一样,就不累述。
注意:因为在一台机器上部署两台tomcat,所以需要修改第二个tomcat的端口,不然会产生冲突
<Server port="9005" shutdown="SHUTDOWN"> 默认为:8005
然后修改http1.1的端口,默认是8080
<Connector port="9080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
最后修改AJP1.3端口,默认是8009
<Connector port="9009"protocol="AJP/1.3" redirectPort="8443" />
这个AJP1.3的端口必须与C:\cluster\httpd\conf\ workers.properties文件中的配置保持一下
配置完成之后,重启ApacheServer和启动tomcat和tomcat2,发现之前访问localhost是apache的主页,现在变成Tomcat的主页了。
OK ApacheServer+Tomcat的集群就配置Ok啦...
- Tomcat+Aapache集群
- Tomcat集群
- tomcat集群
- Tomcat集群
- TOMCAT 集群
- tomcat集群
- Tomcat集群
- tomcat集群
- tomcat 集群
- tomcat集群
- tomcat集群
- Tomcat集群
- tomcat集群
- tomcat集群
- tomcat集群
- TOMCAT集群
- tomcat集群
- tomcat 集群
- 查找MySQL中查询慢的SQL语句的方法
- 手机卫士知识点一 splash界面级部分代码注释.
- poj 1226 Substrings( 后缀数组 出现或反转后出现在每个字符串中的最长子串)
- Facebook POP框架的简单使用
- leetcode: Reverse Nodes in k-Group
- Tomcat+Aapache集群
- Java读取数据库数据生成柱状图
- 面向对象设计原则
- vsftp介绍使用
- JAVA 指定打印机进行打印
- 容易混淆的函数
- ubuntu下安装jre的步骤
- 抽象类和接口的区别
- redhat 6.0 编译mysql 和 gtk