Sun Java System Application Server 9.1 高可用性管理指南

簡介

透過 RMI-IIOP 負載平衡,可將 IIOP 用戶端請求分散至不同的伺服器實例或名稱伺服器中。其目的為在整個叢集上平均分散負載,從而提供可延伸性。結合了 EJB 叢集和可用性的 IIOP 負載平衡還可提供 EJB 容錯移轉。

當用戶端執行 JNDI 物件查詢時,命名服務會建立與特定伺服器實例相關聯的 InitialContext (IC) 物件。從那時起,使用該 IC 物件進行的所有查詢請求均會傳送至相同的伺服器實例。使用該 InitialContext 查詢的所有 EJBHome 物件均會在相同的目標伺服器上託管。之後取得的所有 Bean 參照也會建立在相同的目標主機上。由於建立 InitialContext 物件時,所有用戶端會隨機選取即時目標伺服器的清單,因此,此作業可有效地提供負載平衡。如果目標伺服器實例當機,則查詢或 EJB 方法呼叫將容錯移轉至其他伺服器實例。

IIOP 負載平衡與容錯移轉不需設定即可執行。在部署應用程式期間,無需特殊的步驟。Application Server 的 IIOP 負載平衡與容錯移轉支援動態重新配置的叢集。如果部署應用程式用戶端的 Application Server 實例加入叢集,則此 Application Server 會自動在叢集中尋找目前所有使用中的 IIOP 端點。因此,若將新實例新增至叢集,或從叢集刪除實例,則不需要手動更新端點清單。不過,用戶端至少應該為啟動程序指定兩個端點,以便在一個端點發生故障時使用另外一個端點。

需求

如果符合以下所有條件,則 Sun Java System Application Server 可透過 RMI-IIOP 提供遠端 EJB 參照和 NameService 物件的高可用性︰

Application Server 可針對在應用程式用戶端容器 (ACC) 中執行的 Java 應用程式進行負載平衡。請參閱設定 RMI-IIOP 負載平衡和容錯移轉


備註 –

Application Server 不支援透過安全套接字層 (SSL) 執行 RMI-IIOP 負載平衡和容錯移轉。


演算法

Application Server 使用隨機演算法和循環演算法,進行 RMI-IIOP 負載平衡和容錯移轉。

在 RMI-IIOP 用戶端首次建立新的 InitialContext 物件時,會針對該用戶端產生隨機的可用 Application Server IIOP 終點清單。對於該 InitialContext 物件,負載平衡器會將查找請求和其他 InitialContext 作業導向至隨機清單中的第一個終點。如果第一個終點不可用,則使用清單中的第二個終點,依此類推。

隨後,每當用戶端建立新的 InitialContext 物件時,均會自動重建端點清單,從而將不同的 IIOP 端點用於 InitialContext 作業。

當您從透過 InitialContext 物件取得的參照中取得或建立 Bean 時,會在服務於指定給 InitialContext 物件的 IIOP 端點的 Application Server 實例上建立這些 Bean。對這些 Bean 的參照包括叢集中所有 Application Server 實例的 IIOP 終點位址。

主端點是與 InitialContext 端點 (用於查找或建立 Bean) 相對應的 Bean 端點。叢集中的其他 IIOP 終點將指定為替代終點。如果 Bean 的主端點變得不可用,則該 Bean 上的其他請求將容錯移轉至其中的一個替代端點。

您可以配置 RMI-IIOP 負載平衡和容錯移轉來使用 ACC 中執行的應用程式。