您的位置:首页 > 其它

JBOSS 5.0.0GA的集群搭建

2009-10-16 11:09 232 查看
apache2.2.4mod_jk-apache-2.2.4.sojboss-5.1.0.GA(jboss-5.1.0.GA-jdk6.zip) 相关安装文件自行下载。为了体现出负载均衡的效果,可以在机器中安装虚拟机Vmware来展示效果。本人使用Vmware5.0操作,虚拟机中同样安装winxp专业版。主机和客机之间可通过飞秋软件来传递文件。为了避免与本机软件冲突,建议在虚拟机中安装apache,安装完成后,需启动http服务。方法如下:双击“本地连接”=》属性=》高级=》设置=》高级=>选择“本地连接”,点击右侧“设置”=》选择“WEB服务器(HTTP)”确定即可。如果局域网中使用代理服务器,注意在主机的“局域网设置=》代理服务器”设置中添加例外地址。首先,编辑 apache的conf/httpd.conf 文件,保证apache加载jk_mod文件,在文件中加入下面的代码Include conf/mod-jk.conf 然后在apache的conf文件夹中创建一个新的文件,名字要和上面的 mod-jk.conf一致,在文件中写入下面的代码: # Load mod_jk module# Specify the filename of the mod_jk libLoadModule jk_module modules/mod_jk.so # Where to find workers.propertiesJkWorkersFile conf/workers.properties# Where to put jk logsJkLogFile logs/mod_jk.log # Set the jk log level [debug/error/info]JkLogLevel info # Select the log formatJkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicates to send SSK KEY SIZEJkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormatJkRequestLogFormat "%w %V %T" # Mount your applicationsJkMount /application/* loadbalancer # You can use external file for mount points.# It will be checked for updates each 60 seconds.# The format of the file is: /url=worker# /examples/*=loadbalancerJkMountFile conf/uriworkermap.properties # Add shared memory.# This directive is present with 1.2.10 and# later versions of mod_jk, and is needed for# for load balancing to work properlyJkShmFile logs/jk.shm # Add jkstatus for managing runtime data<Location /jkstatus/> JkMount status Order deny,allow Deny from all Allow from 127.0.0.1</Location> 这里注意这句话,要把你下载的mod_jk的文件拷贝到 apache安装目录的modules/下 名字要和mod_jk.so一致LoadModule jk_module modules/mod_jk.so 然后,我们在apache安装目录下的conf/创建uriworkermap.properties文件,来配置哪些请求由JK处理哪些请求让APACHE处理,再文件中加入下面的代码 /jmx-console=loadbalancer/jmx-console/*=loadbalancer/web-console=loadbalancer/web-console/*=loadbalancer 然后在apache安装目录下conf/workers.properties加入 负载均衡的配置代码 # Define list of workers that will be used# for mapping requestsworker.list=loadbalancer,status# Define Node1# modify the host as your host IP or DNS name.worker.node1.port=8009worker.node1.host=192.168.1.188 worker.node1.type=ajp13worker.node1.lbfactor=1worker.node1.cachesize=10# Define Node2# modify the host as your host IP or DNS name.worker.node2.port=8009worker.node2.host= 192.168.1.100worker.node2.type=ajp13worker.node2.lbfactor=1worker.node2.cachesize=10# Load-balancing behaviourworker.loadbalancer.type=lbworker.loadbalancer.balance_workers=node1,node2worker.loadbalancer.sticky_session=1#worker.list=loadbalancer# Status worker for managing load balancerworker.status.type=status上述代码中: port是配置JBoss AJP所监听的端口号,可以在%JBoss_Home%\server\default\deploy\jbossweb.sar\server.xml 看到,如下<!-- A AJP 1.3 Connector on port 8009 --><Connector port="8009" address="${jboss.bind.address}" emptySessionPath="true" enableLookups="false" redirectPort="8443" protocol="AJP/1.3"/> host定义JBoss所在机器的IP地址 lbfactor定义该节点的权重,数字越大分发到该节点的request越多 cachesize是servlet线程池的大小(对session复制有影响) 到此 JK_mod 的配置就完成了,下面配置JBOSS的,这里注意这里文档说的有些问题,因为JBOSS-5.0.0GA的目录有些变化文档上说的是下面的路径JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml 但正确的应该是JBOSS_HOME/server/all/deploy /jbossweb.sar/server.xml 配置修改如下:注意这里面的jvmRoute="node1"的名字要和jk_mod里面的一致否则会有问题<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">... ...</Engine> 到这里JBOSS的基本配置就完成了,JBOSS-5.0.0GA的session共享是默认的配置的只要在你的APPLICATION工程中加入下面的代码就可以<?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <distributable/> <!-- ... --></web-app> 这里还要注意一点:是JMS的ServerPeerId不能一样,否则启动时会报错,但不影响集群的正常运行(除JMS外)要修改JBOSS_HOME/server/all/deploy/messaging/messaging-service.xml文件中的ID,要求是数字并且保证集群中每个JBOSS的ID不一样<!-- The unique id of the server peer - in a cluster each node MUST have a unique value - must be an integer --> <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>启动的JBOSS run -c all -b 192.168.2.100 注意IP地址要和JK_MOD配置的一致 我把我写的简单的测试放入到附件中(将test文件夹放入jboss-5.1.0.GA\server\all\deploy\ROOT.war路径下即可),测试的时候先打开一个node1 做登陆,然后启动第二个node2 然后停掉node1 还是登陆状态 http://localhost/test/index.jsp。JBOSS的配置 缺少了集群的hot-deploy 因为JBOSS5里面已经没有farm service 了,找了很多文档,没有找到解决的办法,希望和大家共同研究。 本文出自 “云计算与大数据_jxwpx” 博客,请务必保留此出处http://jxwpx.blog.51cto.com/15242/213145
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: