在叢集環境中,輪流升級可在損失最少服務與階段作業的狀況下,重新建置應用程式。階段作業是任何可以重複的工件,例如:
HttpSession
SingleSignOn
ServletTimer
DialogFragment
有狀態的階段作業 Bean
在 GlassFish Server 中,您可以使用負載平衡器和多個叢集來升級元件,而不使服務受到任何損失。例如,元件可以是 JVM 機器、GlassFish Server 軟體或 Web 應用程式。
輪流升級可在負載較小或適中時進行。對於每個 GlassFish Server 執行處理,該程序需時約 10-15 分鐘。
應用程式在升級過程中必須相容。因為在轉換期間,某些執行處理會執行舊版應用程式,而某些執行處理會執行新版應用程式,所以這些應用程式必須能夠正確運作。舊版和新版應用程式必須具有相同形式的可串列化類別,而這些可串列化類別是用來形成階段作業中儲存的物件圖形 (例如非瞬時執行處理變數)。如果必須變更這些類別的形式,應用程式開發人員就必須確保會發生正確的串列化行為。如果應用程式在升級過程中不相容,就必須停止叢集以進行完整的重新建置。
如果應用程式升級涉及變更應用程式資料庫綱要,則無法使用這種方法。
注意:
為了防止階段作業容錯移轉時發生版本不相符的風險,請同時升級叢集中的所有執行處理。否則,階段作業可能會容錯移轉至執行不同元件版本的執行處理。請對每個叢集分別執行此作業。叢集可做為叢集中執行處理的階段作業容錯移轉安全界限。某個叢集內的階段作業絕對不會容錯移轉至另一個叢集中的階段作業。從而避免了版本不相符的風險。