jboss 430集群配置文档Word下载.docx

上传人:b****2 文档编号:4511707 上传时间:2023-05-03 格式:DOCX 页数:14 大小:22.43KB
下载 相关 举报
jboss 430集群配置文档Word下载.docx_第1页
第1页 / 共14页
jboss 430集群配置文档Word下载.docx_第2页
第2页 / 共14页
jboss 430集群配置文档Word下载.docx_第3页
第3页 / 共14页
jboss 430集群配置文档Word下载.docx_第4页
第4页 / 共14页
jboss 430集群配置文档Word下载.docx_第5页
第5页 / 共14页
jboss 430集群配置文档Word下载.docx_第6页
第6页 / 共14页
jboss 430集群配置文档Word下载.docx_第7页
第7页 / 共14页
jboss 430集群配置文档Word下载.docx_第8页
第8页 / 共14页
jboss 430集群配置文档Word下载.docx_第9页
第9页 / 共14页
jboss 430集群配置文档Word下载.docx_第10页
第10页 / 共14页
jboss 430集群配置文档Word下载.docx_第11页
第11页 / 共14页
jboss 430集群配置文档Word下载.docx_第12页
第12页 / 共14页
jboss 430集群配置文档Word下载.docx_第13页
第13页 / 共14页
jboss 430集群配置文档Word下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

jboss 430集群配置文档Word下载.docx

《jboss 430集群配置文档Word下载.docx》由会员分享,可在线阅读,更多相关《jboss 430集群配置文档Word下载.docx(14页珍藏版)》请在冰点文库上搜索。

jboss 430集群配置文档Word下载.docx

全部用户请求都发到负载均衡器,由其转发到各节点。

当负载均衡器发现一个节点失效后,会将请求转发到另一个节点上,

从而保证服务得以延续。

负载均衡器同时负责加权静态负载均衡调度。

总之,负载均衡器的健康程度决定了集群的全局健康度,

负载均衡器失败将导致集群全部失效。

这是前置机架构集群的主要潜在问题。

  JBoss的负载均衡器架构集群实际是由Tomcat的HTTP集群实现的。

JBoss有自己的负载均衡器,但效果不佳,官方文档没有介绍,

几乎没有人使用。

一般情况下,我们都是采用apache+mod_jk作为负载均衡器。

下文叙述的都是基于这种架构。

mod_jk是apache的一个插件,

负责apache与tomcat之间的通讯,是JBoss集群配置(tomcat集群)的关键。

Jboss版本的选择

  目前,JBoss主要有3、4、5三个版本系列。

JBoss5目前只有2个beta版,实用尚需时日。

JBoss3的最后版本是2006年3月更新的3.2.8.SP1。

随着JBoss4日益成熟和JBoss5的开发,已经停止更新1年多的Jboss3逐渐淡出历史舞台。

JBoss4最新版本依次是4.2.1.GA、4.2.0.GA和4.0.5.GA。

但官方网站提供的JBoss集群文档只更新到4.0.5GA,所以选择JBoss4.0.5GA实现JBoss集群配置。

GA实现Jboss集群

Jboss各版本的安装和配置并不相同.不但Jboss3和Jboss4的配置文件完全不同,各小版本间也有细微的差别.

在集群中,Jboss、apache、mod_jk之间也存在着特定版本才能配合的情况。

所以,为避免困扰,请严格按照以下版本安装软件:

JDK1.5.0.12

Jboss4.0.5GA

apache2.2.4

apachemod_jk1.2.23

注意,mod_jk有1.x和2.x两个版本系列。

mod_jk2.x已经停止开发,不能使用。

很多人凭直觉认为mod_jk2.x肯定比mod_jk1.x好,结果走了弯路。

3.Jboss集群配置实例概述

下文中,将以实例来叙述Jboss集群配置。

该实例包含3个Jboss节点。

各节点被动接收负载均衡器转发的请求。

各节点间没有横向的联系。

----------------------------------Apache配置-开始-----------------------------

1.Jboss集群负载均衡器配置

步骤-----如果系统自带可不用安装。

----------

先安装apache,然后配置mod_jk模块。

安装apache

下载apache代码包,上传到服务器。

解开代码包

tarxfvzhttpd-2.2.4.tar.gz

编译

./configure-prefix=/usr/local/apache2-enable-module=so-enable-module=setenvif-enable-module=rewrite-enable-rewrite=shared-enable-proxy=shared-with-mpm=prefork-enable-so-enable-auth-anon-enable-file-cache=shared-enable-cache=shared-enable-disk-cache=shared-enable-mem-cache=shared

makeclean

make

makeinstall

修改配置。

本例中,使用的监听端口是8001,请根据实际情况修改。

vi/usr/local/apache2/conf/httpd.conf

路径可能是这个:

/etc/httpd/conf/httpd.conf

将Listen80改成Listen8001

将Userdaemon和Groupdaemon改为Userapache和Groupapache

删除ServerName前的#,将该行改为ServerName127.0.0.1:

8001

添加用户和用户组

groupaddapache

useraddapache-gapache

2.apachemod_jk安装与配置

顺便说一句,找mod_jk模块费了很大精力,最后才在http:

//www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/

目录下找到。

我用的是mod_jk1.2.23,看到本文的时候,mod_jk应该有新版了。

但mod_jk的向下兼容做得不太好,

最好先用mod_jk1.2.23调试,成功后再尝试换用新版mod_jk。

3.

生成mod_jk.so文件

[root@]#tarzxvftomcat-connectors-1.2.18-src.tar.gz

#cdtomcat-connectors-1.2.18-src

#cdnative

#./configure--with-apxs=/usr/local/apache2/bin/apxs

#make

#makeinstall

[root@localhostnative]#cdapache-2.0/

[root@localhostapache-2.0]#ls

mod_jk.so

[root@localhostapache-2.0]#cpmod_jk.so/usr/local/apache2/moduels

[root@localhostapache-2.0]#cp../conf/workers.properties/usr/local/apache2/conf

chmod+x/usr/local/apache2/modules/mod_jk.so

4.

在/usr/local/apache2/conf/httpd.conf的末尾增加:

Includeconf/mod_jk.conf

并解注释:

ServerNamehostip:

80

5.

建立空文件/usr/local/apache2/conf/uriworkermap.properties

vi/usr/local/apache2/conf/mod_jk.conf,输入以下内容:

#loadmod_jkmodule

#Specifythefilenameofthemod_jklib

LoadModulejk_modulemodules/mod_jk.so

#Wheretofindworkers.properties

JkWorkersFileconf/workers.properties

#Wheretoputjklogs

JkLogFilelogs/mod_jk.log

#Setthejkloglevel[debug/error/info]

JkLogLevelinfo

#Selectthelogformat

JkLogStampFormat"

[%a%b%d%H:

%M:

%S%Y]"

#JkOptionsindicatestosendSSKKEYSIZE

JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories

#JkRequestLogFormat

JkRequestLogFormat"

%w%V%T"

#Mountyourapplications

JkMount/application/*loadbalancer

#Youcanuseexternalfileformountpoints.

#Itwillbecheckedforupdateseach60seconds.

#Theformatofthefileis:

/url=worker

#/examples/*=loadbalancer

JkMountFileconf/uriworkermap.properties

#Addsharedmemory.

#Thisdirectiveispresentwith1.2.10and

#laterversionsofmod_jk,andisneededfor

#forloadbalancingtoworkproperly

JkShmFilelogs/jk.shm

#Addjkstatusformanagingruntimedata

<

Location/jkstatus*>

JkMountstatus

Orderdeny,allow

#Denyfromall

Allowfromall

Allowfrom127.0.0.1

/Location>

6.

vi/usr/local/apache2/conf/workers.properties,增加以下内容:

#Definelistofworkersthatwillbeused

#formappingrequests

worker.list=loadbalancer,node1,node2

#DefineNode1

#modifythehostasyourhostIPorDNSname.

worker.node1.port=8009

worker.node1.host=65.32.0.197

worker.node1.type=ajp13

worker.node1.lbfactor=1

worker.node1.redirect=node2

worker.node1.cachesize=10

#DefineNode2

worker.node2.port=8009

worker.node2.host=65.32.0.198

worker.node2.type=ajp13

worker.node2.lbfactor=0

worker.node2.redirect=node1

worker.node2.cachesize=10

#DefineNode3

###worker.node3.port=8009

###worker.node3.host=192.168.130.112

###worker.node3.type=ajp13

###worker.node3.lbfactor=1

#Load-balancingbehaviour

worker.loadbalancer.type=lb

#worker.loadbalancer.balance_workers=node1,node2,node3

worker.loadbalancer.balance_workers=node1,node2

worker.loadbalancer.sticky_session=1

#worker.list=loadbalancer

#Statusworkerformanagingloadbalancer

worker.status.type=status

说明:

worker.node1.host、worker.node2.host和worker.node3.host要改成jboss集群各机器的实际IP.

如果有更多的节点,顺序定义更多的node段,并在worker.loadbalancer.balance_workers后全部列出.

lbfactor是负载分配权重,值越大分配的负载越多.worker.node3.redirect=node1是node3失效后

由node1接替。

7.在/etc/httpd/conf下新建文件uriworkermap.properties内容为:

/*=loadbalancer

/jmx-console=loadbalancer

/jmx-console/*=loadbalancer

/web-console=loadbalancer

/web-console/*=loadbalancer

/all*=loadbalancer

#jboss模式名称

/node*=loadbalancer

/*.gif=loadbalancer

/*.jpg=loadbalancer

/*.png=loadbalancer

/*.js=loadbalancer

/*.htm=loadbalancer

/*.html=loadbalancer

/*.jsp=loadbalancer

----------------------------------Apache配置-结束-----------------------------

----------------------------------Apache配置-细节讲述-----------------------------

1.启动Jboss集群

步骤

先启动负载均衡器apache,然后启动各jboss节点。

各jboss节点的启动顺序没有要求。

启动负载均衡器apache

在/usr/local/apache2/bin目录下执行./httpd-kstart

也可以servicehttpdstart|restart|stop|status

然后登陆:

localhost:

80查看是否启动。

集群的生命期

apache能够自动发现新启动的Jboss节点。

当第一个Jboss节点启动后,自动创建Jboss集群。

然后依次将其他节点加入到集群中。

现在访问http:

//192.168.8.246:

80,能够看到jboss的状态.说明请求已经被转发到Jboss节点。

集群启动成功。

apache能够监视集群中各节点的状况,自动从集群中去掉无法访问的节点,从而保证每个请求都被响应。

当集群的全部节点都停止工作,集群消亡。

集群的缺陷和粘着session

截止到现在,Jboss集群工作得很完美,除了session。

目前配置的Jboss集群中,各节点是被动的、相互独立的,相当于增加了节点状态检测的DNS轮询,所以session也是相互独立的。

当同一用户的2个请求被转发到不同的Jboss节点上时,会出现session信息假”丢失”的现象。

为此,Jboss提出粘着session(stickysession)概念。

使用粘着session后,来自同一IP的请求将被发送到同一个Jboss节点,

从而保证session使用的连续性。

如果应用中没有使用session,则可以使用非粘着session的jboss集群。

这样,负载分布更为合理。

设置方法是编辑负载均衡器的/usr/local/apache2/conf/workers.properties的worker.loadbalancer.sticky_session。

设置为1使用粘着session,设置为0不使用粘着session。

使用粘着session还存在一种隐患,当某个节点发生故障时,该节点的session将全部丢失。

要彻底解决这个问题,就要用到jbosssession复制。

2.Jboss集群的session复制

原理

jbosssession复制是jbosssession同步的一种实现。

原理是在各Jboss节点间建立横向联系,

每个节点都将本节点的session变化同步到其他所有节点上。

jboss的session复制与HTTP集群是相互配合、相互独立的两个系统。

session复制是节点间的横向联系,

HTTP集群是负载均衡器与节点的纵向联系。

----------------------------------jboss配置-开始-----------------------------

四、配置JBOSS4.3(在10.0.26.163和10.0.26.164)

1.安装配置:

1个jboss,163是all,164是node2,http使用8080端口,AJP使用8009;

#修改server.xml

vi$JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml(node2同理)

#修改<

Connectorport="

8080"

address="

${jboss.bind.address}"

0.0.0.0"

>

8009"

protocol="

AJP/1.3"

2.修改$JBOSSE_HOME/server/all/deploy/jboss-web.deployer/server.xml文件,将Engine修改如下(node2同理):

Enginename="

jboss.web"

defaultHost="

localhost"

>

给它增加一个jvmRoute属性:

jvmRoute="

node1"

3.修改$JBOSS_HOME/server/all/deploy/jboss-web.deployer/META-INF/jboss-service.xml,

找到<

attributename="

UseJK"

false<

/attribute>

改为<

true<

(node2同理)

4.修改$JBOSS_HOME/server/all/deploy/jboss-web.deployer/ROOT.war/WEB-INF/web.xml,

在<

web-app>

紧跟着下面添加<

distributable/>

,可以在应用配置,此处可以不用配置。

5.修改$JBOSS_HOME/server/all/deploy/jboss-web-cluster.sar/META-INF/jboss-service.xml

config>

udp,将>

到<

/config>

全部注释掉.

jbosssession复制有UDP和TCP两种方式.UDP采用多播方式,但问题比较多,所以采用TCP方式。

<

tcp,将>

生效.并对该部分进行以下修改:

将全部down_thread和up_thread的false都改为true.

tcpbind_addr=”后填入本机的IP,比如<

TCPbind_addr=”>

tcppinginitial_hosts=”后填入本机和集群其他全部Jboss节点的IP[7810],比如<

tcppinginitial_hosts=”192.168.130.95[7810],192.168.130.99[7810],192.168.130.112[7810]”>

/tcpping>

其他参数还包括:

ClusterName是集群名称,比如partition1.

在同一局域网内,可以存在多个jboss集群,根据集群名称区分它们.所以,集群中各节点配置的集群名称必须一致,

而机器IP则没有特殊要求,只要它们能相互连通.理论上,可以在一台机器上安装多个Jboss实例,分属于不同的集群.

但这会极大地增加复杂度,是不好的配置方式.

IsolationLevel是隔离等级.

可选值包括:

SERIALIZABLE,REPEATABLE_READ,READ_COMMITTED,READ_UNCOMMITTED,和NONE。

这里的隔离级别和数据库的隔离级别有同样的含义,对于大多数WEB应用程序来讲通常设置为REPEATABLE_READ。

CacheMode是缓存模式。

由于session复制是通过缓存实现的,所以实际上是复制模式.可选值包括:

REPL_SYNC和REPL_ASYNC,

确定改变是应该同步还是异步复制。

缺省值是REPL_ASYNC.使用同步复制,确保在请求完成之前传播改变,

session同步没有滞后,但效率低。

下面要做的是基于request的cluster,也就让各个节点之间互相复制session状态。

有两种复制模式,同步与异步。

使用同步的方式,jboss会把session复制的操作和对request的响应放到一个应用事务(applicationtransaction),session复制完

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2