核心結論
可以在單台伺服器上啟動多個 Tomcat 實例並配合 Apache/Nginx 做反向代理,實現請求分流;但無法達到真正的高可用(HA)與水平擴展。
可行架構
用戶 → Apache (Port 80) → mod_proxy_ajp / mod_proxy_http
├─→ Tomcat1 (Port 8080, AJP 8009)
└─→ Tomcat2 (Port 8081, AJP 8010)
優點
- 利用多核 CPU:每個 Tomcat 佔用不同核心,提升並發處理能力。
- 隔離故障:單一 Tomcat 掛掉不影響另一實例,配合健康檢查可自動剔除。
- 滾動部署:輪流重啟實例,實現零停機發布。
關鍵限制
- 單點故障:物理機掛掉(斷電、硬體故障)全系統不可用。
- 資源爭搶:共享 CPU、記憶體、磁碟 I/O、網卡頻寬,極限吞吐受單機硬體上限束縛。
- JVM 記憶體總和受限:兩個 4GB Heap 共 8GB,超過物理記憶體會 Swap 導致效能崩潰。
生產建議
- 開發/測試環境:單機多實例極具性價比。
- 生產環境:至少雙機房、多台物理/虛擬機 + 專用負載均衡器(LVS、F5、雲廠商 SLB)。
- 若預算有限,優先採用雲伺服器自動擴展群組(Auto Scaling Group)替代自建叢集。