架構設計階段的決策,深遠影響 J2EE 應用的性能與擴展性。性能瓶頸往往比功能缺失更嚴重——前者波及全體用戶,後者僅影響少數。架構師需在「少花錢、多辦事」(少硬體、少頻寬、少時間)目標下,遵循以下五大核心策略。
將高頻訪問、低變更數據置於記憶體(單 JVM 本地緩存或分布式緩存叢集)。核心價值:避免重複訪問持久存儲,降低磁碟 I/O 與網路傳輸開銷。典型場景:字典表、配置參數、熱門商品資訊。
在多台物理機器部署同一服務的多個副本。理論上 N 倍副本可承擔 N 倍請求。核心機制:負載分散,降低單節點壓力。需配合 Session 複製、無狀態設計或分布式 Session 方案。
將大任務拆解為獨立子任務,併發執行於多線程/多處理器。利用 J2EE 容器管理的線程池與多 CPU 架構,縮減單次請求的串行耗時。適用:報表生成、批次處理、多源數據聚合。
核心邏輯同步執行,非關鍵路徑(通知、日誌、報表、異步落庫)交由消息隊列(JMS)或線程池異步處理。用戶無需等待全流程完成,體驗顯著提升。典型:下單後發送郵件/短信、生成對賬單。
資料庫連接池、線程池、對象池。決策公式:
維護池的成本 < 每次請求創建/銷毀資源的成本 → 採用池化。
核心優勢:降低 GC 壓力、減少連線建立延遲、可控資源上限防雪崩。
| 場景 | 首選策略組合 |
|---|---|
| 高併發讀熱點數據 | 緩存 + 複制 |
| 長耗時業務邏輯 | 異步處理 + 並行處理 |
| 資料庫連線頻繁 | 資源池(連接池) |
| 突發流量尖峰 | 複制 + 緩存 + 異步削峰 |
五大策略非孤立存在,實戰中常組合使用。架構師應依業務特徵、流量模式、資源約束靈活取捨,並在壓測中持續調優。