linux下weblogic81集群配置實(shí)例
Linux 下 Weblogic 集群配置
域,集群,管理服務(wù)器和被管服務(wù)器之間的關(guān)系
?????? Weblogic 域是一個(gè)服務(wù)器 / 集群的管理組,用戶可以通過某個(gè)中央位置來管理、監(jiān)控整個(gè)服務(wù)器域,這個(gè)中心就是管理服務(wù)器,相對的,受控服務(wù)器或者叫被管服務(wù)器是指域中除了管理服務(wù)器以外的所有的服務(wù)器。
?????? Weblogic 集群是一個(gè) weblogic Server 組,在一個(gè)集群中的服務(wù)器可以獲得集群范圍的命名服務(wù)、負(fù)載平衡以及容錯等功能。
?????? 所以,一個(gè) weblogic 域可以同時(shí)管理多個(gè)集群以及多個(gè)服務(wù)器實(shí)例。
?????? 另外,還有一個(gè)節(jié)點(diǎn)管理器的概念,節(jié)點(diǎn)管理器是指在物理的機(jī)器上運(yùn)行的一個(gè)守護(hù)進(jìn)程,通過它,管理服務(wù)器可以獲得諸如在控制臺中強(qiáng)制重啟遠(yuǎn)程機(jī)器上的 server 等功能(沒有節(jié)點(diǎn)管理器的情況下也是可以強(qiáng)制關(guān)閉遠(yuǎn)程服務(wù)器的,但是不能重啟)。
?????? 除此之外,據(jù)說節(jié)點(diǎn)管理器還可以自動檢查自己機(jī)器上的 server 實(shí)例(健康檢查),當(dāng)發(fā)現(xiàn)某個(gè)實(shí)例出現(xiàn)故障的時(shí)候,可以自動進(jìn)行重啟,這個(gè)沒試過。
注意事項(xiàng)
1.???????? 本文的 weblogic 均配置在 linux 環(huán)境下
2.???????? 集群中管理服務(wù)器和被管服務(wù)器之間有用到 ip 組播 UDP ,所以這些服務(wù)器之間必須是 UDP 可以到達(dá)的。
3.???????? 好像動態(tài) ip 的機(jī)器不能用于集群當(dāng)中
4.???????? 最佳實(shí)踐說:請不要把管理服務(wù)器設(shè)置在集群當(dāng)中
5.???????? 本文所配置的集群只是實(shí)現(xiàn)了 web 層次上的負(fù)載平衡和容錯,也就是 servlet 和 jsp ,其他的 j2ee 組件如 ejb , jdbc , jms 等都可以集群化。
本例測試域的規(guī)劃
Ip/port |
server |
注釋 |
|
adminServer |
管理服務(wù)器 |
|
mServer1 |
被管服務(wù)器 1 |
|
mServer2 |
被管服務(wù)器 2 |
|
proxyServer |
代理服務(wù)器 |
配置過程
建立管理服務(wù)器
啟動 linux 下的配置向?qū)?/span>
進(jìn)入 bea 目錄下的 weblogic81/common/bin 目錄輸入 ./config.sh ,這里使用的終端登陸,所以沒有圖形環(huán)境,程序會以控制臺模式啟動
第一步:選擇建立新的域:
啟動配置向?qū)Ш螅到y(tǒng)提示如下:
<------- BEA WebLogic Configuration Wizard---------->
Create or Extend a Configuration:
---------------------------------
Choose between creating and extending a configuration. Based on your selection, the Configuration Wizard guides you through
the steps to generate a new or extend an existing configuration.
?->1|Create a new WebLogic configuration
??? |??? Start here to create a WebLogic configuration in your projects directory.
?? 2|Extend an existing WebLogic configuration
??? |??? Start here to extend an existing WebLogic configuration.? Use this option to add applications and services,
??? |including Database access (JDBC) and Messaging (JMS). This option also enables you to extend functionality by enabling
??? |WebLogic Workshop.
Enter index number to select OR [Exit][Next]>? 1
錄入 1 回車,建立一個(gè)新的域。
第二步:選擇模版
系統(tǒng)提示選擇一個(gè)建立域的模版,資料上講配置向?qū)У呐渲眠^程可以另存為模版,以便下次配置的時(shí)候使用,沒試過下次回去試試。
<-------- BEA WebLogic Configuration Wizard -------->
Select a Domain Template:
-------------------------
Please select a template from the list or select another directory of templates.
??? * [/usr/local/bea/weblogic81/common/templates/domains]
?->1|Basic WebLogic Server Domain
??? |? BEA Systems, Inc.
??? |? Create a basic WebLogic Server domain without installing sample applications.
?? 2|WebLogic Server Examples Domain
??? |? BEA Systems, Inc.
??? |? Create the WebLogic Server Examples domain in a directory outside of the installed kit.? The Examples domain contains???? |a collection of examples to show best practices for coding individual J2EE APIs.
?? 3|Avitek Medical Records Sample Domain
??? |? BEA Systems, Inc.
??? |? Create the Avitek Medical Records domain in a directory outside of the installed kit.? The Avitek Medical Records is
??? |a WebLogic Server sample application suite that concisely demonstrates all aspects of the J2EE platform.
?? 4|Select another directory location
Enter index number to select OR [Exit][Previous][Next]> 1
這里我們選擇 1 ,使用基礎(chǔ)的模版
第三步:是否以快速模式進(jìn)行
第三步系統(tǒng)提示是否以快速模式進(jìn)行配置,這里選擇 2 。
<--------- BEA WebLogic Configuration Wizard ----------->
Choose Configuration Option:
----------------------------
??? *Do you want to run the wizard in express mode?
?->1|Yes
?? 2|No
Enter index number to select OR [Exit][Previous][Next]> 2
第四步:配置管理服務(wù)器
現(xiàn)在系統(tǒng)提示我們配置管理服務(wù)器,把管理服務(wù)器的名字改一下,改成 adminServer 就可以了。
<------- BEA WebLogic Configuration Wizard -------->
Configure the Administration Server:
------------------------------------
Enter adminstration server configurations. Each WebLogic Server domain must have one Administration Server. The
Administration Server hosts the Administration Console which is used to perform administrative tasks.
??? |?????? Name?????? |??????? Value??????? |
?? _|__________________|_____________________|
?? 1|????? *Name:????? |????? myserver?????? |
?? 2| Listen address:? | All Local Addresses |
?? 3|?? Listen port:?? |??????? 7001???????? |
?? 4| SSL listen port: |???????? N/A???????? |
?? 5|?? SSL enabled:?? |?? ?????false??????? |
Select Option:
??? 1 - Modify "Name"
??? 2 - Modify "Listen address"
??? 3 - Modify "Listen port"
??? 4 - Modify "SSL enabled"
Enter option number to select OR [Exit][Previous][Next]> 1
輸入 1 之后,根據(jù)系統(tǒng)提示輸入新的管理服務(wù)器的名稱 adminServer
第五步:配置被管服務(wù)器
根據(jù)下面系統(tǒng)的提示,配置被管服務(wù)器
<--------- BEA WebLogic Configuration Wizard ---------->
Configure Managed Servers:
--------------------------
Add or delete configuration information for managed servers. A typical production environment has one or more managed
servers. Each managed server is an instance of WebLogic Server used to host enterprise applications.
??? | Name* | Listen address | Listen port | SSL listen port | SSL enabled |
??
_|_______|________________|_____________|_________________|_____________|
Enter name for a new Server OR [Exit][Previous][Next]> mServer1?
被管服務(wù)器我們設(shè)置兩個(gè): mServer1 和 mServer2 , mServer1 和管理服務(wù)器在一臺機(jī)器上,所以端口設(shè)置為 7003 避免和管理服務(wù)器沖突。
mServer2
的監(jiān)聽地址一定要設(shè)置成
ip
,否則在啟動被管服務(wù)器
2
的時(shí)候會得到這樣一個(gè)錯誤:
using the same address as the admin server
(這個(gè)錯挺傻的我覺得),如果是實(shí)際的集群配置的話,這里建議都寫成
ip
的形式。
配置完成的畫面如下:
?|? Name* ?|? Listen address ??| Listen port | SSL listen port | SSL enabled |
_|_________|___________________|_____________|_________________|_____________|
1| mServer1|
->2|mServer2|
第六步:配置集群
<----BEA WebLogic Configuration Wizard ------>
Configure Clusters:
-------------------
A cluster contains multiple WebLogic Server instances (servers) that run simultaneously and work together to provide
increased scalability and reliability.? A cluster appears to be a single WebLogic Server instance to clients.
??? | Name* | Multicast address | Multicast port | Cluster address |
?? _|_______|___________________|________________|_________________|
Enter name for a new Cluster OR [Exit][Previous][Next]> testCluster
輸入集群的名字 testCluster ,其他的默認(rèn)就行了,配置完成后如下:
??? |??? Name*??? | Multicast address | Multicast port | Cluster address |
??
_|_____________|___________________|________________|_________________|
?->1| testCluster |???? 237.0.0.1???? |????? 7001????? |???????????? ????|
第七步:將服務(wù)器組織到集群中
根據(jù)系統(tǒng)的提示,將 mServer1 和 mServer2 放入集群 testCluster 中去,配置完成后如下:
??? Cluster
??? |_____testCluster [1]
???????? |_____mServer1
???????? |_____mServer2
第八步:配置機(jī)器、 jdbc 、 jms 、安全等
接下來幾步系統(tǒng)提示配置 Machines,jdbc,jms,安全,這里都不用配置,全部回車就行了。
第九步:輸入管理服務(wù)器的用戶名和密碼
系統(tǒng)提示如下畫面,可以配置管理服務(wù)器的用戶名和密碼:
??? |????????? Name?????????? |????????????? Value????????????? |
?? _|_________________________|_________________________________|
?? 1|?????? *User name:?????? |??????????? weblogic???????????? |
?? 2|???? *User password:???? |???? ????????????????????????????|
?? 3| *Confirm user password: |???????????????????????????????? |
?? 4|????? Description:?????? | The default administration user |
第十步:選擇啟動模式, jdk 和存放目錄
啟動模式, jdk 和域文件存放目錄的設(shè)置比較簡單,根據(jù)大家的愛好設(shè)置就行了。
這里啟動模式選擇生產(chǎn)開發(fā)模式, jdk 使用 jRockit ,存放目錄默認(rèn)。
十一步:配置域名稱
Edit Domain Information:
------------------------
??? |? Name? |? Value?? |
?? _|________|__________|
?? 1| *Name: | mydomain |
Enter value for "Name" OR [Exit][Previous][Next]> testDomain
設(shè)置域的名稱為 testDomain 。
十二步:域建立結(jié)束
以上步驟都完成后,系統(tǒng)會自動建立這個(gè)域,并會生成一些文件等等,完成的界面如下:
<----- BEA WebLogic Configuration Wizard --------->
Creating Domain...
0%????????? 25%????????? 50%????????? 75%????????? 100%
[------------|------------|------------|------------]
[***************************************************]
**** Domain Created Successfully! ****
啟動管理服務(wù)器
進(jìn)入 bea/user_projects/domains/testDomain/ 目錄
鍵入
./startWebLogic.sh
建立被管服務(wù)器 1
這里的被管服務(wù)器 1 也就是 mServer1 是和管理服務(wù)器在同一臺機(jī)器上的,這里我試過了,我們不需要再進(jìn)行什么配置,只需要啟動它就行了,啟動被管服務(wù)器 1 的命令如下:
進(jìn)入 bea/user_projects/domains/testDomain/ 目錄
鍵入 ./startManagedWebLogic.sh mServer1 http://10.21.18.40:7001
這樣的寫法保證了被管服務(wù)器在啟動的時(shí)候向管理服務(wù)器報(bào)告,后面的這個(gè)地址就是管理服務(wù)器的地址了
當(dāng)然,由于是在同一臺機(jī)器上,所以你完全可以這樣寫: ./startManagedWebLogic.sh mServer1 就可以了。
建立被管服務(wù)器 2
被管服務(wù)器 2 和管理服務(wù)器在不同的機(jī)器上,所以你還需要在這臺機(jī)器上配置一個(gè)域,域的名字要和剛才建立的域名字一致(不一致會怎么樣我也沒試過,誰有時(shí)間試一下: > )
建立域的過程前三步和上面講的一樣
第四步,配置管理服務(wù)器的時(shí)候,請把這個(gè)域的管理服務(wù)器的名字設(shè)置為 mServer2 。
這里需要解釋一下,在每臺機(jī)器上建立域的時(shí)候都需要有一個(gè)管理服務(wù)器,以確保整個(gè)域的管理服務(wù)器當(dāng)?shù)舻臅r(shí)候,每臺機(jī)器自己都是還可以運(yùn)行的,這里我們是把 mServer2 作為了 41 這臺機(jī)器的管理服務(wù)器,同時(shí)它也是 adminServer 的被管理服務(wù)器。
從第五步開始,都不需要配置,直接回車就可以了。
配置完成后,用下面的命令啟動 mServer2 :
./startManagedWebLogic.sh mServer2 http://10.21.18.40:7001
小結(jié)
到目前為止,一個(gè)包含一個(gè)管理服務(wù)器和 2 個(gè)被管服務(wù)器以及一個(gè) cluster 的域就配置完成了,你可以簡單試驗(yàn)一下它提供的功能,打開管理服務(wù)器的管理控制臺:
http://10.21.18.40:7001/console
首先,在這個(gè)管理控制臺上你可以監(jiān)控和管理 mServer1 和 mServer2 ,選擇 mServer2
進(jìn)入
Monitoring
頁面
General
子頁面,如果顯示如下,就說明配置是正確的了:
進(jìn)入
Monitoring
頁面的
Performance
子頁面,就可以看到
mServer2
的運(yùn)行情況了。
將一個(gè) web 應(yīng)用上傳上去,將其部署在 testCluster 這個(gè)集群上
部署成功后,分別在 mServer1 和 mServer2 上訪問剛才部署的 web 應(yīng)用,應(yīng)該都是可以訪問的。
建立代理服務(wù)器
建立了集群以后,集群的負(fù)載平衡功能還需要代理( proxy )來實(shí)現(xiàn)。目前我所知道的 Weblogic 支持幾種類型的代理:
????????? HttpClusterServlet 的代理,這個(gè)代理是 weblogic 公司編寫的一個(gè) servlet ,把它部署在一個(gè) weblogic 服務(wù)實(shí)例上,就可以實(shí)現(xiàn)負(fù)載平衡和容錯了。
????????? IIS 代理,用 IIS 作為前段的 http 的代理,需要往 IIS 中裝一個(gè)插件
????????? Netscape/iPlanet 代理,需要裝插件
????????? Apache 代理,用 Apache 作為 http 代理,需要裝插件。推薦使用
當(dāng)然,實(shí)際應(yīng)用中可能更加復(fù)雜,可能會這樣:
使用 HttpClusterServlet 作為代理
建立代理服務(wù)器實(shí)例
代理服務(wù)器 proxyServer 實(shí)例實(shí)際上和 mServer1 一樣,都是屬于 testDomain 域的一個(gè)被管服務(wù)器,回頭看建立管理服務(wù)器的第五步,在那個(gè)時(shí)候配置被管服務(wù)器的時(shí)候如果也把 proxyServer 加上的話,現(xiàn)在直接啟動就可以了。
當(dāng)然也可以在管理服務(wù)器的管理控制臺上新建這個(gè) server 。
在管理服務(wù)器的控制臺上,左邊的菜單中 Server 上單擊左鍵,選擇“新建一個(gè) Server ”
然后,在出現(xiàn)的頁面中設(shè)置這個(gè)
server
的名字為
proxyServer
,監(jiān)聽端口為
7004
,如圖:
點(diǎn)擊應(yīng)用,這個(gè)服務(wù)就配置完成了。
配置結(jié)束后,在后臺使用 ./startManagedWebLogic.sh proxyServer 來啟動代理服務(wù)器。
部署代理 webapp
建立一個(gè)標(biāo)準(zhǔn)的 web 應(yīng)用,這個(gè)應(yīng)用里面什么也不用有,只需要配置 web.xml 和 weblogic.xml 就可以了。 web.xml 和 weblogic.xml 代碼如下:
web.xml
<!-- DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc. //DTD Web Application 1.2//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" --> <web-app> <servlet> ? <servlet-name>HttpClusterServlet</servlet-name> ??? <servlet-class> ????? weblogic.servlet.internal.HttpClusterServlet ??? </servlet-class> ? <init-param> ??? <param-name>defaultServers</param-name> ??? <param-value>
??????
??? </param-value> ? </init-param> ? <init-param> ??? <param-name>DebugConfigInfo</param-name> ??? <param-value>ON</param-value> ? </init-param> </servlet> <servlet-mapping> ? <servlet-name>HttpClusterServlet</servlet-name> ? <url-pattern>/</url-pattern> </servlet-mapping> <servlet-mapping> ? <servlet-name>HttpClusterServlet</servlet-name> ? <url-pattern>*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> ? <servlet-name>HttpClusterServlet</servlet-name> ? <url-pattern>*.htm</url-pattern> </servlet-mapping> <servlet-mapping> ? <servlet-name>HttpClusterServlet</servlet-name> ? <url-pattern>*.html</url-pattern> </servlet-mapping> </web-app> |
weblogic.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.1//EN" "http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd"> <weblogic-web-app> ? <context-root>/</context-root> </weblogic-web-app> |
將這個(gè)應(yīng)用打包成
war
文件,上傳到管理服務(wù)器上,然后部署在
proxyServer
上面。
部署成功后的頁面:
測試
打開一個(gè)瀏覽器,在其中輸入:
http://10.21.18.40:7004/abc.jsp? __WebLogicBridgeConfig
jsp 的名字隨便輸入可以了,如果看到如下頁面,就說明配置成功了:
然后再做一個(gè) web 應(yīng)用,里面放兩個(gè) servlet , jsp 啥的,部署在集群上面,比如說部署成功了以后應(yīng)用叫做 testApp ,其中有一個(gè)頁面叫 index.jsp
鍵入如下的地址:
http://10.21.18.41:7001/testApp/index.jsp
http://10.21.18.40:7003/testApp/index.jsp
http://10.21.18.40:7004/testApp/index.jsp
應(yīng)該都是可以運(yùn)行的,請注意第一、二個(gè)地址是單獨(dú)訪問集群中的機(jī)器的,而第三個(gè)地址是通過了代理的。
你可以做一個(gè)這樣的測試,在 index.jsp 里面寫一句 System.out.println(“ok!!!”);
然后再 http://10.21.18.40:7004/testApp/index.jsp 這個(gè)地址上多刷幾次,到 mServer1 和 mServer2 的控制臺去看的話應(yīng)該兩邊都有輸出。
使用 apache 作為代理
安裝代理插件
在 weblogic 安裝目錄下面,找到 bea/weblogic81/server/bin 目錄,下面有兩個(gè)文件:
mod_wl_20.so
mod_wl128_20.so
分別是對應(yīng)不同版本的 apache ,這里用來測試的是 2.0 版的 apache ,所以使用了第一個(gè)文件。
安裝過程如下:
????????? 把 mod_wl_20.so 這個(gè)文件 copy 到 apache 安裝目錄下的 modules 目錄中
????????? 在 apache 的 httpd.conf 文件中,加入這樣一句:
LoadModule weblogic_module modules/mod_wl_20.so
表示在啟動 apache 的時(shí)候加載 weblogic 的插件
????????? 在 apache 的 httpd.conf 文件中,加入如下代碼:
<IfModule mod_weblogic.c>
? WebLogicCluster 61.152.114.141:7003,61.152.114.142:7001
? MatchExpression *.jsp
? MatchExpression *.do
</IfModule>
第一行表示集群的各個(gè)成員地址
下面幾行可以寫出要代理的 url 后綴。
注:如果 weblogic 這邊沒有集群,只有一臺機(jī)器的話,也是可以配置 apache 插件的,這樣寫:
測試
啟動 apache ,訪問 http://apachehost:part/testApp/index.jsp 應(yīng)該可以看到正確的響應(yīng)。其中 apachehost 和 part 視 apache 的配置而定。
使用 iis 作為代理
安裝插件
IIS 的 weblogic 插件安裝非常的簡單:
????????? 找到 bea/weblogic81/server/bin 目錄下的 iisproxy.dll ,拷貝到一個(gè) IIS 能夠訪問到的目錄,比如 WINNT\system32\inetsrv\
????????? 建立兩個(gè)文本文件: iisproxy.ini 和 iisproxy.log
????????? 右鍵單擊某個(gè)站點(diǎn),打開屬性頁面
????????? 點(diǎn)擊下面的配置,界面如下:
????????? 點(diǎn)擊添加,在其中可執(zhí)行文件選擇 iisproxy.dll ,擴(kuò)展名錄入 *.jsp ,如圖:
????????? 配置完畢后啟動 iis 的這個(gè)站點(diǎn)
測試
訪問 http://iishost:part/testApp/index.jsp 應(yīng)該可以看到正確的響應(yīng)。其中 iishost 和 part 視 IIS 的配置而定。
簡單測試
想要進(jìn)行一些性能方面的測試,可以使用 apache 帶的 apacheBench 工具,這個(gè)工具在 apache 安裝目錄下的 bin 目錄下有( ab.sh ),用法如下:
ab –c 200 –n 60 url
含義是請求 url 這個(gè)地址 200 次, 60 次的并發(fā)。
以下是我做的一些簡單測試的結(jié)果的一部分:
單獨(dú)訪問集群中一臺機(jī)器的時(shí)候: |
Percentage of the requests served within a certain time (ms) ? 50%? 13734 ? 66%? 17046 ? 75%? 33234 ? 80%? 34000 ? 90%? 34343 ? 95%? 34437 ? 98%? 34515 ? 99%? 34515 ?100%? 34546 (longest request) |
使用 HttpClusterServlet 代理訪問集群的情況: |
Percentage of the requests served within a certain time (ms) ? 50%? 18234 ? 66%? 19187 ? 75%? 19718 ? 80%? 19921 ? 90%? 21296 ? 95%? 22203 ? 98%? 22593 ? 99%? 22640 ?100%? 22703 (longest request) |
使用 apache 代理訪問集群的情況: |
Percentage of the requests served within a certain time (ms) ? 50%?? 2000 ? 66%?? 2578 ? 75%?? 3421 ? 80%?? 3421 ? 90%?? 3625 ? 95%?? 3640 ? 98%?? 3640 ? 99%?? 3640 ?100%?? 3656 (longest request) |
使用 iis 代理訪問集群的時(shí)候: |
出錯, 200 次請求當(dāng)中有 190 次失敗:( 可能是因?yàn)?/span> iis 在我的機(jī)器上的原因 |
另外,在測試的時(shí)候檢測
mServer1
和
mServer2
的吞吐量(
Throughput
),也是在使用
apache
的時(shí)候最高。大家也可以多做一些各個(gè)方面的測試,很有意思的。
注:由于上傳圖片太麻煩了,所以本文的圖片我都刪除了,如果要看完整的版本,可以下載word版本的文件。本文下載地址:
不知道為什么,原來上傳的附件不見了,以下是我在dev2dev上發(fā)的帖子,word版的資料在上面可以下載
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=23915&messageID=164966#164966
blogjava下載:
http://www.aygfsteel.com/Files/lqsun/linux環(huán)境weblogic81集群配置.rar環(huán)境weblogic81集群配置.rar
posted on 2005-06-16 10:32 Boris-Java 閱讀(4066) 評論(7) 編輯 收藏 所屬分類: weblogic