本節說明如何設定 Web 伺服器軟體,使其成為 Application Server 叢集的負載平衡器。除此之外,還提供配置負載平衡器並將其匯出至 Web 伺服器的步驟。只在執行具有企業設定檔或叢集設定檔的網域時,才能使用負載平衡器的功能。
負載平衡器會隨叢集一起部署。負載平衡器提供以下功能:
允許應用程式或服務水平延伸到多個實體 (或邏輯) 主機,同時還提供使用者單一 URL。
與階段作業持續性搭配使用時,可讓使用者不受主機失敗或伺服器當機的影響。
讓使用者無法瞭解內部網路,以增強安全性。
Application Server 包含負載平衡外掛程式,適用於常見的 Web 伺服器,例如 Sun JavaTM System Web Server、Apache 和 Microsoft Windows IIS。
若要完成本節,除了執行網域管理伺服器和您在本指南中截至目前所建立的兩個 Application Server 實例,您的系統上還必須有足夠的記憶體來執行 Web 伺服器。建議使用配備 512 MB 至 1024 MB 記憶體的系統。
本主題將說明以下步驟:
在設定負載平衡之前,您必須安裝負載平衡器外掛程式。如需有關安裝負載平衡外掛程式的說明,請參閱「Sun Java System Application Server 9.1 Installation Guide」中的「To Install the Load Balancing Plug-in (standalone)」。這些程序假設您是執行具有叢集設定檔或企業設定檔的網域。
使用管理主控台建立負載平衡器。此外,您也可以使用 asadmin create-http-lb(1) 指令。
在管理主控台中按一下 [HTTP 負載平衡程式] 節點。
按一下 [新建]。
鍵入 lb1 做為負載平衡器的名稱,鍵入安裝 Web 伺服器的主機及 Web 伺服器實例連接埠。在此分析藍本範例中,Web 伺服器主機為 localhost,連接埠為 38000。
選取 [自動套用變更] 核取方塊。如果選擇此選項,便不需要匯出負載平衡器配置。對負載平衡器配置所做的全部變更都會自動傳遞。
選取 cluster1 做為目標。
建立叢集說明如何建立叢集範例 (cluster1)
按一下 [儲存]。
啟用 cluster1 進行負載平衡:
asadmin enable-http-lb-server cluster1
啟用 clusterjsp 應用程式進行負載平衡:
asadmin enable-http-lb-application clusterjsp
如需變更負載平衡器配置或建立運作狀態檢查程式等進階主題的相關資訊,請參閱「Sun Java System Application Server 9.1 高可用性管理指南」中的第 5 章「配置 HTTP 負載平衡」。
啟動或重新啟動 Web 伺服器,來啟動負載平衡。
如果做為負載平衡器的 Web 伺服器實例尚未執行,請啟動 Web 伺服器。
如果使用的是 Web Server 7.0,請使用 wadm start-instance 指令。
若是 Web Server 6.1,請執行 <websvr-instance-dir> 目錄中的 start 程序檔。
如果做為負載平衡器的 Web 伺服器實例已在執行中,請停止 Web 伺服器,然後重新啟動。
若是 Web Server 6.1,請使用 web_server_install_dir /https-hostname 中的停止程式,然後透過執行啟動程式來重新啟動伺服器。
若是 Web Server 7.0,請使用 wadm stop-instance,接著使用 wadm start-instance 指令。
一旦部署應用程式並執行負載平衡器之後,請驗證負載平衡是否發揮作用。
若要顯示 clusterjsp 應用程式的第一個頁面,請在瀏覽器中鍵入以下 URL:
http:// localhost:web_server_port /clusterjsp
將 localhost 變數替代成執行 Web 伺服器的系統名稱。
將 web_server_port 變數替代成 web_server_install_dir /https-hostname /config/server.xml 中 LS 元素的連接埠屬性值。在此範例中,使用連接埠 38000。
將會顯示類似於您在驗證應用程式的部署中所看見的頁面。
查看顯示的階段作業和主機資訊。例如︰
Executed From Server: localhost
Server Port Number: 38000
Executed Server IP Address: 192.18.145.133
Session Created: Day Mon 05 14:55:34 PDT 2005
伺服器連接埠號碼為 38000,即 Web 伺服器的連接埠。負載平衡器已經在叢集中的兩個實例上轉送請求。
使用不同的瀏覽器軟體,或使用另一台機器上的瀏覽器,建立新階段作業。來自同一瀏覽器的請求是「居留式」的,所以會進到同一個實例。
這些階段作業應該分散於叢集中的兩個實例。您可以查看以下位置的伺服器存取記錄檔,對此進行驗證:
Solaris Java Enterprise System 安裝:
/var/opt/SUNWappserver/nodeagents/nodeagent_name /instance1/logs/access/server_access_log
/var/opt/SUNWappserver/nodeagents/nodeagent_name /instance2/logs/access/server_access_log
Linux Java Enterprise System 安裝:
/var/opt/sun/appserver/nodeagents/ nodeagent_name/instance1/logs/access/server_access_log
/var/opt/sun/appserver/nodeagents/ nodeagent_name/instance2/logs/access/server_access_log
Windows Java Enterprise System 安裝:
install-dir \nodeagents\nodeagent_name \instance1\logs\access\server_access_log
install-dir\nodeagents\nodeagent_name \instance1\logs\access\server_access_log
獨立 Application Server 安裝:
install-dir /nodeagents/nodeagent_name/instance1/logs/access/server_access_log
install-dir/nodeagents/nodeagent_name /instance2/logs/access/server_access_log
增加要儲存在 HttpSession 中的「名稱-值」對 (Name=Name Value=Duke)。
按一下 [增加至階段作業資料] 按鈕。
驗證是否已增加階段作業資料。
GlassFish v2 不提供 HADB。對於高可用性和容錯移轉,GlassFish 提供了記憶體中複製功能。以下程序說明此功能:
在部署應用程式之前,重新啟動已安裝負載平衡器外掛程式的 Web 伺服器。如此即可讓實例依照 loadbalancer.xml 檔案中所設定的順序處理請求。如果使用本章中所提供的 loadbalancer.xml 檔案,則 instance1 會處理第一個請求。
您已經部署用來儲存階段作業資料的 clusterjsp Web 應用程式。您應該能看見後續請求會由處理第一個請求的同一個實例所處理,而且處理不同請求過後仍會保留階段作業資料。
傳送數個請求,並記下處理這些請求的實例,然後關閉該特定實例。使用以下指令來停止實例:asadmin stop-instance --user adminuser --password adminpassword instance1
傳送下一個請求,然後驗證是否有儲存新資料,且先前增加的資料仍存在於階段作業中。如果無法使用處理請求的其中一台伺服器,同一叢集中的另一台伺服器就會連同所有較早階段作業資料一起接管請求,然後完成請求。