51CTO下载EOS5+JBoss负载均衡方案.docx

上传人:b****0 文档编号:9056048 上传时间:2023-05-16 格式:DOCX 页数:18 大小:166.03KB
下载 相关 举报
51CTO下载EOS5+JBoss负载均衡方案.docx_第1页
第1页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第2页
第2页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第3页
第3页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第4页
第4页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第5页
第5页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第6页
第6页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第7页
第7页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第8页
第8页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第9页
第9页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第10页
第10页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第11页
第11页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第12页
第12页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第13页
第13页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第14页
第14页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第15页
第15页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第16页
第16页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第17页
第17页 / 共18页
51CTO下载EOS5+JBoss负载均衡方案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51CTO下载EOS5+JBoss负载均衡方案.docx

《51CTO下载EOS5+JBoss负载均衡方案.docx》由会员分享,可在线阅读,更多相关《51CTO下载EOS5+JBoss负载均衡方案.docx(18页珍藏版)》请在冰点文库上搜索。

51CTO下载EOS5+JBoss负载均衡方案.docx

51CTO下载EOS5+JBoss负载均衡方案

PRIMETONTECHNOLOGIES,LTD.

上海普元信息技术有限责任公司

 

EOS5+JBoss负载均衡

技术解决方案

Nopartofthisdocumentmaybereproduced,storedinanyelectronicretrievalsystem,ortransmittedinanyformorbyanymeans,mechanical,photocopying,recording,otherwise,withoutthewrittenpermissionofthecopyrightowner.

COPYRIGHT2006byPrimetonTechnologies,Ltd.ALLRIGHTSRESERVED.

文档修订记录

序号

版本号

修订日期

修订概述

修订人

审批人

备注

1

0.1

2009-02-23

创建

林锋

目录

1文档摘要4

1.1文档分类4

1.2关键字/Tag4

1.3摘要4

1.4作者、协作者及评审人员4

1.5定义、首字母缩写词及缩略语4

2概述5

2.1问题或场景5

2.2目的5

2.3参考资料5

2.4工具和技术5

2.5系统运行环境5

3解决方案6

3.1概述6

3.2部署步骤6

3.2.1安装部署第一个JBoss实例6

3.2.2安装部署第二个JBoss实例7

3.2.3安装部署Apache2.27

3.2.3.1安装8

3.2.3.2配置8

3.2.4配置EOS工作流缓存同步9

3.3启动并验证12

4注意事项13

4.1JBoss实例停止后用户需要重新登录13

4.2发布EOS构件包13

5常见问题13

5.1启动EOS5.3.5Server时报错13

5.264位UNIX下安装Apache碰到的一些问题14

6附录15

6.1一台机器运行两个EOSforJBoss实例需要修改的端口15

6.2在unix下编译安装Apache17

6.3关闭Apache的access.log日志18

1文档摘要

1.1文档分类

部署上线技术方案

1.2关键字/Tag

EOS

JBoss

负载均衡

1.3摘要

介绍如何搭建EOS+JBoss+Apache负载均衡(非集群)环境。

1.4作者、协作者及评审人员

作者:

林锋

1.5定义、首字母缩写词及缩略语

负载均衡:

当服务请求发送到集群时,能根据一定的规则选择由集群中的某一台服务器来处理该请示。

2概述

2.1问题或场景

一般的J2EE集群方案需要实现Web负载均衡、HTTPSession复制、EJB集群等等,但某些场景下只需要用到Web负载均衡,而且JBoss集群配置比较麻烦,HTTPSession复制又会影响性能,这时可以不需要配置集群,只需要两个JBoss单机实例做负载均衡即可。

2.2目的

通过本文可以了解如何搭建EOS+JBoss+Apache负载均衡(非集群)环境。

2.3参考资料

2.4工具和技术

2.5系统运行环境

EOS5.3

JBoss3.2.5  (EOS安装包自带)

3解决方案

3.1概述

本方案前端使用Apache的SessionSticky方式转发请求到后端的两个JBoss单机实例,实现WEB应用负载均衡,两个JBoss实例之间是互相单独存在的。

SessionSticky的原理是JBoss实例(实际上是Tomcat)响应浏览器请求的时候,在SessionID后面附上了一个自己实例的标识。

浏览器后续再发送请求的时候,会把SessionID连同这个标识一起送过来。

Apache从SessionID里面拿到这个标识后,就知道应该将请求转发给哪个JBoss实例。

也就是说,在SessionSticky时,浏览器发送第一次请求到某JBoss实例,Apache会将后续所有的请求都转发给该JBoss实例。

3.2部署步骤

3.2.1安装部署第一个JBoss实例

1、安装EOS

按《PrimetonEOS5.3产品安装指南》中【安装EOS社区版】章节安装EOSforJBoss版本即可,本文中不做详细说明。

2、配置jvmRoute

打开jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml文件,找到如下配置:

增加如上蓝色标识的配置:

“jvmRoute="server1"”。

该配置给实例指定了一个标识,JBoss会在SessionID后面加上该标识,Apache就可以根据该标识识别请求应该发给哪个JBoss实例。

3.2.2安装部署第二个JBoss实例

1、先安装EOSforJBoss版本,可参看上一章节。

2、配置jvmRoute

打开jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml文件,找到如下配置:

增加如上蓝色标识的配置:

“jvmRoute="server2"”。

注意,第二个实例指定的标识是“server2”,不同于第一个实例指定的标识“server1”,因为只有标识唯一,Apache才能根据该标识来识别请求应该发给哪个JBoss实例。

如果是在同一台机器上部署本方案,那么需要修改部分冲突端口才能使用,参看附录6.1章节。

3.2.3安装部署Apache2.2

本方案中Apache不使用传统的JK方式与JBoss连接,而使用mod_proxy方式。

Apache可以通过自带的mod_proxy_balancer模块使用代理技术来连接JBoss(Tomcat),可以选择http_proxy、ajp_proxy两种连接方式。

mod_proxy_balancer是Apache2.1版本以后提供的,而Apache2.2.x版本对该模块进行了重写,大大的增强了其功能和稳定性,所以建议使用Apache2.2.x以后的版本。

另外http_proxy和ajp_proxy的连接方式比JK的连接方式配置更简单、方便。

3.2.3.1安装

Apache的安装包可以从http:

//www.apache.org下载。

在Windows下安装很容易,在此不做更多描述。

在UNIX下安装就麻烦多了,一般是使用Apache的源码编译安装。

安装时需要注意,Apache默认是不会安装mod_proxy_balancer模块的,需要在编译时指定。

可参看附录6.2章节。

3.2.3.2配置

打开Apache安装路径下的conf/httpd.conf主配置文件,修改配置。

Ø加载mod_proxy_balancer模块

mod_proxy_balancer模块默认是注释掉不使用的,所以首先需要取消注释。

找到如下配置(如果没有就手工添加),删除前面的“#”符号:

#LoadModuleproxy_modulemodules/mod_proxy.so

#LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so

#LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so

#LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so

#LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so

#LoadModuleproxy_http_modulemodules/mod_proxy_http.so

Ø配置负载均衡实例成员

在配置文件最后增加如下配置:

ProxyRequestsOff

ProxyPass/balancer:

//sticky-cluster/stickysession=JSESSIONID

//sticky-cluster>

BalancerMemberhttp:

//192.168.0.20:

8080route=server1

BalancerMemberhttp:

//192.168.0.21:

8080route=server2

以上配置配置了两个负载均衡实例,并指定了使用StickySession,使用的是http_proxy连接方式。

注意BalancerMember中route指定的标识是JBoss实例中Server.xml配置的jvmRoute标识(参看3.3.1和3.3.2章节中的配置)。

上面是http_proxy连接方式配置,再来看看ajp_proxy连接方式的配置:

ProxyRequestsOff

ProxyPass/balancer:

//sticky-cluster/stickysession=JSESSIONID

//sticky-cluster>

BalancerMemberajp:

//192.168.0.20:

8009route=server1

BalancerMemberajp:

//192.168.0.21:

8009route=server2

对比http_proxy和ajp_proxy两种连接方式的配置,不同的是BalancerMember中指定的协议和端口。

协议和端口要与Tomcat的Server.xml中的配置相对应:

--AHTTP/1.1Connectoronport8080-->

--AAJP1.3Connectoronport8009-->

如上所示,Server.xml中前面配置的是HTTP的端口,后面配置的是AJP的端口。

在负载均衡方案中,http_proxy和ajp_proxy两种连接方式任意选择一种使用。

3.2.4配置EOS工作流缓存同步

负载均衡方案中,各个JBoss实例虽然是独立存在的,但是由于EOS工作流使用了数据缓存,是需要配置缓存同步的。

如果系统中没有使用到工作流,本章节的操作步骤可以忽略。

因为EOS5.3的工作流缓存同步方案配置比较复杂,并且存在BUG,请将EOS升级到5.3.5版本后,按下面EOS5.3.5版本的工作流缓存同步配置方案配置。

【步骤1】:

打开工作流缓存同步开关:

打开所有JBoss实例成员的eosserver/config/wfconfig.xml文件,找到如下配置:

true

默认配置是false,这里需要修改为true。

【步骤2】:

重新启动JBoss实例

因为集群配置还没有完成,所以工作流引擎不能启动成功,控制台会有如下工作流引擎启动失败提示,这是正常现象。

【步骤3】:

增加工作流JBoss实例

将所有JBoss实例成员(含本机)添加到成员列表中。

需要登录eos管理控制台来操作,如下面图例所示:

如上所示,添加了两个JBoss成员实例。

其中配置的RMI是在eosserver/config/eosconfig.xml中配置的,如下所示:

30614

【步骤4】:

再次重启JBoss实例

上一步骤的配置需要重启之后才能生效。

重启之后,控制台上就不会再有出错信息了,并且可以看到工作流引擎启动成功的提示,如下所示:

再看EOS管理控制台中的成员管理配置,本机成员的状态是启动的了。

注一:

以上操作只在一个JBoss成员实例上操作即可,因为配置是保存在数据库WFSystemInfo表中,所有连接到数据库的JBoss成员实例都可以读取得到。

注二:

这里只是简单地介绍工作流的缓存同步配置,更多的配置说明请参看文档《EOS5.3.5工作流集群配置说明》。

3.3启动并验证

1、启动JBoss实例:

执行安装路径下的run.bat(Windows)或者run.sh(UNIX)启动JBoss实例。

2、启动Apache:

Windows下执行安装路径下bin/apache.exe启动。

UNIX下,进入安装路径的bin目录,执行命令“./apache-kstart”启动。

3、通过Apache访问系统;

4、登录EOS管理控制台查看在线用户监控信息:

5、停止该JBoss实例,再继续操作,此时页面应该会报错,刷新页面将会返回到登录页面。

报错是因JBoss实例已经不可用;返回登录页面是因为请求被转发到其它的JBoss实例,由于没有实现Session复制,其它的JBoss实例上并没有用户的Session信息,所以被EOS转到登录页面。

4注意事项

4.1JBoss实例停止后用户需要重新登录

如果某个JBoss实例停止后,已经登录到这个JBoss实例的用户的请求将被转发其它的JBoss实例,由于没有实现Session复制,其它的JBoss实例上并没有这些用户的Session信息,所以这些用户需要重新登录才能操作系统。

4.2发布EOS构件包

由于EOS5版本不支持集群发布构件包,所以发布EOS构件包时,需要给每个JBoss成员实例都发布一次。

5常见问题

5.1启动EOS5.3.5Server时报错

场景:

启动时报类似如下的错误:

WorkflowEnginefailed!

!

com.primeton.eos.wf.service.api.WFRuntimeException:

com.primeton.eos.wf.service.api.WFRuntimeException:

Localhostisnotamemberincluster.

解决方案:

首先确定已经按3.3.4章节完成了EOS工作流缓存同步配置;然后再检查操作系统的hosts中有没有在127.0.0.1的前面声明本机IP、机器名。

5.264位UNIX下安装Apache碰到的一些问题

1、编译时需要指定参数

操作系统为64位,需要删除原先配置,加上参数“--enable-lib64--libdir=/usr/lib64”来编译。

32位则无需加。

如下所示:

#tarzxvfhttpd-2.0.63.tar.gz

#cd/home/software/httpd-2.0.63

#rm-rf./configure

#rm-rf./srclib/apr-util/configure

#./buildconf

#./configure--enable-lib64--libdir=/usr/lib64--enable-MODULE=shared  --enable-so--with-mpm=worker--prefix=/usr/local/apache2.0.63

#make

#makeinstall

2、安装apache时报错:

configure:

error:

CannotuseanexternalAPRwiththebundledAPR-utilq

需要安装apr和apr-util:

下载地址:

http:

//apache.justdn.org/apr/

安装apr例如:

tar-zxvfapr-1.2.12.tar.gz

cdapr-1.2.12

./configure&&make&&makeinstall

安装apr-util例如:

tar-zxvfapr-util-1.2.12.tar.gz

cdapr-util-1.2.12

./configure--with-apr=/usr/local/apr&&make&&makeinstall

先安装apr,安装apr-util时需要指定apr的路径。

3、安装apr-util时报错:

/usr/lib/libexpat.so:

couldnotreadsymbols:

Fileinwrongformat

办法一:

是打开Makefile找到-lexpat这么一个参数,修改为:

/usr/lib64/libexpat.la即可。

办法二:

编译时增加编译参数--with-expat=builtin。

可能在64位服务器下编译脚本在定位系统expat支持时有些问题。

使用自带的expat来编译就不存在这个问题了。

办法三:

备份/usr/lib/目录下的libexpat*,然后拷贝/usr/lib64/目录下的libexpat*至/usr/lib/目录。

6附录

6.1一台机器运行两个EOSforJBoss实例需要修改的端口

如果一台机器运行两个EOSforJBoss实例时,因为都使用了相同的端口,当启动了一个实例后,再启动另外一个实例时,就会报端口已被占用的异常。

【解决方案和步骤】

通过修改JBoss和EOS的端口配置可以解决端口占用的问题。

1、修改jboss-3.2.5\server\default\conf\jboss-service.xml中的1098,1099,4444,4445,8083端口。

端口配置在配置文件中位置如下:

...

service=WebService">

8083

...

service=Naming">

...

1099

...

1098

...

service=invoker,type=jrmp">

4444

...

service=invoker,type=pooled">

...

4445

...

2、jboss-3.2.5\server\default\conf\jboss-minimal.xml中的1099端口,注意要改成跟jboss-service.xml中的1099一样的。

端口配置在配置文件中位置如下:

...

service=Naming">

...

1099

...

3、jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\serv

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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