jboss4集群配置完整版

上传人:feng****heng 文档编号:191118691 上传时间:2023-03-02 格式:DOCX 页数:12 大小:93.07KB
收藏 版权申诉 举报 下载
jboss4集群配置完整版_第1页
第1页 / 共12页
jboss4集群配置完整版_第2页
第2页 / 共12页
jboss4集群配置完整版_第3页
第3页 / 共12页
资源描述:

《jboss4集群配置完整版》由会员分享,可在线阅读,更多相关《jboss4集群配置完整版(12页珍藏版)》请在装配图网上搜索。

1、Jboss4 集群配置2007-10-10 10:331. 前言2006年,Jboss公司被Redhat公司收购了。这直接导致Jboss产品结构调整,并 将以前收费的Jboss AS文档改为免费。淘金吧本次集群试验的最初依据就是由 此得到的Jboss 4.0.5集群配置文档。但这份官方文档并不可靠, 在一些关键配置上含混不清,而且夹杂了很多适用于 过去版本、现已作废的 Jboss 集群配置内容。这导致本次 jboss 集群配置试验很 大程度上是依靠猜测和反复尝试完成的。究其原因,是因为Jboss的集群特性尚 处于发展之中, Jboss 开发者还在不停地修改、完善、增加特性, 版本间的变化 很大

2、,文档的更新速度和质量难以保证。所以,淘金吧提醒各位对官方文档要认准 版本,只可参考,切忌尽信切切.2. 集群知识集群概念集群(Clus ter)是一组计算机节点的集合,它们作为一个整体向用户提供一组网 络资源。一个理想的集群对用户是透明的。用户由单一入口访问集群的资源,从 来不会意识到集群中的节点。在他们看来,集群是一个系统,而非多个计算机系 统。集群还应该支持随意增加和减少集群系统的节点,而这同样不会影响到用户 的访问。集群分类习惯上,把集群分为高可用(High Availability,简称HA)集群和高性能计算 (High Perfermance Computing,简称 HPC)集群

3、两类。HA集群的目标是提高系统的可使用性(availability),即可靠性(reliability) 和可维护性(maintainability)。请不要将集群中的可使用性(availability)与 UE和交互设计中的可用性(Usability)混淆。HA 集群的核心是防止单点失效,这一般是通过失败转移来实现的,即在一个节点失效后由另一个节点接替服务。不丢失用户状态。HA集群的其他主要特性还 包括负载均衡、session同步等。我们使用的SQL Server数据库的双机热备和 Oracle的RAC都属于HA集群。HPC 集群采用并行计算技术提供超大规模计算和存储能力,多数超级计算机都是

4、 HPC 集群。这不是我们关注的集群。Jboss 集群架构Jboss 集群是 HA 集群。Jboss集群有2种架构。一是客户端拦截器(Client-side interceptor)架构, 一是负载均衡器 (Load balancer)架构。客户端拦截器架构适于用 C/S 结构,负载均衡器架构适用于 B/S 结构。本文只叙 述负载均衡器架构的 Jboss 集群。负载均衡器架构由负载均衡器和 n 个集群节点组成。每个节点是一个 Jboss 服务 器实例。负载均衡器是全局唯一的前置机,全部用户请求都发到负载均衡器,由 其转发到各节点。当负载均衡器发现一个节点失效后,会将请求转发到另一个节 点上,从

5、而保证服务得以延续。负载均衡器同时负责加权静态负载均衡调度。总 之,负载均衡器的健康程度决定了集群的全局健康度,负载均衡器失败将导致集 群全部失效。这是前置机架构集群的主要潜在问题。Jboss 的负载均衡器架构集群实际是由 Tomcat 的 HTTP 集群实现的。 Jboss 有自 己的负载均衡器,但效果不佳,官方文档没有介绍,几乎没有人使用。一般情况 下,都是(淘金吧-站点推广)采用apache+mod_jk作为负载均衡器。下文叙述的 都是基于这种架构。mod_jk 是 apache 的一个插件,负责 apache 与 tomcat 之间的通讯,是 jboss 集 群(tomcat集群)的关

6、键。Jboss 版本的选择目前Jboss主要有3、4、5三个版本系列。Jboss 5目前只有2个beta版,实用尚需时日。Jboss 3的最后版本是2006年3月更新的3.2.8.SP1。随着Jboss 4日益成熟和 Jboss 5 的开发,已经停止更新 1 年多的 Jboss 3 逐渐淡出历史舞台。Jboss 4最新版本依次是4.2.1.GA、4.2.0.GA和4.0.5.GA。但官方网站提供的Jboss集群文档只更新到4.0.5 GA,所以选择Jboss 4.0.5 GA实现Jboss集群。Jboss 各版本的安装和配置并不相同. 不但 Jboss 3 和 Jboss 4 的配置文件完全

7、不同,各小版本间也有细微的差别在集群中Jboss、apache、mod_jk之间也存 在着特定版本才能配合的情况。所以,为避免困扰,请严格按照以下版本安装软 件:JDK 1.5.0.12Jboss 4.0.5 GAapache 2.2.4apache mod_jk 1.2.23注意,mod_jk有1.x和2.x两个版本系列。mod_jk 2.x已经停止开发,不能使 用。很多人凭直觉认为mod_jk 2.x肯定比mod_jk 1.x好,结果走了弯路。3. Jboss 集群配置实例概述下文中,淘金吧 将以实例来叙述Jboss集群配置。该实例包含3个Jboss节点。各节点被动接收负载均衡器转发的请求

8、。各节点间 没有横向的联系。a o用八浏览器|tw阴I 392J68.13O.Q5I*QJboss l;192468.130.99负载均衡器192.168.8.246j吠資点3392.I6S.I3OJ12 1 f4. Jboss 集群负载均衡器配置步骤先安装apache,然后配置mod_jk模块。安装 apache下载 apache 代码包,上传到服务器。解开代码包tar xfvz httpd-2.2.4.tar.gz编译./configure - prefix二/usr/local/apache2 - enable-module=so- enable-module=setenvif - en

9、ablemodule二rewrite- enable-rewrite=shared - enable-proxy=shared - with-mpm=prefork- enableso - enableauthanon - enablefilecache=shared- enablecache二shared - enablediskcache二shared- enablememcache二sharedmake cleanmakemake install修改配置。本例中,淘金吧 使用的监听端口是8080,请根据实际情况修改。vi /usr/local/apache2/conf/httpd.con

10、f将 Listen 80 改成 Listen 8080将 User daemon 和 Group daemon 改为 User apache 和 Group apache 删除 ServerName 前的#,将该行改为 ServerName 127.0.0.1:8888添加用户和用户组groupadd apacheuseradd apache - g apacheapache mod_jk 配置下载 mod_jk,将其改名为 mod_jk.so,拷贝到/usr/local/apache2/modules 下。顺便说一句,找 mod_jk 模块费了很大精力,最后才在http:/www.apach

11、e.org/dist/tomcat/tomcat-connectors/jk/binaries/linux /目录下找到。我用的是mod_jk 1.2.23,看到本文的时候,mod_jk应该有新版 了。但mod_jk的向下兼容做得不太好,最好先用mod_jk 1.2.23调试,成功后 再尝试换用新版 mod_jk。chmod +x /usr/local/apache2/modules/mod_jk.so在/usr/local/apache2/conf/httpd.conf 的末尾增加:Include conf/mod_jk.conf建立空文件/usr/local/apache2/conf/ur

12、iworkermap.proper tiesvi /usr/local/apache2/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 lo

13、g level debug/error/infoJkLogLevel 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 /applicatio

14、n/* 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/*=loadbalancer JkMountFile conf/uriworkermap.properties# Add shared memory.# This directive is present with 1.2.10 and# later versions of

15、mod_jk, and is needed for# for load balancing to work properly JkShmFile logs/jk.shm# Add jkstatus for managing runtime dataJkMount statusOrder deny,allowDeny from allAllow from 127.0.0.1vi /usr/local/apache2/conf/workers.properties,增力口以下内容:# Define list of workers that will be used# for mapping req

16、uests worker.list=loadbalancer,status# Define Node1# modify the host as your host IP or DNS name. worker.node1.port=8009worker.node1.host=192.168.130.95 worker.node1.type=ajp13worker.node1.lbfactor=1# Define Node2# modify the host as your host IP or DNS name. worker.node2.port=8009worker.node2.host=

17、 192.168.130.99 worker.node2.type=ajp13worker.node2.lbfactor=0# Define Node3# modify the host as your host IP or DNS name. worker.node3.port=8009worker.node3.host= 192.168.130.112 worker.node3.type=ajp13worker.node3.lbfactor=1# Load-balancing behaviour worker.loadbalancer.type=lb worker.loadbalancer

18、.balance_workers=node1,node2,node3 worker.loadbalancer.sticky_session=1#worker.list=loadbalancer# Status worker for managing load balancer worker.status.type=status说明:worker.node1.host、worker.node2.host 和 worker.node3.host 要改成 jboss 集群各机器的实际 IP.如果有更多的节点,顺序定义更多的 node 段,并在 worker.loadbalancer.balance_

19、workers 后全部列出.lbfactor 是负载分配权重,值越大分配的负载越多.更多配置参数详见tomcat配置说明配置 apache 自动启动 ln - s /usr/local/apache2/apachectl /etc/init.d/apache chmod 777 /etc/init.d/apacheln - s /etc/init.d/apache /etc/rc3.d/S80apacheln - s /etc/init.d/apache /etc/rc3.d/K20apacheln - s /etc/init.d/apache /etc/rc4.d/S80apacheln -

20、 s /etc/init.d/apache /etc/rc4.d/K20apacheln - s /etc/init.d/apache /etc/rc5.d/S80apacheln - s /etc/init.d/apache /etc/rc5.d/K20apache5. Jboss 集群节点配置步骤在集群的各节点上,先安装JDK,然后安装配置Jboss。不用着急,跟着淘宝一 步步来。安装 JDK在下载JDK安装包,上传到服务器。chmod +x jdk-1_5_0_12-linux-i586-rpm.bin ./jdk-1_5_0_12-linux-i586-rpm.bin 根据提示安装。设

21、置Java路径。vi /etc/prof ile,在结尾增加:JAVA_HOME=/usr/java/jdk1.5.0_12 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=.:$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH用 JDK 代替 Redhat Linux AS4 预装的 gcj:cd /usr/binln -s -f /usr/java/jdk1.5.0_12/bin/javaln -s -f /usr/java/jdk1.5.0_12/bin/j

22、avac执行java - version,显示以下信息表示jdk正确安装:java version “1.5.0_12Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04) Java HotSpot(TM) Client VM (build 1.5.0_12-b04, mixed mode, sharing)安装Jboss下载 jboss-4.0.5.GA 和 jems-installer,并上传至H服务器。完整安装Jboss 4.0.3 sp1到4.0.5.GA各版本,必须使用jems-installer和

23、JDK 1.5。Jboss可以采用图形方式和命令行方式安装。图形方式安装方便,但要求服务器 安装X windows,且在服务器上操作或使用支持x windows的远程终端(淘金吧 推荐用 xmanager).图形方式在 x windows 的终端窗口下,执行 java - jar jems-installer-1.2.0.GA.jar, 出现Jboss安装图形界面。选择“中文”。下一步。同意协议。安装路径设置为/usr/local/jboss,下一步。选择” all”,下一步。选择advance”,把Name由default改为all.其余直接按下一步。输入Admin密码,下一步。等待安装结束

24、,完成。命令行方式java -jar jems-installer-1.2.0.GA.jar -installGroup all installpath=/usr/local/jbossmv /usr/local/jboss/server/default /usr/local/jboss/server/all配置Jboss修改配置。本例中,提供服务的监听端口是8888,请根据实际情况修改。vi /usr/local/jboss/server/all/deploy/jbossweb-tomcat55.sar/server.xml 找到 找到.注意,jvmRoute是节点号,要与在apache的w

25、orkers.properties中的定义相对 应.vi/usr/local/jboss/server/all/deploy/jbossweb-tomcat55.sar/META-INF/jbo ss-service.xml找到UseJK,改为true.配置jboss自动启动cp /usr/local/jboss/jboss_init_redhat.sh /etc/init.d/jbosschmod 777 /etc/init.d/jbossln - s /etc/init.d/jboss /etc/rc3.d/S80jbossln - s /etc/init.d/jboss /etc/rc3

26、.d/K20jbossln - s /etc/init.d/jboss /etc/rc4.d/S80jbossln - s /etc/init.d/jboss /etc/rc4.d/K20jbossln - s /etc/init.d/jboss /etc/rc5.d/S80jbossln - s /etc/init.d/jboss /etc/rc5.d/K20jbossvi /etc/init.d/jboss将 JB0SS_H0ME 行改为 JB0SS_H0ME=$JB0SS_H0ME:-”/usr/local/jboss”将 JBOSS_USER 一行改为 JBOSS_USER=$JBOS

27、S_USER:-”root”将 JAVAPTH 行改为 JAVAPTH=$JAVAPTH:-”/usr/java/jdkl.5.0_12将 JB0SS_C0NF 行改为 JB0SS_C0NF=$JB0SS_C0NF:-”all”将 JBOSSSH 一行改为 JBOSSSH=$JBOSSSH:-”$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF”将 eval $JBOSS_CMD_START $JB0SS_C0NS0LE 2&1 &改为 eval $JBOSS_CMD_START $JBOSS_CONSOLE &将 $SUBIT “$JBOSS_CMD_START $J

28、B0SS_C0NS0LE 2&1 &” 改为 $SUBIT “$JBOSS_CMD_START $JBOSS_CONSOLE &”6. 启动 Jboss 集群步骤先启动负载均衡器apache,然后启动各jboss节点。各jboss节点的启动顺序没 有要求。启动负载均衡器 apache在/usr/local/apache2/bin 目录下执行./httpd - k start在/usr/local/apache2/logs/mod_jk.log 中,看到 apache 初始化 mod_jk 的日 志:Wed Aug 01 10:36:11 20076636:63168infoinit_jk:mo

29、d_jk.c(2743): mod_jk/1.2.23 initializedWed Aug 01 10:36:11 20076637:63168infoinit_jk:mod_jk.c(2743): mod_jk/1.2.23 initialized后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。用netstat检查8080监听端口存在,apache启动成功.启动 Jboss 节点在集群各机器的/usr/local/jboss/bin,分别执行/run.sh - c all 11 22 &用 netstat 检查 8888 端口监听存在.用浏览器访问各节点的8888端口,能够看到jb

30、oss的状态.Jboss 启动成功.集群的生命期apache 能够自动发现新启动的 Jboss 节点。当第一个 Jboss 节点启动后,自动 创建Jboss集群。然后依次将其他节点加入到集群中。现在访问http:/192.168.8.246:8888,能够看到jboss的状态.说明请求已经被转发到 Jboss 节点。集群启动成功。apache 能够监视集群中各节点的状况,自动从集群中去掉无法访问的节点,从 而保证每个请求都被响应。当集群的全部节点都停止工作,集群消亡。集群的缺陷和粘着 session截止到现在Jboss集群工作得很完美,除了 session。目前配置的Jboss集群中,各节点是

31、被动的、相互独立的,相当于增加了节点状 态检测的DNS轮询,所以session也是相互独立的。当同一用户的2个请求被转 发到不同的Jboss节点上时,会出现session信息假”丢失”的现象。为此,Jboss提出粘着session (sticky session)概念。使用粘着session后, 来自同一 IP的请求将被发送到同一个Jboss节点,从而保证session使用的连 续性。如果应用中没有使用session,则可以使用非粘着session的jboss集群。 这样,负载分布更为合理。(淘金吧的话:也更简单。)设置方法是编辑负载均衡器的 /usr/local/apache2/conf/w

32、orkers.proper ties 的 worker.loadbalancer.sticky_session。设置为 1 使用粘着 session,设置为 0不使用粘着session。使用粘着session还存在一种隐患,当某个节点发生故障时,该节点的session 将全部丢失。要彻底解决这个问题,就要用到jboss session复制。7. Jboss集群的session复制原理jboss session复制是jboss session同步的一种实现。原理是在各Jboss节点 间建立横向联系,每个节点都将本节点的session变化同步到其他所有节点上。jboss的session复制与HTT

33、P集群是相互配合、相互独立的两个系统。session 复制是节点间的横向联系,HTTP集群是负载均衡器与节点的纵向联系。配置Jboss节点vi/usr/local/jboss/server/all/deploy/tc5-cluster.sar/META-INF/jboss-ser vice.xml找到configudp,将Xconfig到/config全部注释掉.jboss session复制有UDP和TCP两种方式.UDP采用多播方式,但问题比较多, 所以淘金吧采用TCP方式。找到config tcp,将Xconfig到/config生效.并对该部分进行以下修改: 将全部 down_thre

34、ad 和 up_thread 的 false 都改为 true. 在tcp bind_addr二后填入本机的 IP,比如TCP bind_addr二” 在tcpping initial_hosts二”后填入本机和集群其他全部Jboss节点的 IP7810,比如其他参数还包括:ClusterName 是集群名称,比如 partitionl.在同一局域网内,可以存在多个jboss集群,根据集群名称区分它们.所以,集群 中各节点配置的集群名称必须一致,而机器IP则没有特殊要求,只要它们能相互 连通.理论上,可以在一台机器上安装多个Jboss实例,分属于不同的集群但这 会极大地增加复杂度,是不好的配置

35、方式.淘金吧严重不建议给自己找麻烦。IsolationLevel是隔离等级.可选值包括:SERIALIZABLE,REPEATABLE_READ, READ_COMMITTED, READ_UNCOMMITTED,和NONE。这里的隔离级别和数据库的隔离级别有同样的含 义,对于大多数WEB应用程序来讲通常设置为REPEATABLE_READ。CacheMode是缓存模式。由于session复制是通过缓存实现的,所以实际上是复制模式.可选值包括: REPL_SYNC和REPL_ASYNC,确定改变是应该同步还是异步复制。缺省值是 REPL_ASYNC使用同步复制,确保在请求完成之前传播改变,session同步没有 滞后,但效率低。配置应用程序在应用程序的web.xml的段中增加。在jboss-web.xml中增加以下内容: SET_AND_NON_PRIMITIVE_GET SESSION jboss4集群配置至此结束。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!