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

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

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

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

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

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

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