单机环境构建WebSphere Application Server Community Edition V2.1.1集群环境

来源:互联网 发布:用户画像 大数据 编辑:程序博客网 时间:2024/05/06 16:18

单机环境构建WebSphere Application Server Community Edition V2.1.1集群环境

1  引言

本文主要通过示例介绍WAS CE V2.1.1multiple server instancescluster的配置。主要参考了Configuringmultiple server instances[1] 和为WAS CEV1.0.1构建集群环境[2]

2  环境配置

系统环境:windows xp sp2, java version 1.6.0

工具

链接

备注

wasce setip-2.1.1.1-win.exe

https://cs.opensource.ibm.com/frs/?group_id=1878

wasce server

wasce-samples-2.1.1.1.zip

https://cs.opensource.ibm.com/frs/?group_id=1878

配置示例,含cluster配置

apache http server v2.x

http://httpd.apache.org/

redirector & load balancer,下载时注意mod_jkapache版本要匹配

mod_jk.so

http://tomcat.apache.org/connectors-doc/

 

3  配置WAS CE多实例服务

3.1        安装运行WAS CE默认服务

安装WAS CE,运行安装目录<WASCE_HOME>/bin/geronimo.batrun启动默认服务。默认服务的配置信息参见<WASCE_HOME>/var/config的各文件。简便起见我们将默认服务称为instance1

      NoteWASCE启动时需要使用多个端口,请确保这些端口未被占用。WAS CE占用的端口信息请参见var/config/config-substitutions.properties。查看系统端口使用情况:

        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目录下运行:

        setGERONIMO_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,在<modulename="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

打开server1administratorconsole,在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]    WebSphereApplication Server Community Edition V1.0.1 构建集群环境

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

 

 

原创粉丝点击