linux

Tomcat在Linux上的集群如何搭建

小樊
46
2025-09-13 03:37:40
栏目: 智能运维

以下是在Linux上搭建Tomcat集群的核心步骤,基于Nginx负载均衡和Tomcat原生集群配置:

一、环境准备

  1. 安装Java环境
    确保所有节点安装相同版本的JDK(如OpenJDK 11):

    sudo yum install java-11-openjdk-devel  # CentOS
    sudo apt install openjdk-11-jdk         # Ubuntu
    
  2. 下载并安装Tomcat
    在每个节点解压Tomcat(建议版本≥9.0):

    wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
    tar -xzf apache-tomcat-9.0.85.tar.gz
    mv apache-tomcat-9.0.85 /opt/tomcat
    

二、配置Tomcat集群节点

  1. 修改server.xml(关键步骤)
    /opt/tomcat/conf/server.xml中启用集群配置:

    <Engine name="Catalina" defaultHost="localhost">
        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
            <!-- 会话管理器(DeltaManager支持全量复制) -->
            <Manager className="org.apache.catalina.ha.session.DeltaManager"
                     expireSessionsOnShutdown="false"/>
            <!-- 通信通道(多播方式发现节点) -->
            <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"/>   # 节点失联判定时间(毫秒)
            </Channel>
        </Cluster>
    </Engine>
    

    说明

    • addressport需与集群中所有节点保持一致。
    • 若需跨服务器通信,需关闭防火墙或放行多播端口。
  2. 配置应用可集群化
    在应用的WEB-INF/web.xml中添加<distributable/>标签,启用会话复制:

    <web-app>
        <distributable/>
    </web-app>
    

三、配置负载均衡(以Nginx为例)

  1. 安装Nginx

    sudo yum install nginx  # CentOS
    sudo apt install nginx  # Ubuntu
    
  2. 配置负载均衡规则
    编辑/etc/nginx/nginx.conf,添加集群节点配置:

    upstream tomcat_cluster {
        server 192.168.1.101:8080;  # Tomcat节点1
        server 192.168.1.102:8080;  # Tomcat节点2
        server 192.168.1.103:8080;  # Tomcat节点3
        least_conn;  # 动态选择最少连接节点
    }
    
    server {
        listen 80;
        location / {
            proxy_pass http://tomcat_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    

    说明

    • least_conn策略可根据节点负载动态分配请求,适合高并发场景。

四、验证与测试

  1. 启动服务

    • 在每个节点启动Tomcat:
      /opt/tomcat/bin/startup.sh
      
    • 启动Nginx:
      sudo systemctl start nginx
      
  2. 测试集群功能

    • 访问Nginx地址(如http://your-server-ip/),观察请求是否被分发到不同Tomcat节点。
    • 检查会话一致性:登录应用后,刷新页面或切换节点,验证会话是否保持。

五、可选优化

注意事项

以上步骤参考自,适用于CentOS/Ubuntu系统,可根据实际需求调整节点数量和配置细节。

0
看了该问题的人还看了