RedHat下搭建Tomcat集群

2024-05-13 14:58
文章标签 集群 tomcat 搭建 redhat

本文主要是介绍RedHat下搭建Tomcat集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、软件准备

RedHat:RedHat Enterprise Linux6.0

Apache Httpd Server:httpd-2.2.24.tar.gz 下载地址:http://httpd.apache.org/download.cgi

Tomcat:apache-tomcat-6.0.35.zip 下载地址:http://tomcat.apache.org/download-60.cgi

Apache Tomcat Connector:tomcat-connectors-1.2.37-src.tar.gz 下载地址:http://tomcat.apache.org/download-connectors.cgi

2、安装Apache Httpd Server

关于Apache Httpd Server的安装此处略过,参见 Red Hat Enterprise Linux 6下安装Apache Httpd Server
3、安装Apache Tomcat Connector

解压源文件

tar -xzvf tomcat-connectors-1.2.37-src.tar.gz

进入源码目录

cd tomcat-connectors-1.2.37-src/native/

编译和安装

./buildconf.sh

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=$JAVA_HOME --with-java-platform=2 --enable-jni

make


 

安装成功之后进入cd /usr/local/apache2/modules/目录下,可以看到mod_jk.so文件


4、Tomcat安装及配置

Tomcat存放目录 /usr/local/

tomcat-6.0.35_1、tomcat-6.0.35_2

修改tomcat-6.0.35_1的端口配置信息server.xml

开启Tomcat集群支持server.xml

此处增加jvmRoute="tomcat1",这里的tomcat1值要和后面workers.properties值保持一致,建议的命名是从tomcat1开始增加

在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> </Engine>之间增加关于集群的配置。

Tomcat提供了一份默认的配置,可以参考如下地址:

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

我们可以直接使用Tomcat提供的默认配置来进行实验,但有一点需要注意

官方提供的address="auto",如果在虚拟机中进行实验的话需要进行修改一下,把地址修改为localhost或自己机器的ip地址就可以,不然启动时会报错误。

附:完整的cluster配置如下


<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

<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="localhost"

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>

修改tomcat-6.0.35_2的端口配置信息server.xml


5、配置Apache Httpd Server

cd /usr/local/apache2/conf/

修改配置文件httpd.conf在文件末尾增加如下配置信息

# Load mod_jk module

LoadModule jk_module modules/mod_jk.so

# Specify jk log file.

JkLogFile /var/log/mod_jk.log

# Specify jk log level [debug/error/info]

JkLogLevel info

# Specify workers.properties, this file tell jk:

# how many nodes and where they are.

JkWorkersFile conf/workers.properties

# Specify which requests should handled by which node.

JkMount /* controller

参考地址:http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

在Apache配置文件夹下增加一个配置文件workers.properties


文件内容如下:


worker.list=controller,tomcat1,tomcat2

#========tomcat1========

worker.tomcat1.port=8009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

#========tomcat2========

worker.tomcat2.port=8109

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2

worker.controller.sticky_session=1

#sticky_session为1表示


到此为止关于集群已经搭建好了基本环境

如果要让应用程序支持集群,需要在做如下两点:

  1. 在应用程序web.xml文件中需要加入:<distributable/>元素。

  2. Session中存放的数据(如attribute)需要实例序列化。


所使用的Tomcat及Web项目: 下载

这篇关于RedHat下搭建Tomcat集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986026

相关文章

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de