GlassFish V2 (Sun Java System Application Server 9.1) 提供企業級叢集功能,支援高可用性 (High Availability, HA) 與水平擴展。本文系統性介紹其核心架構、記憶體複寫機制、故障轉移流程、安裝與配置步驟,適合架構師與資深工程師參考。
| 術語 | 定義 |
|---|---|
| Server Instance | 單一 Java EE 伺服器進程,執行部署的應用程式 |
| Node Agent | 運行於每台實體主機的輕量代理進程,管理該機器上 Instance 的生命週期 |
| Cluster | 邏輯群組,包含多個設定相同的 Server Instance,視為單一實體管理 |
| DAS (Domain Administration Server) | 管理整個行政域的中央控制進程,提供 Admin Console、CLI、JMX 介面 |
| GMS (Group Management Service) | 基於 JXTA 的群組通訊服務,處理叢集成員變更、故障偵測、記憶體複寫協調 |

Instance 依名稱字母序形成環,每個 Instance 將 Session 狀態複寫給下一個 Instance (Replication Partner)。



Instance 故障或下線時,GMS 偵測到成員變更,剩餘 Instance 自動重新形成環,複寫夥伴關係即時調整。


| 特性 | 記憶體複寫 (GlassFish V2 內建) | HADB (高可用資料庫) |
|---|---|---|
| 可用性 | 99.99% (四個 9) | 99.999% (五個 9) |
| 安裝複雜度 | 低,無外部資料庫 | 高,需獨立 HADB 叢集 |
| 資源消耗 | 佔用 Instance Heap 記憶體 | 獨立資料庫資源 |
| 適用場景 | 中小型部署、開發測試 | 核心金融、電信級生產環境 |
java -jar glassfish-installer-v2-b58g.jar
cd glassfish
lib/ant/bin/ant -f setup-cluster.xml
產生 domains/domain1,已啟用叢集支援、GMS、預設 persistence-type=replicated。
bin/asadmin start-domain domain1
瀏覽器開啟 https://localhost:4848,預設帳號 admin/adminadmin。
asadmin create-cluster --host das-host --port 4848 mycluster
asadmin create-instance --cluster mycluster --nodeagent nodeagent1 instance1
asadmin create-instance --cluster mycluster --nodeagent nodeagent2 instance2
asadmin start-cluster mycluster
web.xml 加入 <distributable/>Serializable<jvm-options>-Xmx1024m</jvm-options>
<jvm-options>-Xms1024m</jvm-options>
企業級部署建議 Heap 設 1GB 以上,預留記憶體複寫空間。
支援 Sun Web Server、Apache HTTPD、Microsoft IIS。負載平衡器維護可用 Instance 清單,自動進行故障轉移。詳細設定請參閱 Sun Java System Application Server 9.1 High Availability Administration Guide 第 5 章。