單機環境構建WebSphere Application Server Community Edition V2.1.1集羣環境

netstat -an -o查看端口列表

3.2         創建新的服務實例

3.2.1     新服務實例(instance2)的配置

WAS CE的服務配置信息都在var目錄下,創建一個新的服務實例步驟如下:

1.        <WASCE_HOME>下創建一個文件夾(本例使用的是instance2)保存新實例的服務器配置信息。

2.        <WASCE_HOME>/var目錄copy<WASCE_HOME>/instance2目錄下

3.        設定instance2的服務器配置信息:

打開instance2/var/config/config-substitutions.properties。修改PortOffset,本例中設定PortOffset=10。這樣instance2的所有端口都會+10,如web服務端口變成了8090instance1的爲默認端口8080)。同時注意AJPPort,這個端口是下面配置分發服務器時所需要的。

設置portOffset

3.2.2     啓動instance2

打開cmd<WASCE_HOME>/bin目錄下運行:

        set GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=<path_of_instance2>

注意< path_of_instance2>instance2<WASCE_HOME>中的相對路徑。

運行<WASCE_HOME>/bin/geronimo.bat run啓動instance2服務。

爲了運行方便,可以寫一個bat文件放在bin目錄下:

@REM start instance2.bat

set GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=instance2

geronimo.bat run

通過上述方法可以創建多個server instance

注:停止instance2服務請使用 shutdown.bat --port [1099 + portOffset],本文使用的是shutdown.bat --port 1109。

本例配置完成後訪問instance1url爲:http://localhost:8080instance2http://localhost:8090 Administrator console的默認用戶名和密碼爲:system/manager

4  配置WAS CE V2.1.1集羣服務

wasce-samples-2.1.1.1.zip中是有關WAS CE的配置實例,在applications/tomcat-cluster中是有關cluster服務器的配置。

4.1         設置WAS CE服務器配置,指定jvmRouter標識

本例是在單機環境配置的WAS CE服務器,一下設計的server1指的是instance1服務,server2instance2服務。修改server1的配置文件var/config/config.xml,在<module name="org.apache.geronimo.configs/tomcat6/2.1.3/car">下添加TomcatEngineinitParams

<gbean name="TomcatEngine">
<attribute name="initParams">
     name=Geronimo
             jvmRoute=server1
</attribute>
</gbean>

 

 

 

 

 

 

 

 

同樣修改server2config.xmljvmRouter=server2

4.2         server1server2上分別安裝應用程序

打開samples下的tomcat-cluster,將servlet-examples-cluster-server(1|2)部署到服務器上。首先修改servlet-examples-cluster-plan.xml將其中的<xx.yy.zz.aa>修改爲127.0.0.1

打開server1administrator console,在Deploy New選項下,指定warplan.xml的路徑,安裝程序。

Note:因爲本例的server1server2是兩個instance,需要額外修改servlet-examples-cluster-plan.xml中的<dep:artifactId>servlet-examples-cluster-server1</dep:artifactId>,否則部署的時候會提示已存在。

修改上述plan中的dep:artifactIdservlet-examples-cluster-server2,將程序同樣部署到server2上。

現在可以通過http://localhost:8080/servlet-examples-cluster/http://localhost:8090/servlet-examples-cluster/查看運行情況:

運行結果

4.3         安裝Apache Http Server + mod_jk


#
# The following should be added to the end of your LoadModule list, if it
# does not exist.
#
LoadModule jk_module modules/mod_jk.so
 
#
# The following can be added anywhere after the above LoadModule statement.
#
<IfModule mod_jk.c>
    JkWorkersFile       conf/workers.properties
    JkLogFile           logs/mod_jk.log
    JkLogLevel          info
    JkLogStampFormat    "[%a %b %d %H:%M:%S %Y] "
    JkOptions           +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkRequestLogFormat  "%w %V %T"
 
    <Location /*/WEB-INF/*>
        AllowOverride None
        deny from all
    </Location>
 
    <Location /*/META-INF/*>
        AllowOverride None
        deny from all
    </Location>
 
    # forward ALL web requests to our mod_jk loadbalancer workers
    JkMount /* loadbalancer
 
</IfModule>
 


 

 

workers.properties拷貝到Apache安裝目錄下的conf目錄中,並根據server1server2IP地址和AJPPort作相應的修改,如下例所示:

worker.list=loadbalancer,status
worker.maintain=60
 
worker.server1.type=ajp13
worker.server1.host=127.0.0.1
worker.server1.port=8009
worker.server1.socket_timeout=60
worker.server1.socket_keepalive=true
worker.server1.lbfactor=1
 
worker.server2.type=ajp13
worker.server2.host=127.0.0.1
worker.server2.port=8019
worker.server2.socket_timeout=60
worker.server2.socket_keepalive=true
worker.server2.lbfactor=1
 
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=server1,server2
worker.loadbalancer.sticky_session=1
worker.status.type=status


 

注意:如果WAS CE集羣中有除了server1server2之外,還有jvmRoute屬性爲xyz的成員,則需要在loadbalancer管理的worker列表中加入xyz

worker.loadbalancer.balanced_workers=server1,server2,xyz

並且相應的加入對該成員的worker描述信息。

當然需要從集羣中刪除某個成員的時候,則需要從worker.loadbalancer.balanced_workers的取值列表中刪除該成員的jvmRoute值,並且刪除對該成員的worker描述信息。

通過設置worker.server1.lbfactorworker.server2.lbfactor的值,可以根據server1server2服務器性能的差異,設置server1server2負載用戶請求的權重:數值越大,分配到的用戶請求數就越多。

4.4         實驗結果

在瀏覽器中通過Apache訪問示例程序的URL(本文apache2.2的端口默認爲80)爲:

http://localhost/servlet-examples-cluster/servlet/SessionExample

不斷刷新頁面可以看到session dataServer1Server2之間切換。

Reference:

   [1]     Configuring multiple server instances

http://publib.boulder.ibm.com/wasce/V2.1.0/en/configuring-multiple-server-instances.html

   [2]     WebSphere Application Server Community Edition V1.0.1 構建集羣環境

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0606_zhangsong/index.html

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章