| Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1 |
第 3 章
配置負載平衡和防故障備用本章介紹如何設定 Sun Java System Application Server 中的 HTTP 請求的負載平衡。並說明如何配置負載平衡器所控制的伺服器實例之間的防故障備用。此外,還討論 RMI-IIOP 負載平衡和防故障備用。
它包含以下小節:
關於 HTTP 負載平衡和防故障備用HTTP 負載平衡和防故障備用
負載平衡的目的是在多個 Sun Java System Application Server 實例 (獨立或形成叢集的) 之間平均分布工作量,從而提高系統的整體流量。
使用負載平衡器還可以滿足從一個伺服器實例防故障備用到另一個伺服器實例的請求。對於要持續的 HTTP 階段作業資訊,請配置 HTTP 階段作業持續性。如需更多資訊,請參閱配置可用性和階段作業持續性
使用 asadmin 工具而非管理主控台配置 HTTP 負載平衡。
HTTP 負載平衡的需求
在使用負載平衡器外掛程式處理 HTTP 請求之前,必須滿足以下需求:
如需更多資訊,請參閱為 HTTP 負載平衡配置 Web 伺服器。
瞭解指定的請求和未指定的請求
在請求首次從 HTTP 用戶端傳入負載平衡器時,此請求為新階段作業的請求。新階段作業的請求稱為未指定的請求。負載平衡器會根據循環演算法將此請求路由到叢集中的應用程式伺服器實例。如需更多資訊,請參閱 HTTP 負載平衡演算法。
在某個應用程式伺服器實例中建立階段作業後,負載平衡器會將此階段作業的所有後續請求都路由到該特定實例而且僅路由到該實例。現有階段作業的請求稱為指定的或居留式請求。
HTTP 負載平衡演算法
Sun Java System Application Server 負載平衡器使用居留式循環演算法對進來的 HTTP 和 HTTPS 請求進行負載平衡。給定階段作業的所有請求都將會傳送到同一個應用程式伺服器實例。使用居留式負載平衡器,階段作業資料將快取在單一應用程式伺服器上,而不會分布到叢集中的所有實例。
因此,居留式循環方案能夠帶來顯著的效能優勢,這種優勢通常超過了使用純循環方案所獲得的使負載更加平均分布的優勢。
關於居留式循環負載平衡演算法
當新的 HTTP 請求傳送到負載平衡器外掛程式時,系統將基於簡單的循環方案將該請求轉寄到某個應用程式伺服器實例。隨後,透過使用 Cookie 或明確的 URL 重寫將該請求「粘」到此特定應用程式伺服器實例上。
從居留式資訊中,負載平衡器外掛程式將首先確定請求先前轉寄到的實例。如果發現該實例正常工作,負載平衡器外掛程式會將請求轉寄至該特定應用程式伺服器實例。因此,給定階段作業的所有請求都將會傳送到同一個應用程式伺服器實例。
負載平衡器外掛程式使用以下方法來確定階段作業居留性:
基於 Cookie 的方法
在基於 Cookie 的方法中,負載平衡器外掛程式使用一個單獨的 Cookie 來記錄路由資訊。
明確的 URL 重寫方法
在明確的 URL 重寫方法中,居留式資訊會附加至 URL。即使 HTTP 用戶端不支援 Cookie,也可以使用此方法。
負載平衡和防故障備用範例應用程式
以下目錄包含用於演示負載平衡和防故障備用的範例應用程式:
install_dir/samples/ee-samples/highavailability
install_dir/samples/ee-samples/failover
ee-samples目錄還包含有關設定環境以執行範例的資訊。HTTP 負載平衡設定概述
使用
asadmin工具可以在您的環境中配置負載平衡。請依照下列步驟執行:
- 完成 HTTP 負載平衡的需求,包括安裝和配置 Web 伺服器和 Application Server 實例和/或叢集。
- 使用
asadmin指令create-http-lb-config建立負載平衡器配置。- 使用
asadmincreate-http-lb-ref為要管理的負載平衡器增加對叢集和獨立伺服器實例的參考。如果您建立了具有目標的負載平衡器配置,並且該目標是負載平衡器參考的唯一叢集或獨立伺服器實例,請跳過此步驟。
- 使用
asadmin enable-http-lb-server啟用負載平衡器參考的叢集或獨立伺服器實例。- 使用
asadmin enable-http-lb-application啟用要用於負載平衡的應用程式。這些應用程式必須已在負載平衡器所參考的叢集或獨立實例上部署並可以使用。啟用應用程式以用於負載平衡與啟用以使用這些應用程式是兩個獨立的步驟。
- 使用
asadmincreate-health-checker建立運作狀態檢查程式。運作狀態檢查程式監視工作異常的伺服器實例,以便在這些伺服器實例重新正常工作時,負載平衡器可以向它們傳送新的請求。
- 使用
asadminexport-http-lb-config產生負載平衡器配置檔案。此指令產生要同 Sun Java System Application Server 隨附的負載平衡器外掛程式一起使用的配置檔案。
- 將負載平衡器配置檔案複製到 Web 伺服器的
config目錄,該目錄中儲存了負載平衡器外掛程式配置檔案。
為 HTTP 負載平衡配置 Web 伺服器關於 Web 伺服器配置
負載平衡器外掛程式安裝程式將對 Web 伺服器的配置檔案進行一些修改。所作的變更取決於該 Web 伺服器。
備註
負載平衡器外掛程式可隨 Sun Java System Application Server Enterprise Edition 一起安裝,也可在執行支援的 Web 伺服器的機器上單獨安裝。
如需有關安裝程序的完整詳細資訊,請參閱「Sun Java System Application Server Installation Guide」。
對 Sun Java System Web Server 的修改
安裝程式將對 Sun Java System Web Server 的配置檔案進行以下變更:
- 將以下負載平衡器外掛程式的特定項目增加到 Web 伺服器實例的
magnus.conf檔案中:
##EE lb-pluginweb_server_install_dir
Init fn="load-modules" shlib="/plugins/lbplugin/bin/libpassthrough.so" funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
Init fn="init-passthrough"
##end addition for EE lb-plugin- 將特定於負載平衡器外掛程式的以下項目增加到 Web 伺服器實例的
obj.conf檔案中:<Object name=default>NameTrans fn="name-trans-passthrough" name="lbplugin" config-file="web_server_install_dir/web_server_instance/config/loadbalancer.xml"<Object name="lbplugin">
ObjectType fn="force-type" type="magnus-internal/lbplugin"
PathCheck fn="deny-existence" path="*/WEB-INF/*"
Service type="magnus-internal/lbplugin" fn="service-passthrough"
Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
</object>
lbplugin是唯一識別Object的名稱;web_server_install_dir/web_server_instance/config/loadbalancer.xml是在其上配置並執行負載平衡器的虛擬伺服器的 XML 配置檔案所在的位置。安裝後,請按照 HTTP 負載平衡設定概述中所述配置負載平衡器。
對 Apache Web Server 的修改
在 Apache 上安裝負載平衡器外掛程式之前,請參閱附錄 A 「編譯和配置 Apache Web Server」。中有關編譯和配置 Apache 的資訊。
安裝程式所作的修改
負載平衡器外掛程式安裝程式將所需檔案擷取到 Web 伺服器根目錄下的
libexec(Apache 1.3) 或modules(Apache 2.0) 資料夾中。它將特定於負載平衡器外掛程式的以下項目增加到 Web 伺服器實例的httpd.conf檔案中:
<VirtualHostmachine_name:443>
##Addition for EE lb-plugin
LoadFile /usr/lib/libCstd.so.1
LoadModule apachelbplugin_module libexec/mod_loadbalancer.sowebserver_instance
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp>
config-file/conf/loadbalancer.xml
locale en
</IfModule>
<VirtualHostmachine_ip_address>webserver_instance
DocumentRoot "/htdocs"
ServerName server_name
</VirtualHost>
##END EE LB Plugin ParametersVersion 7
安裝後的修改
對 Microsoft Windows 的附加修改
如果是在 Microsoft Windows 上執行 Apache,則安裝外掛程式後,需要變更某些環境變數:
透過按一下 [開始] -> [設定] -> [主控台] -> [系統] -> [進階] -> [環境變數] -> [系統變數] 將新路徑增加到 Path 環境變數中。編輯 Path 變數使之包含以下路徑:
application_server_install_dir
/bin此外,在啟動 Apache Web 伺服器之前,請將環境變數 NSPR_NATIVE_THREADS_ONLY 設定為 1。
在 [環境變數] 視窗中的 [系統變數] 下,按一下 [新建]。輸入以下名稱和值對:
變數名稱:NSPR_NATIVE_THREADS_ONLY
變數值: 1
重新啟動機器。
對 Microsoft IIS 的修改
若要配置 Microsoft 網際網路資訊服務 (IIS) 以使用負載平衡器外掛程式,請修改 Windows 網際網路服務管理程式中的某些特性。網際網路服務管理程式位於 [控制台] 資料夾內的 [管理工具] 資料夾中。
請在安裝 Sun Java System Application Server 後執行這些修改。
- 開啟網際網路服務管理程式。
- 選取要為其啟用外掛程式的網站。此網站通常命名為「預設網站」。
- 在網站上按一下滑鼠右鍵,選取 [特性] 以開啟 [特性] 筆記本。
- 若要增加新的 ISAPI 篩選器,請開啟 [ISAPI 篩選器] 標籤,按一下 [增加],然後執行以下步驟:
- 建立並配置新的虛擬目錄:
- 將
sun-passthrough.dll檔案的路徑和 application_server_install_dir/bin增加到系統的PATH環境變數。重新啟動機器。- 停止然後啟動 Web 伺服器以使新設定生效。
若要停止 Web 伺服器,請在此網站上按一下滑鼠右鍵,然後選取 [
停止]。若要啟動 Web 伺服器,請在此網站上按一下滑鼠右鍵,然後選取 [啟動]。然後,在 Web 瀏覽器中鍵入以下內容,以存取 Web 應用程式環境根︰
http://webserver_name/web_application其中,webserver_name 是 Web 伺服器的主機名稱或 IP 位址,
/web_application 是C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties檔案中列示的環境根。檢驗 Web 伺服器、負載平衡器外掛程式和 Application Server 是否正常作業。安裝程式將自動配置
sun-passthrough.properties中的下列特性。您可以變更預設值。
配置多個 Web 伺服器實例
Sun Java System Application Server 安裝程式不允許在單一機器上安裝多個負載平衡器外掛程式。若要在單一叢集或多個叢集中的單一機器上安裝多個帶有負載平衡器外掛程式的 Web 伺服器,需要手動執行一些步驟來配置負載平衡器外掛程式。
- 配置新的 Web 伺服器實例以使用負載平衡器外掛程式 (如對 Sun Java System Web Server 的修改、對 Apache Web Server 的修改或對 Microsoft IIS 的修改所述)。
- 將
sun-loadbalancer_1_1.dtd檔案從現有 Web 伺服器實例的config目錄複製到新實例的config目錄。- 若要使用相同的負載平衡器配置,請將
loadbalancer.xml檔案從現有 Web 伺服器實例的config目錄複製到新實例的config目錄。- 若要使用其他負載平衡器配置,請執行以下步驟:
- 使用
asadmin create-http-lb-config建立新的負載平衡器配置。- 使用
asadmin export http-lb-config將新配置匯出到loadbalancer.xml檔案中。- 將該
loadbalancer.xml檔案複製到新 Web 伺服器的config目錄。如需有關建立負載平衡器配置並將其匯出到
loadbalancer.xml檔案的資訊,請參閱 HTTP 負載平衡器配置作業。
HTTP 負載平衡器配置作業建立 HTTP 負載平衡器配置
負載平衡器配置是定義負載平衡器的
domain.xml檔案中的命名配置。負載平衡配置非常靈活:
使用
asadmin指令create-http-lb-config建立配置。指定下列參數:
指定對負載平衡器的 HTTPS 請求是否生成對伺服器實例的 HTTPS 或 HTTP 請求。
如需更多資訊,請參閱配置 HTTP 和 HTTPS 階段作業防故障備用。
對負載平衡器配置檔案
loadbalancer.xml所作的變更進行檢查的時間間隔。當檢查偵測到變更時,系統將重新載入配置檔案。0 值停用重新載入。如需更多資訊,請參閱啟用動態重新配置。
指定是否對負載平衡器啟用監視功能。
如需更多資訊,請參閱監視 HTTP 負載平衡器外掛程式。
如需更多資訊,請參閱
create-http-lb-config、delete-http-lb-config和list-http-lb-configs的文件。建立 HTTP 負載平衡器參考
當您在負載平衡器中建立對獨立伺服器或叢集的參考時,會將該伺服器或叢集增加到負載平衡器控制的目標伺服器和叢集的清單中。仍需要先啟用所參考的伺服器或叢集 (使用
enable-http-lb-server),然後才能對向該伺服器或叢集發出的請求執行負載平衡。如果建立了帶有目標的負載平衡器配置,則系統已增加了作為參考的該目標。使用
create-http-lb-ref建立參考。您必須提供負載平衡器配置名稱和目標伺服器實例或叢集。若要刪除參考,請使用
delete-http-lb-ref。必須先使用disable-http-lb-server停用已參考的伺服器或叢集,才能刪除此參考。如需更多資訊,請參閱
create-http-lb-ref和delete-http-lb-ref的文件。啟用用於負載平衡的伺服器實例
建立對伺服器實例或叢集的參考後,請使用
enable-http-lb-server啟用伺服器實例或叢集。如果在建立負載平衡器配置時使用某伺服器實例或叢集作為目標,則必須啟用該伺服器實例或叢集。如需更多資訊,請參閱
enable-http-lb-server的文件。啟用用於負載平衡的應用程式
負載平衡器管理的所有伺服器都必須具有同質配置,包括部署到這些伺服器的相同應用程式集。部署某個應用程式並啟用 (在部署期間或之後) 此應用程式以進行存取後,您必須啟用該應用程式以進行負載平衡。如果沒有為負載平衡啟用應用程式,則將無法對該應用程式的請求執行負載平衡和防故障備用,即使已對該應用程式部署到的伺服器的請求執行了負載平衡和防故障備用。
啟用應用程式時,請指定應用程式名稱和目標。如果負載平衡器管理了多個目標 (例如,兩個叢集),請在所有目標上啟用該應用程式。
如需更多資訊,請參閱
enable-http-lb-application的線上說明。如果部署了新的應用程式,您也必須啟用該應用程式以進行負載平衡並再次匯出負載平衡器配置。
建立 HTTP 運作狀態檢查程式
負載平衡器的運作狀態檢查程式將定期檢查所有標示為異常的已配置 Application Server 實例。運作狀態檢查程式不是必需的,但如果沒有運作狀態檢查程式,或者停用了運作狀態檢查程式,異常實例的定期運行狀況檢查就不會執行。
負載平衡器的運作狀態檢查機制使用 HTTP 與應用程式伺服器實例進行通訊。運作狀態檢查程式將 HTTP 請求傳送給指定的 URL 並等待回應。HTTP 回應標頭中的狀態碼在 100 到 500 之間時表示實例處於正常狀態。
建立運作狀態檢查程式
若要建立運作狀態檢查程式,請使用
asadmin的create-http-health-checker指令。指定下列參數:如果應用程式伺服器實例標示為異常,運作狀態檢查程式將輪詢異常實例以確定實例的狀態是否已變為正常。運作狀態檢查程式使用指定的 URL 來檢查所有異常的應用程式伺服器實例,以確定這些異常的應用程式伺服器實例是否已返回到正常狀態。
如果運作狀態檢查程式發現某個異常實例已變為正常,該實例將被增加到正常實例的清單中。
如需更多資訊,請參閱
create-http-health-checker和delete-http-health-checker的文件。正常實例的附加運作狀態檢查內容
create-http-health-checker建立的運作狀態檢查程式僅檢查異常實例。若要定期檢查正常實例,請在匯出的loadbalancer.xml檔案中設定某些附加特性。
若要檢查正常的實例,請設定以下特性:
編輯
loadbalancer.xml檔案來設定特性。例如︰<property name="active-healthcheck-enabled" value="true"/><property name="number-healthcheck-retries" value="3"/>如果增加了這些特性,隨後編輯並再次匯出了
loadbalancer.xml檔案,您必須將這些特性再次增加到該檔案中,因為新匯出的配置不會包含這些特性。匯出負載平衡器配置檔案
Sun Java System Application Server 隨附的負載平衡外掛程式使用名為
loadbalancer.xml的配置檔案。使用asadmin工具可以在domain.xml檔案中建立負載平衡器配置。配置負載平衡環境後,請將其匯出至檔案:
- 使用
asadmin指令export-http-lb-config匯出loadbalancer.xml檔案。匯出用於特定負載平衡器配置的
loadbalancer.xml檔案。您可以指定路徑和其他檔案名稱。如果不指定檔案名稱,則該檔案命名為loadbalancer.xml.load_balancer_config_name。如果不指定路徑,將在 application_server_install_dir/domains/domain_name/generated目錄中建立該檔案。若要在 Windows 上指定路徑,請將路徑加上引號。例如,
"c:\sun\AppServer\loadbalancer.xml"。- 將已匯出的負載平衡器配置檔案複製到 Web 伺服器的配置目錄。
例如,對於 Sun Java System Web Server,該位置可能為 web_server_root
/config。Web 伺服器配置目錄中的負載平衡器配置檔案必須命名為
loadbalancer.xml。如果您的檔案使用其他名稱 (例如loadbalancer.xml.load_balancer_config_name),則必須重新命名它。變更 HTTP 負載平衡器配置
如果您透過建立或刪除對伺服器的參考、部署新的應用程式、啟用或停用伺服器或應用程式等方法來變更 HTTP 負載平衡器配置,請再次匯出負載平衡器配置檔案並將該檔案複製到 Web 伺服器的
config目錄。如需更多資訊,請參閱匯出負載平衡器配置檔案。負載平衡器外掛程式將基於在負載平衡器配置中指定的重新載入間隔定期檢查已更新的配置。在指定的時間值後,如果負載平衡器發現新的配置檔案,則它將開始使用新配置。
啟用動態重新配置
啟用動態重新配置後,負載平衡器外掛程式將定期檢查已更新的配置。若要啟用動態重新配置,請執行以下步驟:
在變更這些設定後,請再次匯出負載平衡器配置檔案並將其複製到 Web 伺服器的
config目錄。如果啟用了先前已停用的動態重新配置,您還必須重新啟動 Web 伺服器。
停用 (靜止) 伺服器實例或叢集
在因任何原因停止應用程式伺服器之前,您希望實例完成正在處理的請求。正常停用伺服器實例或叢集的程序被稱為靜止。
負載平衡器使用以下策略來靜止應用程式伺服器實例:
若要停用某個伺服器實例或叢集,請執行以下步驟:
停用 (靜止) 應用程式
在取消部署 Web 應用程式之前,您希望該應用程式完成正在處理的請求。正常停用應用程式的程序稱為靜止。
負載平衡器使用以下策略來靜止應用程式:
當您從負載平衡器參考的每個伺服器實例或叢集中停用應用程式時,已停用的應用程式的使用者將遭受服務損失,直到再次啟用該應用程式。
如果您從一個伺服器實例或叢集中停用應用程式而使該應用程式在其他伺服器實例或叢集中保持啟用狀態,則使用者仍可存取該應用程式。
若要停用應用程式,請執行以下步驟:
配置 HTTP 和 HTTPS 階段作業防故障備用
如果 HTTP/HTTPS 階段作業所連線的原始應用程式伺服器實例變為不可用,負載平衡器外掛程式會將這些階段作業防故障備用到其他應用程式伺服器實例上。本小節介紹如何配置負載平衡器外掛程式以啟用 HTTP/HTTPS 路由和階段作業防故障備用。
如需有關配置 HTTP 階段作業持續性的資訊,請參閱配置可用性和階段作業持續性。
本小節論述以下主題:
關於 HTTPS 路由
所有進來的請求 (無論是 HTTP 請求還是 HTTPS 請求) 都是透過負載平衡器外掛程式路由到應用程式伺服器實例。但是,如果啟用了 HTTPS 路由,則負載平衡器外掛程式將把 HTTPS 請求僅轉寄給使用 HTTPS 連接埠的應用程式伺服器。請註意,HTTPS 路由是針對新請求和居留式請求而執行的。
如果收到了 HTTPS 請求且沒有正在進行的階段作業,負載平衡器外掛程式將選取使用已配置的 HTTPS 連接埠的可用應用程式伺服器實例,並將請求轉寄到該實例。
在正在進行的 HTTP 階段作業中,如果收到對同一個階段作業的新 HTTPS 請求,則使用在 HTTP 階段作業期間儲存的階段作業和居留式資訊來路由 HTTPS 請求。新的 HTTPS 請求將路由到在此 HTTPS 連接埠上處理上一個 HTTP 請求的同一伺服器。
配置 HTTPS 路由
create-http-lb-config指令的httpsrouting選項用於控制是為正在參與負載平衡的所有應用程式伺服器開啟還是關閉 HTTPS 路由。如果此選項設定為 false,所有 HTTP 和 HTTPS 請求都將作為 HTTP 請求進行轉寄。建立新的負載平衡器配置時,請將此選項設定為 true,或者以後使用asadmin set指令變更此選項的設定。
有關負載平衡 HTTP/HTTPS 請求的已知問題
以下內容討論有關負載平衡器對 HTTP/HTTPS 請求處理的限制。
配置等冪 URL
若要增強已部署應用程式的可用性,請在負載平衡器所服務的所有應用程式伺服器實例上將環境配置為重試失敗的等冪 HTTP 請求。此選項用於唯讀請求 (例如,重試搜尋請求)。
等冪請求是一種在重試時不會在應用程式中造成任何變更或不一致的請求。在 HTTP 中,某些方法 (例如 GET) 是等冪的,而其他方法 (例如 POST) 則不是。重試等冪 URL 不會導致伺服器上或資料庫中的值發生變更。唯一的差異在於使用者收到的回應會有所不同。
等冪請求的範例包括搜尋引擎查詢和資料庫查詢。基礎原則是重試不會導致資料的更新或修改。
請在
sun-web.xml檔案中配置等冪 URL。當您匯出負載平衡器配置時,等冪 URL 資訊將自動增加到loadbalancer.xml檔案中。如需有關配置等冪 URL 的更多資訊,請參閱「Developer's Guide」。
配置 HTML 錯誤頁面
您可以將自己的錯誤頁面或錯誤頁面的 URL 指定為顯示給一般使用者。指定錯誤頁面將會置換所有其他為錯誤報告配置的機制。
請在
sun-web.xml檔案中配置 HTML 錯誤頁面。在匯出負載平衡器配置時,HTML 錯誤頁面資訊將自動從sun-web.xml檔案增加到loadbalancer.xml檔案中。如需有關配置 HTML 錯誤頁面的更多資訊,請參閱「Developer's Guide」。
監視 HTTP 負載平衡器外掛程式配置記錄訊息
負載平衡器外掛程式使用 Web 伺服器的記錄機制寫入記錄訊息。Application Server 上的預設記錄層級設定為 Sun Java System Web Server (
INFO)、Apache Web Server (WARN) 和 Microsoft IIS (INFO) 上的預設記錄層級。應用程式伺服器記錄層級 (FINE、FINER和FINEST) 對映到 Web 伺服器上的DEBUG層級。這些記錄訊息將寫入 Web 伺服器記錄檔,並且以可使用程序檔進行剖析或匯入試算表以計算所需公制的原始資料形式進行。
記錄訊息類型
負載平衡器外掛程式產生以下三組不同的記錄訊息:
負載平衡器配置器記錄訊息
使用等冪 URL 和錯誤頁面設定時,將記錄這些訊息。
等冪 URL 式樣配置的輸出包含以下資訊:
錯誤頁面 URL 配置的輸出包含以下資訊 (記錄層級設定為 WARN):
CONFxxxx:Invalid error-url for web-module <web-module>請求派送和執行階段記錄訊息
這些記錄訊息在負載平衡和派送請求時產生。
配置器錯誤訊息
如果存在配置問題 (例如,缺少參考的自訂錯誤頁面),將顯示這些錯誤。
配置監視
執行以下步驟可以開啟負載平衡器外掛程式記錄訊息:
負載平衡器外掛程式記錄以下資訊:
瞭解監視訊息
負載平衡器外掛程式記錄訊息的格式如下所示:
升級應用程式關於捲動升級
若要升級應用程式而不使使用者遭受任何服務損失,請每次在一個伺服器或叢集上升級應用程式。叢集透明地維護一個混合版本環境,使用者不會察覺到正在進行升級。這種類型的升級稱為捲動升級。
只有在舊版本和新版本的應用程式相容並且能夠同時執行的情況下,才能執行捲動升級。階段作業資訊必須可以相容。可以在單一獨立叢集或在多個叢集中執行混合模式的捲動升級。
如果應用程式發生重大變更 (例如,對資料庫模式的變更),則無法執行混合模式環境中的捲動升級。在這種情況下,升級時請關閉此應用程式。取消部署此應用程式,然後使用相同的名稱重新部署已升級的應用程式。
在單一獨立叢集中進行升級
若要在單一獨立叢集 (即不與任何其他叢集共用配置的叢集) 中升級應用程式,請執行以下步驟:
- 儲存舊版本的應用程式或備份網域。
若要備份網域,請使用
asadmin backup-domain指令。- 關閉叢集的動態重新配置 (如果已啟用)。
透過管理主控台:
- 將已升級的應用程式重新部署到目標
domain中。如果使用管理主控台進行重新部署,網域將自動成為目標。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。- 使用
asadmin enable-http-lb-application為實例啟用已重新部署的應用程式。- 使用
asadmin disable-http-lb-server停用一個伺服器實例。- 使用
asadmin export-http-lb-config匯出負載平衡器配置檔案。- 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。例如,對於 Sun Java System Web Server,其位置為 web_server_install_dir/
https-host-name/config/loadbalancer.xml- 請等待,直至逾時值到期。監視負載平衡器的記錄檔以確定實例已離線。
- 在叢集中的其他實例仍處於執行狀態的情況下,重新啟動已停用的伺服器實例。重新啟動操作將使伺服器與網域同步,並更新應用程式。
- 測試重新啟動的伺服器上的應用程式,以確定應用程式執行正常。
- 使用
asadmin enable-http-lb-server啟用伺服器實例。- 使用
asadmin export-http-lb-config匯出負載平衡器配置檔案。- 將配置檔案複製到 Web 伺服器的配置目錄。
- 當所有伺服器實例都包含新的應用程式並且處於執行狀態時,請再次為叢集啟用動態重新配置。
在兩個叢集中進行升級
- 儲存舊版本的應用程式或備份網域。
若要備份網域,請使用
asadmin backup-domain指令。- 關閉兩個叢集的動態重新配置 (如果已啟用)。
透過管理主控台:
- 將已升級的應用程式重新部署到目標
domain中。如果使用管理主控台進行重新部署,網域將自動成為目標。由於已停用動態重新配置,因此舊應用程式將繼續在叢集上執行。- 使用
asadmin enable-http-lb-application為叢集啟用已重新部署的應用程式。- 使用
asadmin disable-http-lb-server從負載平衡器上停用其中一個叢集。- 使用
asadmin export-http-lb-config匯出負載平衡器配置檔案。- 將已匯出的配置檔案複製到 Web 伺服器實例的配置目錄。例如,對於 Sun Java System Web Server,其位置為 web_server_install_dir/
https-host-name/config/loadbalancer.xml- 請等待,直至逾時值到期。監視負載平衡器的記錄檔以確定叢集已離線。
- 在另一個叢集仍處於執行狀態的情況下,重新啟動已停用的叢集。重新啟動操作將使叢集與網域同步,並更新應用程式。
- 測試重新啟動的叢集上的應用程式,以確定應用程式執行正常。
- 使用
asadmin enable-http-lb-server啟用叢集。- 使用
asadmin export-http-lb-config匯出負載平衡器配置檔案。- 將配置檔案複製 Web 伺服器的配置目錄。
- 當所有伺服器實例都包含新的應用程式並且處於執行狀態時,請為兩個叢集再次啟用動態重新配置。
關於 RMI-IIOP 負載平衡和防故障備用RMI-IIOP 負載平衡和防故障備用的需求
Sun Java System Application Server 透過 RMI-IIOP 提供遠端 EJB 參考和名稱服務物件的高可用性。在使用這些功能之前,環境必須滿足以下需求:
RMI-IIOP 負載平衡和防故障備用演算法
Sun Java System Application Server 採用了隨機演算法和循環演算法,用於 RMI-IIOP 路徑上的遠端 EJB 參考和名稱服務物件的負載平衡。
在 RMI-IIOP 用戶端首次建立新的
InitialContext物件時,可用的 Application Server IIOP 終點的清單對於該用戶端是隨機的。對於該InitialContext物件,負載平衡器會將查找請求和其他InitialContext作業導向至清單中的第一個終點。如果第一個終點不可用,則使用清單中的第二個終點,依此類推。隨後每次用戶端建立新的
InitialContext物件時,將自動重建終點清單,從而將不同的 IIOP 終點用於InitialContext作業。在您從透過
InitialContext物件獲得的參考中獲取或建立 Bean 時,將在服務於指定給InitialContext物件的 IIOP 終點的 Application Server 實例上建立這些 Bean。對這些 Bean 的參考包括叢集中的所有 Application Server 實例的 IIOP 終點位址。主終點是與用於查找或建立 Bean 的
InitialContext終點相對應的 Bean 終點。叢集中的其他 IIOP 終點將指定為替代終點。如果 Bean 的主終點變得不可用,則該 Bean 上的其他請求將防故障備用到其中一個替代終點。RMI-IIOP 範例應用程式
以下目錄包含用於演示透過和不透過 ACC 使用 RMI-IIOP 防故障備用的範例應用程式。
install_dir/samples/ee-samples/sfsbfailover請參閱該範例附帶的
index.html檔案,以取得有關透過和不透過 ACC 來執行應用程式的說明。ee-samples目錄還包含有關設定執行範例的環境的資訊。