高可用性應用程式和服務可持續提供其功能,而不考量硬體和軟體故障。這類應用程式有時亦稱為提供五個九的可靠性,因為開發這類產品的目的就是在 99.999% 的時間內都能供人使用。
Application Server 提供下列高可用性功能:
高可用性階段作業持續性
高可用性 Java 訊息服務
RMI-IIOP 負載平衡和容錯移轉
Application Server 可為 HTTP 請求和階段作業資料 (HTTP 階段作業資料和有狀態階段作業 Bean 資料) 提供高可用性。
J2EE 應用程式通常具有大量階段作業狀態資料。Web 購物車即為階段作業狀態的經典範例。而且,應用程式可以快取頻繁需要的階段作業物件資料。實際上,幾乎所有需要進行大量使用者互動活動的應用程式均需要維護階段作業狀態。HTTP 階段作業和有狀態階段作業 Bean (SFSB) 均具有階段作業狀態資料。
對於一般使用者而言,在伺服器故障時保留階段作業狀態是很重要的。為了取得高可用性,Application Server 提供在 HADB 中持續階段作業狀態的功能。如果託管使用者階段作業的 Application Server 實例出現故障,階段作業狀態是可以回復的,且階段作業可以繼續而無資訊遺失。
如需有關如何設定高可用性階段作業持續性的詳細說明,請參閱第 9 章, 配置高可用性階段作業持續性和容錯移轉。
Java 訊息服務 (JMS) API 是一種允許 J2EE 應用程式和元件建立、傳送、接收以及讀取郵件的郵件傳送標準。它可啟用可靠的非同步鬆耦合分散式通訊。實作 JMS 的 Sun Java System Message Queue (MQ) 與 Application Server 緊密整合在一起,可讓您建立諸如訊息驅動 Bean (MDB) 之類依賴 JMS 的元件。
JMS 透過連線池儲存和容錯移轉及 MQ 叢集來提供高可用性功能。如需更多資訊,請參閱第 10 章, Java 訊息服務的負載平衡和容錯移轉。
Application Server 支援 JMS 連線池儲存和容錯移轉。Application Server 可自動將 JMS 連線儲存在池中。依預設,Application Server 會從指定的主機清單中隨機選取其主要的 MQ 代理程式。發生容錯移轉時,MQ 不需設定即可將負載傳輸至其他代理程式並可保持 JMS 語義不變。
如需有關 JMS 連線池儲存和容錯移轉的更多資訊,請參閱連線池儲存和容錯移轉。
MQ Enterprise Edition 支援多個互連的代理程式實例 (稱為代理程式叢集)。對於代理程式叢集,用戶端連線會分散至叢集中的所有代理程式。叢集可提供水平可延伸性並可提高可用性。
如需有關 MQ 叢集的更多資訊,請參閱將 MQ 叢集與 Application Server 配合使用。
使用 RMI-IIOP 負載平衡時,IIOP 用戶端請求會分散至不同的伺服器實例或名稱伺服器,以便在叢集內平均分散負載,因而提高延伸性。結合了 EJB 叢集和可用性的 IIOP 負載平衡還可提供 EJB 容錯移轉。
當用戶端以 JNDI 查找物件時,命名服務會將請求連結到特定的伺服器實例。從這時開始,來自該用戶端的所有查找請求都會傳送至同一伺服器實例,因此所有 EJBHome 物件都會放在相同的目標伺服器上。之後取得的所有 Bean 參照也會建立在相同的目標主機上。這可以提供有效的負載平衡,因為所有用戶端在執行 JNDI 查找時,都會隨機製作目標伺服器清單。如果目標伺服器實例當機,則查詢或 EJB 方法呼叫將容錯移轉至其他伺服器實例。
IIOP 負載平衡與容錯移轉不需設定即可執行。在部署應用程式期間,無需特殊的步驟。但是,向叢集增加新實例或從叢集中刪除實例將不會更新該叢集的現有用戶端檢視。若要更新現有用戶端的叢集檢視,必須在用戶端手動更新端點清單。
如需有關 RMI-IIOP 負載平衡和容錯移轉的更多資訊,請參閱第 11 章, RMI-IIOP 負載平衡和容錯移轉。
如需有關規劃高可用性部署 (包括評估硬體需求、規劃網路配置和選取拓樸) 的資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Deployment Planning Guide」。此手冊還提供以下概念的高階簡介:
Application Server 元件,例如節點代理程式、網域和叢集
叢集中的 IIOP 負載平衡
HADB 架構
訊息佇列容錯移轉
如需有關開發應用程式以運用高可用性功能優點的更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Developer’s Guide」。
如需有關如何配置和調校應用程式及應用程式伺服器以取得高可用性最佳效能的資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide」,本書說明以下主題:
調校持續性頻率和持續性範圍
對有狀態階段作業 Bean 進行檢查點操作
配置 JDBC 連線池
階段作業大小
調校 HADB 磁碟使用、記憶體分配、效能和作業系統配置
配置負載平衡器以取得最佳效能