在步驟 2 中,在節(jié)點 TP2 上創(chuàng)建一個名為 clone1 的克隆。設(shè)置權(quán)重為 2,選擇 Generate Unique Http Ports 和 Create Replication Entry in this Server。使用默認(rèn)的應(yīng)用程序服務(wù)器模板并單擊 Apply。
圖 17. 創(chuàng)建新的群集的服務(wù)器

重復(fù)步驟 2,在節(jié)點 TP2 上創(chuàng)建一個名為 clone2 的克隆。設(shè)置權(quán)重為 2,選擇 Generate Unique Http Ports 和 Create Replication Entry in this Server。使用默認(rèn)的應(yīng)用程序服務(wù)器模板并單擊 Apply。
再次重復(fù)步驟 2,在節(jié)點 TP2 上創(chuàng)建一個名為 clone3 的克隆。設(shè)置權(quán)重為 4,選擇 Generate Unique Http Ports 和 Create Replication Entry in this Server。使用默認(rèn)的應(yīng)用程序服務(wù)器模板并單擊 Next。
檢查總結(jié)以確認(rèn)群集中已經(jīng)存在三個有正確屬性的克隆。然后單擊 Finish 保存修改。
在群集的創(chuàng)建過程中,您已經(jīng)為這個群集創(chuàng)建了一個復(fù)制域(Replication Domain),可以用它來在克隆之間復(fù)制 http 會話以支持故障切換。為此,您需要配置應(yīng)用程序服務(wù)器 clone1 和 clone2 去使用這一服務(wù)。在 Administrative Console 中,選擇 Application Servers > clone1 > Web Container > Session Management > Distributed Environment Settings。然后選擇 Memory to Memory Replication 單選按鈕。重復(fù)此過程設(shè)置 clone2。
現(xiàn)在您已經(jīng)創(chuàng)建了一個群集定義。下一個步驟是安裝一個企業(yè)應(yīng)用程序。在這個練習(xí)中,使用的是位于 WebSphere Application Server 安裝的 /installableApps 目錄下的 DefaultApplication.ear。用 Deployment Manager Administrative Console 來安裝這個應(yīng)用程序。將一個企業(yè)應(yīng)用程序安裝到群集與安裝到獨立的應(yīng)用程序服務(wù)器的過程相同,只有一點例外:在“將模塊映射到應(yīng)用程序服務(wù)器”步驟中,您必須為所有模塊選擇 cluster1。參見下面圖 18 中的例子。(介紹企業(yè)應(yīng)用程序詳細(xì)的安裝步驟不在本文范圍之內(nèi)。)
圖 18. 將模塊映射到應(yīng)用程序服務(wù)器

在群集的設(shè)置過程中,三個克隆創(chuàng)建時各自使用惟一的 HTTP 端口。這就意味著在每個應(yīng)用程序中運(yùn)行的內(nèi)部服務(wù)器的 HTTP 監(jiān)聽器有特定的值。管理進(jìn)程創(chuàng)建新端口所用的算法,為每個定義的新服務(wù)器使用默認(rèn)值(HTTP 傳輸使用 9080)并遞增到下一個沒有被占用的值。
在這個例子中,當(dāng)您安裝完 WebSphere Application Server 后,創(chuàng)建了一個名為 server1 的獨立服務(wù)器。當(dāng)這個節(jié)點添加到 Deployment Manager 時,server1 也會遷移為托管服務(wù)器。Server 1 使用 9080 端口進(jìn)行 HTTP 傳輸。在 TP2 上,創(chuàng)建的 clone1 使用 9081 端口,clone2 使用 9082 端口。當(dāng)安裝 DefaultApplication.ear 時,Web 模塊要使用 default_host 虛擬主機(jī)。默認(rèn)情況下,default_host 只接受 9080 端口上的請求,所以您需要配置這個虛擬主機(jī),讓它也可以接受 9081 端口和 9082 端口上的請求。
在 Administrative Console 中通過 Environment > Virtual Hosts > default_host > Host Aliases 來為默認(rèn)主機(jī)添加附加端口的支持。單擊 New 以添加一個新的別名。用 * 作為主機(jī)名(* 代表任意主機(jī)名),用 9081 作為端口值。重復(fù)這一過程來設(shè)置 9082 端口,如圖 19 所示。
圖 19. default_host 的附加端口

確保 Synchronize changes with Nodes 已經(jīng)被選中,保存配置。
既然您已經(jīng)在群集中安裝了一個應(yīng)用程序,現(xiàn)在該測試它了。在我們的運(yùn)行期中有三種類型的進(jìn)程:Deployment Manager、Node Agent 和 Application Server。它們每個都是獨立的系統(tǒng)級 Java 進(jìn)程。
您可以使用 Deployment Manager 的 Administrative Console 來啟動或停止群集。在此之前,每個節(jié)點都必須已經(jīng)在運(yùn)行 Node Agent。您可以使用表 1 中的命令來控制安裝中的 Deployment Manager 和 Node Agent。
表 1. 控制 Deployment Manager 和 Node Agent 的命令

從先前執(zhí)行 addNode 命令時起,Node Agent 應(yīng)該還在運(yùn)行。在 Administrative Console 中通過 System Administration > Node Agent 來檢查 TP1 和 TP2 的 Node Agent 是否在運(yùn)行。然后查看節(jié)點 TP1 和 TP2 的狀態(tài)。如果其中一臺計算機(jī)上的 Node Agent 不可用,那么在那臺計算機(jī)的命令行中啟動它。當(dāng)所有 Node Agent 都啟動后,您可以通過 Administrative Console 啟動群集,如圖 20 所示。根據(jù)您的硬件配置的不同,啟動過程可能需要幾分鐘。
圖 20. 啟動群集

在測試工作負(fù)荷管理之前,有必要先分別檢驗一下各個克隆是否在工作。打開一個瀏覽器,訪問下面的 URL:
http://tp2:9081/hello - 查看 clone1 是否在工作。
http://tp2:9082/hello - 查看 clone2。
http://tp1:9081/hello - 查看 clone3。
圖 21. 確認(rèn)服務(wù)器在運(yùn)行

如果三個 URL 返回圖 21 中的結(jié)果,那么群集中所有服務(wù)器都在工作,而且使用的端口正確無誤。關(guān)閉您的瀏覽器。
測試工作負(fù)荷管理 HTTP 服務(wù)器插件提供了對 Web 應(yīng)用程序工作負(fù)荷的管理。在往 TP1 上安裝 WebSphere Application Server 的同時也安裝了 IBM HTTP 服務(wù)器。默認(rèn)情況下,插件使用 /opt/WebSphere/AppServer/config/cells 目錄下的 plugin-cfg.xml 配置文件。通過 Administrative Console 中的 Environment > Update Web Server Plugin 來生成插件的配置。
Administrative Console 生成的文件將放在 /opt/WebSphere/DeploymentManager/config/cells 目錄中。所以,您需要將生成的文件手工拷貝到 HTTP 服務(wù)器插件可以找到的目錄,比如 /opt/WebSphere/AppServer/config/cells 目錄。
DefaultApplication.ear 中的 snoop servlet 適合用于測試工作負(fù)荷。它顯示用來執(zhí)行請求的進(jìn)程名。打開一個瀏覽器并輸入這個 URL:http://tp1/snoop(IBM HTTP 服務(wù)器安裝在 TP1 上)。
圖 22. 測試工作負(fù)荷

多刷新幾次您的瀏覽器,查看是哪個克隆執(zhí)行請求。您應(yīng)該會得到 1233、1233 等序列,這反映出了配置克隆時指定的相對權(quán)重。