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服務端口變成了8090(instance1的爲默認端口8080)。同時注意AJPPort,這個端口是下面配置分發服務器時所需要的。
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。
本例配置完成後訪問instance1的url爲:http://localhost:8080,instance2:http://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服務,server2爲instance2服務。修改server1的配置文件var/config/config.xml,在<module name="org.apache.geronimo.configs/tomcat6/2.1.3/car">下添加TomcatEngine的initParams:
<gbean name="TomcatEngine">
<attribute name="initParams">
name=Geronimo
jvmRoute=server1
</attribute>
</gbean>
|
同樣修改server2的config.xml:jvmRouter=server2
4.2 在server1和server2上分別安裝應用程序
打開samples下的tomcat-cluster,將servlet-examples-cluster-server(1|2)部署到服務器上。首先修改servlet-examples-cluster-plan.xml將其中的<xx.yy.zz.aa>修改爲127.0.0.1。
打開server1的administrator console,在Deploy New選項下,指定war和plan.xml的路徑,安裝程序。
Note:因爲本例的server1和server2是兩個instance,需要額外修改servlet-examples-cluster-plan.xml中的<dep:artifactId>servlet-examples-cluster-server1</dep:artifactId>,否則部署的時候會提示已存在。
修改上述plan中的dep:artifactId爲servlet-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目錄中,並根據server1和server2的IP地址和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集羣中有除了server1和server2之外,還有jvmRoute屬性爲xyz的成員,則需要在loadbalancer管理的worker列表中加入xyz:
worker.loadbalancer.balanced_workers=server1,server2,xyz
並且相應的加入對該成員的worker描述信息。
當然需要從集羣中刪除某個成員的時候,則需要從worker.loadbalancer.balanced_workers的取值列表中刪除該成員的jvmRoute值,並且刪除對該成員的worker描述信息。
通過設置worker.server1.lbfactor和worker.server2.lbfactor的值,可以根據server1和server2服務器性能的差異,設置server1和server2負載用戶請求的權重:數值越大,分配到的用戶請求數就越多。
4.4 實驗結果
在瀏覽器中通過Apache訪問示例程序的URL(本文apache2.2的端口默認爲80)爲:
http://localhost/servlet-examples-cluster/servlet/SessionExample
不斷刷新頁面可以看到session data在Server1和Server2之間切換。
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