最近项目组需要研究下Jboss7的集群等新特性,这里把Jboss7集群配置以及session复制的配置记录下,以备忘.
看了Jboss7的官方文档,以及一些资料,由于E文水平有限,理解的不是很透彻,不过幸好在同事的帮助下终于完成配置且测试成功了,这里非常感谢...
Jboss7的集群方式一般提供了两种方式:
1.Standalone模式当中的standalone-ha.xml,这种适合集群的机器不多或者单个服务器的环境.
2.Domain模式,这种模式可以在控制台进行统一管理,可配置很多台集群进行统一管理,非常方便.
一般来说个人推荐在服务器少的情况下第一种情况比较灵活.
要配置集群并实现Session复制功能需要利用Jboss的组件mod_cluster
http://www.jboss.org/mod_cluster
modcluster负责Apache HTTPD与AS群集的连接工作。通过HTTPD作为前端,为用户提供一个统一的群集访问点,后面负责将负载分担至群集内各节点。
好了直接进入配置正文:
环境:两台RedHat Linux服务器.这里两台机器即:两个节点做集群,
node1:192.168.103.68 node2:192.168.103.69
分别在两台机器上安装Jboss7 这里安装过程就不介绍了.比较简单.
node1机器上的Jboss7安装路径:/usr/local/jboss-as-7.1.1.Final
node2机器上的Jboss7安装路径:/usr/local/jboss7
默认情况下,在Jboss7的安装路径下/standalone/configuration下有许多配置文件,这里我们主要使用standalone-ha.xml配置文件,修改之前可以进行先备份:
Node1: cd /usr/local/jboss-as-7.1.1.Final/standalone/configuration cp standalone-ha.xml standalone-ha.xml.bak Node2: 略...
下面我们编辑node1上的standalone-ha.xml文件,修改如下内容:
<server name="standalone-node1" xmlns="urn:jboss:domain:1.2"> 注:设置节点名称.
<subsystem xmlns="urn:jboss:domain:modcluster:1.0"> <mod-cluster-config advertise-socket="modcluster" advertise-security-key="1234567890"> <dynamic-load-provider> <load-metric type="busyness"/> </dynamic-load-provider> </mod-cluster-config> </subsystem> 注:设置mod_cluster中统一进行管理信息同步的安全认证口令,下面在mod_cluster配置当中会进行显示配置.
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server> </subsystem> 注:这里指定web服务中的实例节点.
红色部分为新加内容;
同样node2上的standalone-ha.xml:
<server name="standalone-node2" xmlns="urn:jboss:domain:1.2">
<subsystem xmlns="urn:jboss:domain:modcluster:1.0"> <mod-cluster-config advertise-socket="modcluster" advertise-security-key="1234567890"> <dynamic-load-provider> <load-metric type="busyness"/> </dynamic-load-provider> </mod-cluster-config> </subsystem>
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server> </subsystem>
同样红色部分为新加内容.
到这里Jboss的配置就差不多了,下面进行配置mod_cluster的配置.
我们在这个demo中,mod_cluster和node1在一台机器上,所以IP地址和node1是一样。但是mod_cluster并不要求部署在集群节点中的一台机器上,只要它们在一个子网即可通过IP Multicast来自动发现。此外,mod_cluster还支持广域网组建群集,但我怀疑这种方式的实用性,并且也不是本文的重点,所以并不详细展开协议层方面的细节。只需要理解一点就可以了.
我这里使用的mod_cluster版本下载地址:
http://downloads.jboss.org/mod_cluster//1.2.0.Final/mod_cluster-1.2.0.Final-linux2-x64-ssl.tar.gz
这个包自带了apache的web server以及mod_cluster组件因此比较方便使用,将其部署在node1机器上,安装路径:
/opt/jboss/httpd
编辑mod_cluster的配置文件:
vi /opt/jboss/httpd/httpd/conf/httpd.conf
默认情况下基本上只需要修改下地址跟端口即可:
ServerName 192.168.103.68:80 <IfModule manager_module> Listen 192.168.103.68:7777 ManagerBalancerName mycluster <VirtualHost *:7777> <Location /> Order deny,allow Deny from all Allow from all </Location> KeepAliveTimeout 300 MaxKeepAliveRequests 0 #ServerAdvertise on http://@IP@:6666 AdvertiseFrequency 5 AdvertiseSecurityKey 1234567890 #AdvertiseGroup @ADVIP@:23364 EnableMCPMReceive <Location /mod_cluster_manager> SetHandler mod_cluster-manager Order deny,allow Deny from all Allow from all </Location> </VirtualHost> </IfModule>
然后保存,退出,启动apache服务:
/opt/jboss/httpd/sbin/apachectl start
然后下面可以进入测试,这里传一个比较简单的demo包(cluster-demo.war)分别上传到node1,node2机器上Jboss7的部署路径:
Jboss7安装路径/standalone/deployments
然后分别启动node1,node2上的Jboss7.
node1: Jboss安装路径/bin/standalone.sh --server-config=standalone-ha.xml node2: Jboss安装路径/bin/standalone.sh --server-config=standalone-ha.xml
然后访问一下路径:http://192.168.103.68:7777/mod_cluster_manager
分别访问:http://192.168.103.68/cluster-demo/
http://192.168.103.68/cluster-demo/put.jsp 设置session
http://192.168.103.68/cluster-demo/get.jsp 取session
测试步骤:
设置session之后停止任意节点的jboss服务,然后在取session看是否成功取得之前put的session值,
呵呵..不管你信不信,反正我这边测试成功了,可以实现集群以及session复制...
附件:
cluster-demo.war 是本次demo的war包用来测试sesson复制.
jboss7-shell.zip 是分享两个个jboss7的start|stop|restart shell脚本,一个是单服务模式下的,另个是集群模式下,其实也差不多,完全可以修改成兼容通用的,但是现在开始忙了,以后在弄.
注:其中jboss7_cluster脚本中停止服务需要设置当前机器的地址,否则无法停止服务,不过这里也可以修改的,如果有人修改好通用的脚本可以共享出来哈...非常感谢!!!
相关推荐
在这样的场景下,如何实现Session的高效管理和复制,以确保用户会话的一致性和系统性能的稳定,成为了一个关键的技术问题。本文将深入探讨JBoss集群配置中的Session复制机制,旨在为读者提供一个全面的理解视角。 #...
总结来说,JBoss7+Apache集群和Solr集群的配置涉及到多个层面,包括服务器配置、安全策略、负载均衡以及分布式服务的同步和部署。正确实施这些步骤,可以构建出高可用、高性能的IT系统,满足企业级应用的需求。在...
- 需要在每个JBOSS节点上进行适当的集群配置,包括共享的全局状态管理、session复制等,以保证数据的一致性。 - 节点间通过RMI或HTTP等协议进行通信,确保负载均衡器能够正确识别和管理它们。 7. **启动JBOSS集群...
- **Infinispan**:JBoss的内存数据网格,它支持缓存和分布式存储,可以用于Session的存储和复制。 在配置JBoss Session复制时,开发者需要注意以下几点: 1. **配置集群**:在`standalone.xml`或`domain.xml`中...
在分布式Web应用环境中,JBoss ...总之,JBoss Session复制是构建高可用、可扩展Web应用的关键技术,但实现过程中需要注意配置、性能和安全问题。理解其工作原理并妥善配置,能够有效地提升用户体验和服务稳定性。
本案例主要关注于如何搭建一个基于JBoss 6、mod_jk和Apache 2.2的集群环境,通过配置使该环境支持负载均衡和Session复制功能。 1. **Apache 安装与配置** - **下载与安装**:首先,根据目标操作系统的类型(本例...
【JBoss7集群配置详解】 JBoss7是一个流行的开源应用服务器,它提供了两种运行模式:独立模式(standalone)和域模式(domain)。独立模式适合简单的单服务器部署,而域模式则更适合大型分布式项目的部署,因为它...
3.1. 配置Session复制 6 3.2. 配置Clustering services 6 3.3. 配置TreeCache cluster service 7 4. 设置run 参数 7 5. Web client 7 5.1. web.xml 7 5.2. jboss-web.xml 7 5.3. client调用ejb方法 8 6. EJB 8 6.1. ...
本文将深入探讨如何在Windows操作系统上配置JBoss应用服务器的集群环境,帮助开发者和系统管理员更好地理解这一过程,从而实现高效、稳定的应用服务。 【描述】:Windows上的JBoss集群搭建涉及多个步骤,包括服务器...
这个是转载Bromon原创的重量级:jboss 4.0.2 集群 配置
在提供的文件中,`Jboss集群配置.doc`可能是详细的配置步骤文档,`Apache与Jboss负载均衡教程.pptx`可能包含Apache和JBoss集成的教程,而`jboss集群_jboss5[1].1_apache2.2.4.rar`则可能包含具体的配置示例和必要的...
构建高效的JBoss集群,不仅要考虑集群架构和版本选择,还需深入理解负载均衡和状态同步机制,合理配置以满足应用的高可用性和高性能需求。无论是基于请求的负载均衡还是粘性会话策略,都有其适用场景和优缺点,正确...
本文是作者精心写作的完整配置搭建Jboss-5.1集群的文档,只要按照步骤来做绝对不会出错,一些重要部分俺还加以标注和详细说明,呕心沥血的一大完整安装文档.
在大型系统中,为了提高服务的可用性、可扩展性和负载均衡,常常需要配置集群。本文将深入探讨JBoss集群的搭建、配置、测试以及相关安装步骤,并提供参考资料。 **一、JBoss集群的优势** 1. **高可用性**:通过...
Nginx 1.2.1 + JBOSS AS 7 负载配置及Session处理 本文主要介绍了如何使用 Nginx 1.2.1 和 JBOSS AS 7 实现负载均衡和 Session 处理。文章首先介绍了使用 Nginx 1.2.1 和 JBOSS AS 7 做为应用服务器的理由,然后...