配置WebLogic Server集群
下面為網上文章.現總結一下自己配置時遇到的一些問題的解決方案:
1.集群的概念是這樣的,先建立管理服務器,跟據下面的圖就可以建起來.這個不難,接下來就是建立受理服務器,受理服務器可以建立一到多臺,也可以跟據下面的圖建立起來,不管是遠程的還是本地的都可以建起來.接下來就是啟動管理服務器了,這個不難,再就是啟動代理服務器了,這個比較難理解.在啟動代理服務器以前先講二點,一就是管理服務器啟動以后不能部署應用程序(我是這么理解的,不確定)要想部署應用就一定得建一個代理服務器,不管是在一臺機子上還是在多臺電腦上,都行.二啟動了管理服務器就可以進入控制臺,在控制臺上可以新建受理服務器,如果要在管理服務器上建受理服務器就可以直接部署應用了.如果是別的計算機上面則還沒試,`接下來就是代理服務器的啟動,啟動的domain文件我是從服務器上拷貝過來.啟動是在運行打上CMD也就是在dos控制臺下輸入.D:\bea\user_projects\domains\base_domain\bin>下啟動startManagedWebLogic.cmd文件,后面帶上 你在管理服務器上看到的代理的名稱默認情況下為server-0,接著再打入
http://192.168.0.131:7001就可以看到啟動了.
(本文講述如何在WebLogic Server 8.1上配置集群,以及通過Proxy Server來訪問集群)
預備知識
什么是Domain和Server
Domain
Domain是WebLogic Server實例的基本管理單元。所謂Domain就是,由配置為Administrator Server的WebLogic Server實例管理的邏輯單元,這個單元是有所有相關資源的集合。
Server
Server是一個相對獨立的,為實現某些特定功能而結合在一起的單元。
Domain and Server的關系
一個Domain 可以包含一個或多個WebLogic Server實例,甚至是Server集群。一個Domain中有一個且只能有一個Server 擔任管理Server的功能,其它的Server具體實現一個特定的邏輯功能。
本文環境
Ø 平臺:Windows 2000
Ø 軟件:Bea WebLogic Server 8.1 SP2
配置WebLogic Server集群
WebLogic集群的體系結構
單層混合型的集群架構(Cluster)
這種架構將所有的Web應用以及相關的服務應用全部置于集群中的單一WLS實例中,這種架構的優勢在于:
Ø 易于管理
Ø 靈活的負載平衡機制
Ø 更強的安全控制
多層結構的集群架構(Cluster)
這種架構使用兩個WLS集群,一個放置表靜態內容和集群Servlet,另一個放置集群EJB。一般應用于下面這些情況:
Ø 在負載平衡機制需要調用集群EJB中的方法時;
Ø 在提供內容與提供對象的服務之間需要更大的機動性時;
Ø 在需要更高的系統穩定性時;
配置集群應用的必要條件
Ø 集群中的所有Server必須位于同一網段,并且必須是IP廣播(UDP)可到達的
Ø 集群中的所有Server必須使用相同的版本,包括Service Pack
Ø 集群中的Server必須使用永久的靜態IP地址。動態IP地址分配不能用于集群環境。如果服務器位于防火墻后面,而客戶機位于防火墻外面,那么服務器必須有公共的靜態IP地址,只有這樣,客戶端才能訪問服務器
Ø 要以CLUSTER方式運行,必須有包含CLUSTER許可的LICENSE才行(從Bea網站上下載的試用版本就可以進行Cluster配置)
配置前的準備工作
在配置集群應用前要對集群的配置信息有一個良好的設計,下面就是我們這次配置的集群信息:
在同一臺機器上配置集群
機器類型
|
操作系統
|
硬件配置
|
角色
|
備注
|
DELL PC
|
Win2000 Professional
|
IP:10.16.92.33PORT:7080
|
Administrator Server
|
|
DELL PC
|
Win2000 Professional
|
IP:10.16.92.33PORT:8080
|
Proxy Server
|
|
DELL PC
|
Win2000 Professional
|
IP:10.16.92.33PORT:7082
|
Managed Server
|
|
DELL PC
|
Win2000 Professional
|
IP:10.16.92.33PORT:7084
|
Managed Server
|
|
DELL PC
|
Win2000 Professional
|
IP:10.16.92.33PORT:7086
|
Managed Server
|
|
在同一網段內的不同機器上配置集群
機器類型
|
操作系統
|
硬件配置
|
角色
|
備注
|
DELL PC
|
Win2000 Server
|
IP:10.16.92.7PORT:7080
|
Administrator Server
|
|
DELL PC
|
Win2000 Server
|
IP:10.16.92.7PORT:8080
|
Proxy Server
|
|
DELL PC
|
Win2000 Server
|
IP:10.16.92.7PORT:7082
|
Managed Server
|
|
DELL PC
|
Win2000 Server
|
IP:10.16.92.33PORT:7084
|
Managed Server
|
|
使用Domain Configuration Wizard進行配置
創建新的Domain
選擇“Create a new WebLogic configuration”,單擊“Next”按鈕
選擇安裝類型
選擇安裝“Basic WebLogic Server Domain”,單擊“Next”按鈕
選擇定制安裝
選擇“Custom”安裝,單擊“Next”按鈕
輸入Administrator Server的信息
輸入Administrator Server的名稱,監聽地址,監聽端口,如果需要SSL支持的話可以在“SSL enabled”后面的復選取框上打勾,配置SSL監聽端口,單擊“Next”按鈕
是否配置Server、Cluster、Machine信息
選擇“Yes”,對Server、Cluster、Machine信息進行配置,,單擊“Next”按鈕
配置Managed Server信息
輸入Managed Server的名稱,監聽地址,監聽端口,如果需要SSL支持的話,可以在“SSL enabled”復選框上打勾,配置SSL監聽端口??梢耘渲枚鄠€Managed Server。單擊“Next”按鈕
配置Cluster信息
輸入Cluster的名稱,Cluster的組播地址和端口,Cluster地址可輸可不輸。單擊“Next”按鈕
將Managed Server添加到Cluster中
選擇左面列表中的Managed Server,將其添加到右面的列表中,單擊“Next”按鈕
配置Machine信息
在此不對Machine進行配置,單擊“Next”按鈕
是否配置JDBC信息
在此不對JDBC數據源和連接池進行配置,單擊“Next”按鈕
配置JMS信息
在此不對JMS進行配置,單擊“Next”按鈕
配置缺省系統管理員用戶名和密碼
輸入系統管理員用戶名和密碼,還可以配置其它的系統管理用戶,在此不做配置,單擊“Next”按鈕
配置Windows附加選項
可以選擇是否創建開始菜單中的快捷方式,是否將該服務作為Windows系統服務,在這里我們全部選擇“No”,單擊“Next”按鈕
配置服務的啟動模式并選擇Java SDK
選擇“Development Mode”模式,并選擇標準的Java SDK 1.4,在開發模式下會有比較豐富的調試信息,對我們很有幫助,單擊“Next”按鈕
配置信息確認以及選擇安裝路徑
系統列出您的配置信息,并指定了缺省的安裝路徑(D:\bea\user_projects\domains\mydomain),在此我們將安裝路徑定位在D:\bea\user_projects\clusterdomain,單擊“Create”按鈕
系統創建Domain
系統根據配置信息,完成缺省的目錄及文件的創建
啟動WebLogic服務
Ø 啟動Administrator Server
使用startWebLogic命令啟動Administrator Server
Ø 啟動Managed Server
使用startManagedWeblogic命令啟動Managed Server,它的命令格式是:
startManagedWeblogic.cmd Managed Server的名稱 Administrator Server地址
同理可以啟動nodeB和nodeC,以及Proxy Server
通過HttpClusterServlet實現請求的自動分發處理
HttpClusterServlet通過一個WebLogic服務器代理對WebLogic集群中的其他服務器成員的HTTP請求, 同時HttpClusterServlet還為代理的HTTP請求提供負載平衡與容錯處理。
實際上實現是很簡單的,遵循下面幾個步驟就可以輕松實現請求的自動分發功能:
Ø 創建一個代理Server(在此我們稱這proxyServer)
Ø 生成配置文件web.xml
Ø 生成配置文件weblogic.xml
Ø 打包生成Web應用
Ø 在proxyServer上部署應用,并將該應用作為缺省的Web應用
創建代理Server
啟動Administrator Server,然后進入Console控制臺(http://10.16.92.33:7080/console/),在此我們將代理Server與Administrator Server置于同一臺主機之上。
進入console控制臺后,在“Server”結點上單擊右鍵,在彈出菜單上選擇“Configure a New Server”,然后配置代理Server的相關信息。(在這里只要指定名稱,監聽地址,監聽端口就可以了)
HttpClusterServlet 的部署,主要是Servlet的聲明和映射,并設置初始化參數,可以創建一個Web App,然后直接在web.xml中添加或在管理控制臺上設置HttpClusterServlet的部署信息。最后將它發布給用來做代理的 Server,并將這個Web App設置為這個Server的缺省WEB應用。
web.xml文件示例
weblogic.xml文件示例
打包WEB應用
可以使用jar命令將proxy應用打包成war文件,我們建一個臨時目錄temp,然后在其中建立如下目錄結構:
使用如下的命令操作,就可完成web應用的打包操作:
JAR –參數 WEB應用名稱要打包的目錄
當然我們也可以直接部署該目錄,而無需打包,這在項目的開發階段是很有幫助的,便于修改。
部署proxy應用
啟動Administrator Server,然后進入Console控制臺(http://10.16.92.33:7080/console/),在此我們將代理Server與Administrator Server置于同一臺主機之上。
進入console控制臺后,在“Web Application Modules” 結點上單擊右鍵,在彈出菜單上選擇“Deploy a new Web Application Module”,然后選擇要部署的文件或目錄,單擊“Target Module”按鈕,然后選擇“proxyServer”,單擊“Continue”按鈕,到了下一步,單擊“Deploy”按鈕,完成部署工作。
部署完成后,查看WEB應用的狀態是“FAILS”,造成這種情況的原因是“proxyServer”還沒有啟動,我們可以通過下面的命令啟動“proxyServer”:
然后點擊“ReDeploy”,重新部署應用,狀態值將變為“Success”。
將WEB應用配置成缺省的WEB應用,weblogic8.1與weblogic6.1有很大的不同,8.1不再支持從console控制臺完成配置的工作,而是在weblogic.xml中通過下面的結點,完成配置的工作。
<context-root> / </context-root>
測試proxy應用
修改web.xml文件,加入下面的結點,然后重啟服務。
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
打開瀏覽器,訪問下面的地址,會得到下圖所示的結果,這就說明你的配置是成功的。
http://myserver:port/placeholder.jsp? __WebLogicBridgeConfig
myserver為服務地址(在這里是10.16.92.7)
port為proxy服務的端口(在這里是8080)
placeholder.jsp(這是一個不存在的JSP文件,您也可以隨意指定文件名)
__WebLogicBridgeConfig(這個可千萬不能寫錯呦!)
測試集群的分發功能
編寫測試WEB應用并部署
我們來編寫一個簡單的WEB應用,它會在控制臺和瀏覽器上同時打印出“OK”字樣,然后將這個WEB應用部署到集群中所有Managed Server上面。(代碼見附件)
在這里我們將通過Apache中所帶的ab包來進行并發訪問的模擬測試,使用如下的命令就可以完成壓力測試。
ab是測試程序的名稱
參數n代表請求的總數量
參數c代表并發的請求數
url為要測試壓力的頁面
注:使用這個命令時,一定要在系統路徑中能夠找到該程序,否則不能執行。
壓力測試完成后,我們從Managed Server的控制臺上可以看到,nodeA,nodeB,nodeC都打印出了“OK”字樣,這說明,在并發請求的情況下,集群能夠將請求進行分發,以達到負載平衡的目的。
測試應用的目錄結構如下,部署與proxy應用的部署一樣,要注意的是要將它部署在Managed Server上面。
同一網段內不同機器部署集群
在不同機器上部署集群與上面的操作有一些不同,就是在部署“Managed Server”時,要注意的是,參見下面的圖解。
在另外一臺機器上配置“Managed Server”時,要指定“Admin Server”的名稱,監聽地址,監聽端口。
另外要注意的是,“Managed Server”上的配置信息要與“Admin Server”中Cluster所指定的配置信息一致。
啟動“Managed Server”的命令與上面的一樣,如下所示:
集群配置中要注意的問題
Ø Admin Server只用于集群的管理,而不能參與集群事務。
Ø Web應用應該部署到集群上,文件的同步是由WebLogic來完成的。