温馨提示×

debian tomcat怎样集群

小樊
41
2026-10-09 10:06:20
栏目: 智能运维

在 Debian 上搭建 Tomcat 集群,通常有三层目标:

  1. 多实例部署(横向扩展)
  2. Session 共享(高可用)
  3. 负载均衡(统一入口)

下面给你一个实战级、可落地的 Debian + Tomcat 集群方案。


一、整体架构(推荐)

            +-------------------+
            |   Nginx / HAProxy |
            |   (负载均衡)      |
            +-------------------+
               /        |        \
        +--------+ +--------+ +--------+
        | Tomcat | | Tomcat | | Tomcat |
        |  01    | |  02    | |  03    |
        +--------+ +--------+ +--------+
               \        |        /
            +-------------------+
            |  Session 存储     |
            | Redis / DB /      |
            | Multicast         |
            +-------------------+

二、准备环境(所有节点)

1. 安装 JDK

sudo apt update
sudo apt install openjdk-17-jdk -y

2. 安装 Tomcat(多实例)

不要直接 apt 装 tomcat(只能一个),建议手动部署:

cd /opt
wget https://archive.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
tar -xzf apache-tomcat-10.1.20.tar.gz
mv apache-tomcat-10.1.20 tomcat1
cp -r tomcat1 tomcat2

修改端口(关键):

vim tomcat1/conf/server.xml
vim tomcat2/conf/server.xml

示例(tomcat2):

<Connector port="8081" protocol="HTTP/1.1" />
<Server port="8006" shutdown="SHUTDOWN">

三、Session 共享(三种方式)

✅ 方式一:Redis Session(最推荐)

1. 安装 Redis

sudo apt install redis-server -y

2. Tomcat 使用 Redis Session

使用官方方案:

  • tomcat-redis-session-manager

或直接用 Spring Boot:

spring:
  session:
    store-type: redis

非 Spring 项目也可用 Valve + Redis


✅ 方式二:Tomcat Cluster(DeltaManager)

修改 server.xml:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
  <Manager className="org.apache.catalina.ha.session.DeltaManager"/>
  <Channel className="org.apache.catalina.tribes.group.GroupChannel">
    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
              port="4000"/>
  </Channel>
</Cluster>

⚠ 注意:

  • 需要多播支持
  • 适合小集群

✅ 方式三:前端无状态(最佳架构)

Session 放客户端(JWT)

  • Tomcat 无状态
  • 集群最简单
  • 互联网项目首选

四、负载均衡(Debian)

✅ Nginx(最常用)

sudo apt install nginx -y
upstream tomcat_cluster {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    listen 80;
    location / {
        proxy_pass http://tomcat_cluster;
    }
}
sudo nginx -t
sudo systemctl reload nginx

✅ HAProxy(支持 sticky)

sudo apt install haproxy -y
backend tomcat
    balance roundrobin
    server t1 127.0.0.1:8080
    server t2 127.0.0.1:8081

五、高可用(可选)

Keepalived(VIP)

sudo apt install keepalived

提供:

  • 虚拟 IP
  • 主备 Nginx

六、生产建议(非常重要)

✅ 推荐组合:

  • Nginx + Tomcat × N + Redis
  • Session:JWT 或 Redis
  • 不建议:DeltaManager 大集群

✅ 监控:

  • Prometheus + Tomcat Exporter
  • 日志统一(ELK / Loki)

七、最小可运行集群示例

组件 数量
Tomcat 2+
Nginx 1
Redis 1
Debian 12

如果你愿意,我可以:

  • 给你 一步一步的命令脚本
  • 给你 Spring Boot + Tomcat 集群方案
  • 给你 Docker / K8s 版本

你现在是 传统 WAR 项目 还是 Spring Boot?

0 踩