下面给你一个从原理到实操的 Java + Tomcat 集群部署方案,适合生产环境,也适合理解整体架构。
Tomcat 集群主要解决:
|
Nginx / LVS
|
+---------+---------+
| | |
Tomcat1 Tomcat2 Tomcat3
| | |
+---- Redis / DB ---+
192.168.1.101、192.168.1.102)# 每台机器
unzip apache-tomcat-9.x.zip
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
每台 Tomcat 的
jvmRoute必须不同
(以 tomcat-redis-session-manager 为例)
lib/:commons-pool2.jar
jedis.jar
tomcat-redis-session-manager.jar
context.xml<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="1800" />
✅ 优点:
upstream tomcat_cluster {
server 192.168.1.101:8080;
server 192.168.1.102:8080;
}
server {
listen 80;
location / {
proxy_pass http://tomcat_cluster;
}
}
✅ 支持:
ip_hash(不推荐,不利于扩容)# 每台 Tomcat
bin/startup.sh
访问:
http://nginx-ip/
✅ 测试:
| 方案 | 说明 | 推荐度 |
|---|---|---|
| Redis Session | 无状态、易扩展 | ⭐⭐⭐⭐⭐ |
| Tomcat Cluster | 广播同步 | ⭐⭐ |
| Nginx ip_hash | 简单但不灵活 | ⭐⭐ |
✅ 使用 Spring Boot + 外置 Tomcat ✅ 配合 Docker + K8s(更现代) ✅ 静态资源交给 Nginx ✅ Session 尽量放 Redis / JWT
如果你愿意,我可以:
你现在是 传统 Tomcat 部署 还是 Spring Boot?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。