Apache - Tomcat集群和负载均衡(2)

2020-02-20 13:52

worker.loadbalancer.balanced_workers=worker1,worker2 worker.loadbalancer.local_worker_only=1 worker.loadbalancer.sticky_session=true worker.loadbalancer.sticky_session_force=true

注:以上定义了两个worker,一个为worker1,另一个为worker2,定义了一个负载平衡服务器loadbalancer,其中标蓝 色的为重点配置项,相关的详细说明可以看官方的网站文档:http://tomcat.apache.org/connectors-doc/

worker.list=loadbalancer

设定工作的负载平衡器,各Tomcat节点不能加入此列表。 worker.worker1.lbfactor

负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。

worker.loadbalancer.balance_workers=worker1,worker2 指定此负载平衡器负责的Tomcat应用节点。 worker.loadbalancer.sticky_session=true

此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。

worker.loadbalancer.sticky_session_force=true

如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响 应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它 Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。

4.3 修改server.xml

#vi /usr/local/tomcat/conf/server.xml

第一臺TOMCAT主機在120行左右加入如下语句 (work1在apachel的workers.properties文件上定義的名稱)

查找Connector port=\,修改成如下:

protocolHandlerClassName=\ redirectPort=\protocol=\

并且把下面群集配置释放出来,也就是去掉注释。

className=?org.apache.catalina.cluster.mcast.McastService? mcastAddr=?228.0.0.4? mcastPort=?45564? mcastFrequency=?500? mcastDropTime=?3000?/>

className=?org.apache.catalina.cluster.tcp.ReplicationListener? tcpListenAddress=?10.3.15.85? tcpListenPort=?4001? tcpSelectorTimeout=?100? tcpThreadCount=?6?/>

className=?org.apache.catalina.cluster.tcp.ReplicationTransmitter?

replicationMode=?pooled?/>

5第二臺TOMCAT主機安裝配置:

5.1安装JDK # cd /usr/local/

# chmod 777 jdk-1_5_0_04-linux-i586-rpm.bin # ./jdk-1.5.0_04-linux-i586-rpm.bin

# cd /usr/java/

# ln -s /usr/java/jdk-1_5_0_04 /usr/local/java # vi /etc/profile #添加如下内容

JAVA_HOME=/usr/local/java/

CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar PATH=/usr/local/java/bin:$PATH

export PATH JAVA_HOME CLASSPATH

5.2安装Tomcat

# cd /usr/local/

# tar xvfz jakarta-tomcat-5.5.9.tar.gz

# ln –s /usr/local/jakarta-tomcat-5.5.9 /usr/local/tomcat # vi /usr/local/tomcat/bin/catalina.sh JAVA_HOME=/usr/local/java

启动服务后,访问本机8080端口,查看端口是否正常 # /usr/local/tomcat/bin/startup.sh /startup.bat 关闭服务

# /usr/local/tomcat/bin/shutdown.sh /shutdown.bat

5.3修改server.xml

#vi /usr/local/tomcat/conf/server.xml 查找TOMCAT的8080端口,改為80

第二臺TOMCAT主機在120行左右加入如下语句 (work2在apachel的workers.properties文件上定義的名稱)

查找Connector port=\,修改成如下:

protocolHandlerClassName=\ redirectPort=\protocol=\

并且把下面群集配置释放出来,也就是去掉注释。

className=?org.apache.catalina.cluster.mcast.McastService? mcastAddr=?228.0.0.4? mcastPort=?45564? mcastFrequency=?500? mcastDropTime=?3000?/>

className=?org.apache.catalina.cluster.tcp.ReplicationListener?

tcpListenAddress=?10.3.15.85?

tcpListenPort=?4001? tcpSelectorTimeout=?100? tcpThreadCount=?6?/>

className=?org.apache.catalina.cluster.tcp.ReplicationTransmitter? replicationMode=?pooled?/>

至此,系统已经整个完毕

启动apache和tomcat服务

# /usr/local/apache/bin/apachectl start #/usr/local/tomcat/bin/catalina.sh start

将如下内容添加至/etc/rc.d/rc.local文件末尾,以便系统启动后开启apache,tomcat服务 /usr/local/tomcat/bin/catalina.sh start /usr/local/apache/bin/apachectl start

6 测试群集

经过以上所有步骤,一个具有2个节点的tomcat群集已经配置完毕,但有时可能不能进行节点间的会话复制,是因为要把所有节点的 server.xml中的tcpListenAddress=?auto?改为tcpListenAddress=?10.3.15.85? ,也就是改为真实的ip地址。

如果在启动时,出现如下信息:skipping state transfer. No members active in cluster group. 也需要修改上面的信息。否则,session是不能在多个tomcat间复制session的。

5.1 编写一个简单web应用,包含如下内容: 写一个如下的2个jsp页面。 test.jsp内容如下:


Apache - Tomcat集群和负载均衡(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于加强文物保护单位的巡查和执法工作的认识和思考 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: