如今的電子商務(wù)及電子政務(wù)應(yīng)用系統(tǒng)的發(fā)展已經(jīng)到了一個新的階段,應(yīng)用系統(tǒng)的成熟度和可用性都達(dá)到了更高的水準(zhǔn)。因此龐大的部署規(guī)模和海量的用戶訪問成為目
前大型電子商務(wù)及電子政務(wù)應(yīng)用系統(tǒng)的顯著特征。在這樣的情況下,企業(yè)對系統(tǒng)關(guān)鍵業(yè)務(wù):如金融信息,通信,交通等要求確保系統(tǒng)24*7*365不停歇運(yùn)行業(yè)
務(wù)的分布式部署結(jié)構(gòu)和負(fù)載抗壓能力,以及高可用性都提出了更高的要求。IBM WAS
ND產(chǎn)品可以幫助我們在多應(yīng)用服務(wù)器分布式部署環(huán)境下實現(xiàn)集群,確保系統(tǒng)的負(fù)載能力和高可用性。
下面按照邏輯概念的層次關(guān)系,由大到小依次了解IBM WAS ND產(chǎn)品定義的分布式網(wǎng)絡(luò)環(huán)境中的相關(guān)概念。
單元(Cell)
單元是整個分布式網(wǎng)絡(luò)中一個或多個節(jié)點的邏輯分組。單元是一個配置概念,是管理員將節(jié)點間邏輯關(guān)聯(lián)起來的實現(xiàn)方法。管理員根據(jù)具體的業(yè)務(wù)環(huán)境,制定對其整體系統(tǒng)集成環(huán)境有意義的條件來定義和組織構(gòu)成單元的節(jié)點。如圖1所示,就一般情況來說,可以將單元看作是最大的作用域。
在IBM
WAS ND產(chǎn)品中,管理配置數(shù)據(jù)都存儲在 XML
文件中。單元保留了它每個節(jié)點中每臺服務(wù)器的主配置文件。同時每個節(jié)點和服務(wù)器也有其自己的本地配置文件。如果服務(wù)器已經(jīng)屬于單元,則對于本地節(jié)點或服務(wù)
器配置文件的更改都是臨時的,通過在本地提交更改生效時,本地更改覆蓋單元配置,但是當(dāng)執(zhí)行單元配置文檔同步到節(jié)點的操作時,在單元級別上對主控服務(wù)器和
主節(jié)點配置文件所作的更改將會替換對該節(jié)點所作的任何臨時更改。
同步操作在指定的事件發(fā)生時進(jìn)行,例如服務(wù)器啟動時等很多操作。也就是說,通過對本地節(jié)點或服務(wù)器配置文件進(jìn)行修改而達(dá)到調(diào)整節(jié)點或服務(wù)器配置的做法不是安全的,臨時修改很容易被同步操作所覆蓋。
圖 1. 單元的作用域
Deployment Manager
Deployment
Manager
是管理代理程序,它提供集中式管理單元中所有節(jié)點的可視化人機(jī)交互管理視圖。之前提到單元是一個邏輯上的配置概念,那么Deployment
Manager 就為單元中所有元素提供了單一的管理控制中心點。每個單元都會包含一個 Deployment
Manager,由Deployment
Manager提供管理功能來修改單元的主配置文件。在最新的v6.x版本中還提供集群管理以及在一個或多個節(jié)點作用域內(nèi)進(jìn)行應(yīng)用程序服務(wù)器工作負(fù)載平
衡。
圖 2. 由Deployment Manager提供管理功能來修改單元的主配置文件
節(jié)點(Node)
節(jié)點是受管服務(wù)器(Server)的邏輯分組。節(jié)點通常與具有唯一 IP主機(jī)地址的邏輯或物理計算機(jī)系統(tǒng)對應(yīng),節(jié)點不能跨多臺計算機(jī)。節(jié)點分為受管節(jié)點與非受管節(jié)點。
IBM
WAS ND 拓?fù)渲械墓?jié)點可能是受管的,也可能是非受管的。受管節(jié)點有相應(yīng)的 Node Agent 進(jìn)程來管理它的配置和服務(wù)器。非受管節(jié)點沒有
Node Agent。Node Agent 表示管理單元中的節(jié)點并負(fù)責(zé)保持配置始終處于最新狀態(tài)。非受管節(jié)點對于單元來說是未知的,所以
Deployment Manager 無法對其進(jìn)行管理。
分布式網(wǎng)絡(luò)環(huán)境中的非受管節(jié)點可以有服務(wù)器定義(例
如 Web 服務(wù)器),但不能有應(yīng)用程序服務(wù)器定義,并且非受管節(jié)點無法添加 Node
Agent,因此它不能成為受管節(jié)點。另外一種情況在獨立應(yīng)用程序服務(wù)器環(huán)境中,節(jié)點尚且沒有 Node
Agent,它們也可以暫時被視為非受管節(jié)點,但是這類節(jié)點可以通過聯(lián)合獨立應(yīng)用程序服務(wù)器而變?yōu)閱卧械氖芄芄?jié)點。通過調(diào)整獨立應(yīng)用程序服務(wù)器概要文
件,將單獨的Server節(jié)點添加到單元,這個過程稱為聯(lián)合。在聯(lián)合獨立應(yīng)用程序服務(wù)器時,節(jié)點將自動創(chuàng)建 Node Agent,該節(jié)點就可以被Deployment Manager 管理。
圖 3. IBM WAS ND 拓?fù)渲械氖芄芄?jié)點與非受管節(jié)點
Node Agent
Node
Agent 是將管理請求路由至服務(wù)器的管理代理程序。Node Agent 是服務(wù)器,是一個管理代理程序,并不涉及應(yīng)用程序服務(wù)功能。Node
Agent 進(jìn)程在每個受管節(jié)點上運(yùn)行,并專門執(zhí)行特定于節(jié)點的管理功能,如服務(wù)器進(jìn)程監(jiān)視、配置同步、文件傳輸和請求路由。Deployment
Manager通過與Node Agent的交互完成對單元內(nèi)節(jié)點的控制。
圖 4. Node Agent
WAS Plug-in
在
前面的章節(jié)我們討論過受管節(jié)點是通過Node Agent進(jìn)程與Deployment
Manager交互。而非受管節(jié)點,最常見的是web服務(wù)器節(jié)點(如IBM HTTP Server),則是通過Web
服務(wù)器插件方式來接受Deployment Manager管理,加入到單元當(dāng)中來的。IBM WAS ND產(chǎn)品支持所有符合規(guī)范的Web
服務(wù)器的基本管理功能,可以為所有支持的 Web 服務(wù)器生成插件配置。插件生成之后,對于非受管節(jié)點,可以通過“傳播給遠(yuǎn)程 Web
服務(wù)器”完成插件配置;如果定義在受管節(jié)點上,則直接通過節(jié)點間同步即可完成插件配置的傳播。
Web
服務(wù)器插件允許 Web 服務(wù)器將動態(tài)內(nèi)容的請求發(fā)送到應(yīng)用程序服務(wù)器。Web 服務(wù)器插件與每個 Web
服務(wù)器定義關(guān)聯(lián)。為每個插件生成的配置文件(plugin-cfg.xml)基于通過關(guān)聯(lián)的 Web 服務(wù)器路由的應(yīng)用程序。Web
服務(wù)器插件幫助面向的網(wǎng)絡(luò)中的應(yīng)用程序服務(wù)器之間的工作負(fù)載平衡,改進(jìn)請求響應(yīng)時間。
圖 5. 非受管節(jié)點通過插件接受管理
概要文件(Profile)
概
要文件定義一個獨立應(yīng)用程序服務(wù)器(Server)的運(yùn)行時環(huán)境,包括服務(wù)器在運(yùn)行時環(huán)境中處理的所有文件。創(chuàng)建獨立應(yīng)用程序服務(wù)器時應(yīng)該使用概要文件而
不是多個產(chǎn)品安裝,這樣只需要保留一組產(chǎn)品核心文件即可,管理能力將得到極大的增強(qiáng)。不僅節(jié)省了磁盤空間,而且簡化了產(chǎn)品的更新,只需要保留一組產(chǎn)品核心
文件即可。而且與完整產(chǎn)品安裝相比,創(chuàng)建新概要文件更快速,而且減少了出錯的可能性,這允許開發(fā)者創(chuàng)建單獨的產(chǎn)品概要文件以進(jìn)行開發(fā)和測試。核心產(chǎn)品文件是由所有概要文件共享的產(chǎn)品二進(jìn)制文件,如果希望二進(jìn)制文件位于不同服務(wù)級別,在應(yīng)用安裝時設(shè)置。概要文件管理工具未提供刪除功能,所以必須使用 manageprofiles 命令來刪除概要文件。
使
用概要文件創(chuàng)建獨立應(yīng)用程序服務(wù)器,則每個定義的應(yīng)用程序服務(wù)器進(jìn)程都在 profiles
目錄內(nèi),除非在創(chuàng)建概要文件時指定新目錄。如果將概要文件放在安裝根目錄中,則存在概要文件可能被例行系統(tǒng)維護(hù)破壞的風(fēng)險。這些文件在隨創(chuàng)建新的概要文
件、重新配置現(xiàn)有的概要文件或刪除概要文件等操作而更改。
IBM WAS ND提供了多種類型的概要文件,以下是最常用的三種:
-
單元概要文件
基本功能是在 Deployment Manager的管理下將應(yīng)用程序提供給因特網(wǎng)或內(nèi)部網(wǎng)。創(chuàng)建單元概要文件其實就是同時創(chuàng)建Deployment
Manager
概要文件和已聯(lián)合到單元的節(jié)點概要文件,構(gòu)建一個最簡單的單元環(huán)境。在創(chuàng)建初始單元概要文件后,可單獨創(chuàng)建定制概要文件或獨立概要文件,再通過聯(lián)合操作將
他們添加到 Deployment Manager管理的單元環(huán)境中。
-
Deployment Manager 概要文件
基本功能是將應(yīng)用程序部署到WAS的管理單元。每個屬于該單元的Server都作為受管節(jié)點引用。
-
Application Server 概要文件
基本功能是將應(yīng)用程序提供給因特網(wǎng)或內(nèi)部網(wǎng)。IBM WAS ND 產(chǎn)品的重要功能就是通過將 Server
節(jié)點添加到單元,調(diào)整獨立應(yīng)用程序服務(wù)器概要文件。單元中的多個應(yīng)用程序服務(wù)器進(jìn)程可以部署它需要的應(yīng)用程序。也可以從單元除去 Server
節(jié)點以將節(jié)點返回到獨立應(yīng)用程序服務(wù)器的狀態(tài)。每個獨立應(yīng)用程序服務(wù)器都具有其自己的管理控制臺應(yīng)用程序,可以使用它來管理Server。
圖 6. 一個節(jié)點對應(yīng)一個概要文件,一個節(jié)點內(nèi)可以有多個Server
集群(Cluster)
集
群是一起進(jìn)行管理并參與工作負(fù)載管理的多個服務(wù)器集合。作為集群成員的服務(wù)器可以位于不同的主機(jī)上,與此相對的是作為同一節(jié)點下的服務(wù)器必須位于同一臺主
機(jī)上。單元可以沒有集群,也可以有一個或多個集群。集群負(fù)責(zé)平衡服務(wù)器之間的工作負(fù)載。作為集群一部分的服務(wù)器稱為集群成員。當(dāng)在集群上安裝應(yīng)用程序時,
會在每個集群成員上自動安裝此應(yīng)用程序。當(dāng)刪除集群時,也就同時刪除了該集群的成員的任何應(yīng)用程序服務(wù)器。沒有辦法保存任何集群的成員。除去集群成員的僅
有方法就是刪除應(yīng)用程序服務(wù)器。如果希望保留要刪除的集群中的應(yīng)用程序或模塊,則應(yīng)該先將這些模塊重新映射至另一集群。
圖 7. 由兩個節(jié)點內(nèi)的三個Server組成的集群
關(guān)于Node、Profile與Server
這
三個概念比較容易混淆,我們拿出來對比說明:Node=Profile。Node是管理上使用的概念,Profile是實際的概要文件,它們代表同一事
物。Server 就是所謂的 Application Server Instance , 這是我們實際要布署 Application
的地方。在IBM WAS ND 產(chǎn)品中受管節(jié)點的Node Agent 目的就是讓 Deployment Manager Server 可以透過
Node Agent 來管 Node (Profile) 中的 Application Server Instance,一個 Node
(Profile) 中可以有多個 Application Server Instance。
如果是非ND版
本 , 則屬于 Single Server 版本,那么一個 Node (Profile) 中只能有一個 Application Server
Instance,如果你希望在一臺機(jī)器上有多個 Application Server Instance,那就只能透過創(chuàng)建多個 Profile
(Node) 來達(dá)成,但這些 Node (Porfile) 彼此獨立沒有管理上的關(guān)系 (RelationShip),只要使用的 TCP/IP
Port 不要沖突即可。
一個較為復(fù)雜的實例
在完成了對IBM WAS ND 產(chǎn)品中相關(guān)概念的理解之后,我們通過一個較為復(fù)雜的實例來了解一個集群的構(gòu)建過程。此次搭建的集群環(huán)境使用了三臺測試服務(wù)器:
Table 1. 測試服務(wù)器情況
服務(wù)器地址 | 安裝節(jié)點 | 其他資源 |
192.9.100.14 |
一個非受管節(jié)點 |
獨立環(huán)境安裝IBM HttpServer v6.1 |
192.9.100.17 |
一個DM節(jié)點和兩個受管的應(yīng)用服務(wù)器節(jié)點 |
/ |
192.9.100.19 |
一個受管節(jié)點,一個應(yīng)用服務(wù)器節(jié)點 |
IBM DB2 v9.0數(shù)據(jù)庫 |
客戶端直接訪問192.9.100.14上的IBM HttpServer,由IBM HttpServer根據(jù)節(jié)點本身設(shè)置的負(fù)載權(quán)重,分發(fā)訪問請求。
圖 8. 集群拓?fù)浣Y(jié)構(gòu)圖
以下是該集群拓?fù)浣Y(jié)構(gòu)的安裝步驟,只描述需要提示的關(guān)鍵步驟。
首
先創(chuàng)建運(yùn)行時環(huán)境。打開Profile Management
Tool概要文件管理工具創(chuàng)建概要文件。選擇創(chuàng)建單元概要文件,即同時創(chuàng)建一個Deployment Manager
概要文件和一個已經(jīng)被聯(lián)合的應(yīng)用服務(wù)器節(jié)點概要文件,也可以創(chuàng)建DM概要文件再聯(lián)合已存在節(jié)點。
圖 9.
創(chuàng)建成功后在Deployment Manager 概要文件環(huán)境中登錄到管理控制臺,可以在“系統(tǒng)管理”中看見DM相關(guān)資源。
圖 10.
節(jié)點列表。可以看見各種類型的節(jié)點:應(yīng)用服務(wù)器節(jié)點、單元節(jié)點、HttpServer非受管節(jié)點。可以在此添加新的節(jié)點或聯(lián)合已有非受管節(jié)點。各節(jié)點與單元主配置文件的同步操作也可以在這里完成。
圖 11.
Node Agent列表。可以看見3個應(yīng)用服務(wù)器節(jié)點被聯(lián)合到單元之后,成為受管節(jié)點,開啟了Node Agent進(jìn)程。Node Agent在這里只能停止和重新啟動。停止了之后就不能在此啟動,需要回到Node下的概要文件中使用命令行去啟動Node Agent。
圖 12.
在“服務(wù)器”中選擇“集群”,新建。一般來說,如果創(chuàng)建了集群,那么對各個單獨節(jié)點的操作都應(yīng)該在集群或DM中操作,而不應(yīng)該去“服務(wù)器”中的“應(yīng)用程序服務(wù)器”中單獨操作。
圖 13.
為集群添加成員(節(jié)點),并且在添加成員的同時重命名一個短名稱。分配負(fù)載權(quán)重。指定分配給應(yīng)用程序服務(wù)器的工作量。值的范圍是 0 到 20。權(quán)重值越大表明將分得越多的工作量。
圖 14.
可以對集群進(jìn)行啟動和停止操作。對集群進(jìn)行啟動停止,就是對集群內(nèi)的成員節(jié)點進(jìn)行啟動停止。
圖 15.
接下來安裝web服務(wù)器,本例中采用IBM HTTP SERVER(IHS)。安裝IHS的過程中注意在安裝WAS IHS插件,填寫Application Server主機(jī)名或IP時,如果是在集群環(huán)境下,就填寫DM所在節(jié)點的主機(jī)名或IP地址。其他步驟沒有困難。
圖 16.
安
裝IHS結(jié)束之后會有Admin Server和HTTP Server兩個Server。HTTPServer是通常意義上的Web
Server。Admin Server是IHS用來配合IBM WAS ND產(chǎn)品提供遠(yuǎn)程管理服務(wù)的。啟動Admin
Server則可以在遠(yuǎn)程節(jié)點加入該Web Server節(jié)點,并對其進(jìn)行啟動、停止等管理。也可以直接將插件配置文件傳播到這個節(jié)點上。
圖 17.
安裝插件,選擇要配置的web服務(wù)器
圖 18.
主要的生產(chǎn)配置是一臺機(jī)器上的應(yīng)用程序服務(wù)器和另一臺機(jī)器上的 Web 服務(wù)器。此配置稱為遠(yuǎn)程配置。與遠(yuǎn)程配置相對的是本地配置,其中應(yīng)用程序服務(wù)器和 Web 服務(wù)器在同一臺機(jī)器上。
圖 19.
指明web服務(wù)器插件在IBM WAS ND中安裝的位置。默認(rèn)位置即可。
圖 20.
指明IHS配置文件httpd.conf的位置和Web服務(wù)器的端口。在IHS那一端。
圖 21.
接
下來設(shè)置IHS中plugin-cfg.xml文件的位置,默認(rèn)位置即可。IBM WAS
ND上也有這樣一個文件,可以通過手工COPY或“遠(yuǎn)程傳播”的方式使二者保持一致。然后指明標(biāo)示應(yīng)用程序服務(wù)器的主機(jī)名或IP地址,推薦使用DM所在機(jī)
器的主機(jī)名或IP地址。連續(xù)“下一步”至安裝結(jié)束。
接下來需要將安裝好的IHS及WAS插件加入到集群中去。可以通過管理控制臺添加,也可以通過命令行形式添加,通過管理控制臺添加比較簡明,但步驟很多。下面描述一下快速命令行加入的方式:
1. 開啟IHS的admin管理,在{IHS-install}/bin目錄下運(yùn)行
httpasswd -cm {install_dir}"conf"admin.passwd admin
(admin 是管理IHS的用戶名). 接著輸入兩次密碼.
|
2. 在IHS節(jié)點中啟動IBM HTTP Server 和 IBM HTTP Admin Server.
3. 將IHS節(jié)點的{plunin-install}/bin/configurewebserver1.bat文件拷貝到安裝時填寫的WAS服務(wù)器的{was-install}/bin目錄.當(dāng)時推薦的是DM所在服務(wù)器。
4. 在DM所在服務(wù)器上啟動DM服務(wù)
5. 在DM所在服務(wù)器上打開一個命令行窗口,運(yùn)行
{was-intall}/bin/configurewebserver1.bat
|
6. 如下圖所示在配置管理控制臺確認(rèn)Web Server被成功加入。由于啟動了Admin Server,所以這個Web Server 還可以在WAS的管理控制臺被管理。版本處寫的“不適用”是因為這個Web Server 節(jié)點是一個非受管節(jié)點。
圖 22.
全部安裝配置完畢后,還需要為每一個server設(shè)置一個端口號為80的虛擬主機(jī),以便接收來自IHS的請求 。
圖 23.
部
署應(yīng)用則按照常規(guī)方式安裝應(yīng)用即可。注意在映射至服務(wù)器時,需要將該應(yīng)用同時映射到集群和HttpServer上去。如果不是web模塊則不必映射到
HttpServer上去,如EJB。這樣應(yīng)用會同時安裝在集群環(huán)境中的所有Node下的所有Server中。安裝后需要重啟Cluster和重新生成、
傳播WAS Plug-in。
圖 23.
為
了讓發(fā)布在Cluster上的應(yīng)用能連接到數(shù)據(jù)庫,
我們需要在所有的受管節(jié)點上創(chuàng)建相同的數(shù)據(jù)源。創(chuàng)建數(shù)據(jù)源的過程與普通過程無異,需要注意的是創(chuàng)建Jdbc
Provider時作用域應(yīng)該選擇在節(jié)點范圍。如果在Cluster級別,某些版本的ND可能出現(xiàn)問題。重啟DM服務(wù),并且重啟所有受管節(jié)點的
NodeAgent服務(wù)。
圖 24.
至
此,集群的全部搭建步驟就完成了,重新啟動Deployment
Manager、NodeAgent以及集群的服務(wù)。如拓?fù)浣Y(jié)構(gòu)中所示,可以通過訪問WEB服務(wù)器來訪問應(yīng)用,即:http:
//192.9.100.14 或 http://192.9.100.14:80。也可以嘗試將其中的一個或兩個Node停止,以確認(rèn)是否能繼續(xù)訪問。
結(jié)束語
越
來越多的企業(yè)及政府應(yīng)用系統(tǒng)提出了對集群環(huán)境的要求,本文的主要目的是想闡述清楚IBM WAS
ND產(chǎn)品對集群及整個分布式網(wǎng)絡(luò)環(huán)境的理解和定義。只有理解這些定義和架構(gòu),才可以在實際工程的集成與部署工作中拿出好的設(shè)計方案來,并最大程度的發(fā)揮
IBM WAS ND產(chǎn)品的能力。
參考資料
posted on 2007-11-02 11:12
前方的路 閱讀(1621)
評論(3) 編輯 收藏 所屬分類:
Web應(yīng)用服務(wù)器