一、准备
下载Jboss 5.1.0, 配置JBOSS_HOME, JAVA_HOME环境变量,并把$JBOSS_HOME/bin添加到PATH环境变量中。本文要在两台服务器——IP分别为10.123.76.103和10.123.76.104——上部署两台Jboss应用服务器。 此外在第三台服务器上安装Apache 2.2服务器,并配置环境变量APACHE_HOME
二、配置
1) 复制依赖包和建立相关目录
cp jboss-5.1.0.GA/server/all/lib/hibernate-jbosscache2.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jbosscache-core.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jbosscache-pojo.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jgroups.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/avalon-framework.jar $JBOSS_HOME/server/default/lib/
cp jboss-5.1.0.GA/server/all/lib/jacorb.jar $JBOSS_HOME/server/default/lib/
cp -rf jboss-5.1.0.GA/server/all/deploy/cluster $JBOSS_HOME/server/default/deploy/
mkdir $JBOSS_HOME/server/default/deploy-hasingleton
cp jboss-5.1.0.GA/server/all/deploy/quartz-ra.rar $JBOSS_HOME/server/default/deploy/
cp jboss-5.1.0.GA/server/all/deploy/mail-ra.rar $JBOSS_HOME/server/default/deploy/
2) 打开$JBOSS_HOME/server/default/deploy/messaging/messaging-service.xml文件,将
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>
改为
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:1}</attribute>
另一台服务器配置改为:
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:2}</attribute>
更多服务器也如此设置。需要注意的就是不同服务器节点的这个ServerPeerID数值不能重复.
注:如果messaging文件夹不存在,则先从$JBOSS_HOME/all中拷贝相关的文件
cp -rf jboss-5.1.0.GA/server/all/deploy/messaging $JBOSS_HOME/server/default/deploy/
cp jboss-5.1.0.GA/server/all/deploy/jms-ra.rar $JBOSS_HOME/server/default/deploy/
3) 打开 ${JBOSS_HOME}/server/default/deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml文件,去掉<property name="useJk">false<property>附近的注释,并改为
<!-- 是否使用mod_jk 连接器 -->
<property name="useJK">true</property>
<!-- 是否使用粘性session, true表示粘性-->
<property name="useSessionPassivation">true</property>
<property name="passivationMaxIdleTime">-1</property>
<property name="passivationMinIdleTime">-1</property>
注:在这个配置文件中可以修改session的复制模式.详细请参考jboss官方文档
4) 打开需要做集群的Java Web应用的web.xml 文件,在</web-app>之前添加 <distributable/>标记
如果需要对所有的Java Web应用做集群,那么可以在$JBOSS_HOME/server/default/deployers/jbossweb.deployer/web.xml里添加<distributable/>标记
5) 打开$JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml , 将
<Engine name="jboss.web" defaultHost="localhost">
改为
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
另一台机器配置改为
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">
此外, 给<Connector protocol ="AJP/1.3">..</Connector>添加属性connectionTimeout="60000"
更多服务器也同样配置。 需要注意,jvmRoute的值不能重复
ps: 如果你在本地部署两台Jboss服务器,你需要修改配置文件 $JBOSS_HOME/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml , 让监听的端口错开。
如果希望集群通过指定的IP进行通讯,打开$JBOSS_HOME\server\all\deploy\cluster\jgroups-channelfactory.sar\META-INF\jgroups-channelfactory-stacks.xml, 修改为
<TCPPING timeout="3000" initial_hosts="${192.168.1.104[7810],192.168.1.106[7810]}" port_range="1" num_initial_members="3"/>
其中104是本机Node的ip地址,106是另一个机器Node的ip地址
另一台机器改成:
<TCPPING timeout="3000" initial_hosts="${192.168.1.106[7810],192.168.1.104[7810]}" port_range="1" num_initial_members="3"/>
更多的服务器也如是配置
6) 为Apache配置mod_jk连接器
打开$APACHE_HOME/conf/httpd.conf, 添加如下配置:
# mod_jk
LoadModule jk_module modules/mod_jk.so
#
# Configure mod_jk
#
#
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
# JkMount /* loadbalancer
在$APACHE_HOME/conf目录下建立workers.properties文件,内容为:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Node1
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node1.port=6009
worker.node1.host=10.123.76.103
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.socket_timeout=60
worker.node1.connection_pool_timeout=60
worker.node1.ping_mode=A
worker.node1.ping_timeout=20000
worker.node1.connect_timeout=20000
# Define Node2
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node2.port=7009
worker.node2.host=10.123.76.104
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.socket_timeout=60
worker.node2.connection_pool_timeout=60
worker.node2.ping_mode=A
worker.node2.ping_timeout=20000
worker.node2.connect_timeout=20000
# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=false
# Status worker for managing load balancer
worker.status.type=status
注意: jboss服务器的IP和连接端口必须与jbo中的声明一致.
在$APACHE_HOME/conf 目录下创建uriworkermap.properties,内容为:
# 可以将一些静态资源(比如gif,jpg,css文件等) 放在apache的发布目录下,这样当客户端需要获取这些资源时,无需到jboss服务器拿,从而提高响应速度,减轻jboss应用服务器的压力
!/*.gif=loadbalancer
!/*.jpg=loadbalancer
!/*.png=loadbalancer
!/*.css=loadbalancer
!/*.js=loadbalancer
!/*.htm=loadbalancer
!/*.html=loadbalancer
!/*.ico=loadbalancer
/*=loadbalancer
三、测试
编写一个jsp页面,该jsp页面会在session中记录每个浏览器访问该页面的次数。通过访问两台jboss应用服务器来检查session有没有被复制, 并尝试通过apache前端服务器进行访问
后记
如果sticky_session的值为true,就表示会话具有“粘性”。“粘性”意味着当用户通过浏览器A与jboss 1开始了一个会话后,以后用户从浏览器A中发出的请求只要处于同一个会话中,负载平衡器就会始终让 Tomcat 1 来处理请求。直观地理解,可以认为一个会话始终与集群系统中的一个Jboss服务器"粘"在一起。当sticky_session的值为 true 时,集群系统不会进行会话复制。如果希望集群系统能进行会话复制,从而使得一个浏览器能与多个 Tomcat 服务器展开同一个会话,则应该把 sticky_session设为false(同时把 ${JBOSS_HOME}\server\default\deployers\jbossweb.deployer\META-INF\war-deployers-jboss-beans.xml中的useSessionPassivation属性设置为false )。sticky_session的默认值为true。
当sticky_session设为false时,sticky_session_force对集群系统没有什么影响,通常可以把它设为默认值 false。当 sticky_session 设为 true 时,则建议把sticky_session_force也设为true。
另外,粘性session的配置实际上比较消耗资源,不过某些要求稳定性十分高的系统,就必须这么做,而且远远要比以上的纠错措施严格得多,银行系统尤为明显!通常客户使用银行客户端的时候总是抱怨处理太慢了,确实是牺牲了速度、资源,维持了稳定、可靠、安全。
假定sticky_session设为true,当浏览器已经与集群系统中的Jboss 1服务器“粘”在一起,展开了会话后,如果这个Jboss 1服务器由于异常而终止,此时会出现什么情况呢?如果sticky_session_force为true,那么服务器端会向客户端返回状态代码为500的错误。如果 sticky_session_force 为 false,那么负载平衡器会把请求转发给集群系统中的其他Jboss 2服务器,假如在Jboss 2服务器中不存在同一个会话的信息,则当Web组件试图访问会话中的有关数据时可能会导致异常。
相关推荐
在Windows环境下部署JBOSS 5.1.0作为Web应用服务器,涉及到一系列配置步骤,包括集成Spring框架、设置环境变量、修改默认配置以及配置SSL安全连接。以下是对这些步骤的详细说明: 1. **下载JBOSS-5.1.0.GA-jdk6.zip...
Apache2.2+JBOSS 5 集群配置主要涉及在Linux环境下构建高可用性和负载均衡的服务器集群,以提升应用服务的稳定性和处理能力。以下是详细的知识点: 1. **JBoss集群架构**: JBoss 集群可以采用两种架构:客户端...
《JBoss7集群配置方案详解》 JBoss7作为一款广泛应用的企业级Java应用服务器,其集群配置对于提高系统可用性和可扩展性至关重要。本篇主要介绍两种集群配置方案:JBoss7+Apache集群以及Solr集群,以实现高效、稳定...
在“jbos-5.1.0.GA.zip.txt”这个文件中,可能包含的是JBoss AS 5.1.0.GA的详细安装指南、配置文件示例或使用说明等内容,这些文档将有助于理解和配置该应用服务器。下载并解压后,用户可以按照提供的文档步骤进行...
这个是转载Bromon原创的重量级:jboss 4.0.2 集群 配置
jboss-5.1.0.GA-jdk6的部分part2,另外还有part1需要一起下载之后,再解压使用,该软件均从官方网站下载,请放心使用。
【JBoss422集群配置指南】 JBoss4.2.2是一款历史悠久的企业级Java应用服务器,它在Java EE环境中提供了全面的服务支持,包括Servlet、JSP、EJB等。集群配置是提升JBoss服务器可扩展性和高可用性的重要手段,尤其...
单个只能60所以分了三块
【JBoss4.2.2集群配置指南(02)】是针对JBoss应用服务器4.2.2版本的一个深入教程,旨在帮助初学...这个过程中,你将了解到如何配置集群参数、如何测试集群功能,以及如何处理可能出现的问题,提升你的系统性能优化策略。
JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
jboss官网经常下载不了,可尝试下这个资源分三个压缩包,请分别下载解压
【JBoss7集群配置详解】 JBoss7是一个流行的开源应用服务器,它提供了两种运行模式:独立模式(standalone)和域模式(domain)。独立模式适合简单的单服务器部署,而域模式则更适合大型分布式项目的部署,因为它...
该版本的 Getting Started Guide(起步指南)详细介绍了如何安装、配置及管理 JBoss 5.1.0.GA。 #### 二、JBoss Server 快速巡览 - **服务器结构**:JBoss 5.1.0.GA 的结构设计围绕着模块化和可扩展性进行。 - **...
- **应用服务器配置变更**:介绍了JBoss 5.1.0.GA版本中应用服务器配置的变化,包括新的配置选项、默认值更改等。 - **管理**:涵盖了关于管理工具、接口等方面的信息。 - **应用程序**: - **EAR作用域**:解释了...
### jboss-5.1.0.GA配置指南知识点概览 #### 1. JBoss企业应用平台概述 - **JBoss企业应用平台5.0**:本版本为JBoss企业应用平台的一个重要版本,提供了丰富的功能和服务,适用于构建、部署和管理企业级Java应用...
jboss-5.1.0.GA-jdk6的部分part1,另外还有part2(http://download.csdn.net/detail/shyaideguo/5160168)需要一起下载之后,再解压使用,该软件均从官方网站下载,请放心使用。
jboss-5.1.0.GA.zip.7z1.part
在配置Jboss服务器时,需要指定Jboss Home和Attach Classes…,其中Jboss Home是Jboss服务器的安装路径,而Attach Classes…是Jboss服务器的类路径。在这里,我们需要将Jboss服务器的安装路径和类路径正确地指定,...
jboss-5.1.0.GA.zip.7z2.part
【JBoss集群配置详解】 JBoss是一个开源的企业级应用服务器,它支持Java EE规范,提供了对Web服务和SOA架构的支持。在高可用性、可扩展性和性能需求较高的环境中,通常会采用JBoss集群来部署应用程序。集群可以将...