




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PRIMETON TECHNOLOGIES, LTD.上海普元信息技术有限责任公司上海普元信息技术有限责任公司EOS5+JBoss 负载均衡负载均衡技术解决方案技术解决方案No part of this document may be reproduced, stored in any electronic retrieval system, or transmitted in any form or by any means, mechanical, photocopying, recording, otherwise, without the written permission of t
2、he copyright owner.COPYRIGHT 2006 by Primeton Technologies, Ltd. ALL RIGHTS RESERVED. EOS5+JBoss 负载均衡方案http:/ 2 页 共 18 页文档修订记录文档修订记录序号序号版本号版本号修订日期修订日期修订概述修订概述修订人修订人审批人审批人备注备注10.12009-02-23创建林锋 EOS5+JBoss 负载均衡方案http:/ 3 页 共 18 页目目 录录1文档摘要文档摘要.41.1文档分类.41.2关键字/TAG.41.3摘要.41.4作者、协作者及评审人员.41.5定义、首字母缩写词及
3、缩略语.42概述概述.52.1问题或场景.52.2目的.52.3参考资料.52.4工具和技术.52.5系统运行环境.53解决方案解决方案.63.1概述.63.2部署步骤.63.2.1安装部署第一个JBoss实例.63.2.2安装部署第二个JBoss实例.73.2.3安装部署Apache.3.1安装.配置.83.2.4配置EOS工作流缓存同步.93.3启动并验证.124注意事项注意事项.134.1JBOSS实例停止后用户需要重新登录.134.2发布 EOS 构件包 .135常见问题常见问题.135.1启动 EOS5.3.5 SERVER时报错.135.264 位
4、UNIX 下安装 APACHE碰到的一些问题.146附录附录.156.1一台机器运行两个 EOS FOR JBOSS实例需要修改的端口.156.2在UNIX下编译安装 APACHE.176.3关闭 APACHE的ACCESS.LOG日志.18 EOS5+JBoss 负载均衡方案http:/ 4 页 共 18 页1 文档摘要文档摘要1.1 文档分类文档分类部署上线 技术方案1.2 关键字关键字/TagEOSJBoss负载均衡1.3 摘要摘要介绍如何搭建 EOS+JBoss+Apache 负载均衡(非集群)环境。1.4 作者、协作者及评审人员作者、协作者及评审人员作者: 林锋1.5 定义、首字母缩
5、写词及缩略语定义、首字母缩写词及缩略语负载均衡: 当服务请求发送到集群时,能根据一定的规则选择由集群中的某一台服务器来处理该请示。 EOS5+JBoss 负载均衡方案http:/ 5 页 共 18 页2 概述概述2.1 问题或场景问题或场景一般的 J2EE 集群方案需要实现 Web 负载均衡、HTTPSession 复制、EJB 集群等等,但某些场景下只需要用到 Web 负载均衡,而且 JBoss 集群配置比较麻烦,HTTPSession 复制又会影响性能,这时可以不需要配置集群,只需要两个 JBoss 单机实例做负载均衡即可。2.2 目的目的通过本文可以了解如何搭建 EOS+JBoss+Ap
6、ache 负载均衡(非集群)环境。2.3 参考资料参考资料2.4 工具和技术工具和技术2.5 系统运行环境系统运行环境EOS5.3JBoss3.2.5(EOS 安装包自带) EOS5+JBoss 负载均衡方案http:/ 6 页 共 18 页3 解决方案解决方案3.1 概述概述本方案前端使用 Apache 的 Session Sticky 方式转发请求到后端的两个 JBoss 单机实例,实现 WEB 应用负载均衡,两个 JBoss 实例之间是互相单独存在的。Session Sticky 的原理是 JBoss 实例(实际上是 Tomcat)响应浏览器请求的时候,在 Session ID 后面附上
7、了一个自己实例的标识。浏览器后续再发送请求的时候,会把Session ID 连同这个标识一起送过来。Apache 从 Session ID 里面拿到这个标识后,就知道应该将请求转发给哪个 JBoss 实例。也就是说,在 Session Sticky 时,浏览器发送第一次请求到某 JBoss 实例,Apache会将后续所有的请求都转发给该 JBoss 实例。3.2 部署步骤部署步骤3.2.1 安装部署第一个安装部署第一个 JBoss 实例实例1、安装、安装 EOS按Primeton EOS 5.3 产品安装指南中【安装 EOS 社区版】章节安装 EOS for JBoss 版本即可,本文中不做详
8、细说明。2、配置、配置 jvmRoute打开 jboss-3.2.5serverdefaultdeployjbossweb-tomcat50.sarserver.xml 文件,找到如下配置: EOS5+JBoss 负载均衡方案http:/ 7 页 共 18 页增加如上蓝色标识的配置:“jvmRoute=server1” 。该配置给实例指定了一个标识,JBoss 会在 Session ID 后面加上该标识,Apache 就可以根据该标识识别请求应该发给哪个 JBoss 实例。3.2.2 安装部署第二个安装部署第二个 JBoss 实例实例1、先安装 EOS for JBoss 版本,可参看上一章节
9、。2、配置 jvmRoute打开 jboss-3.2.5serverdefaultdeployjbossweb-tomcat50.sarserver.xml 文件,找到如下配置:增加如上蓝色标识的配置:“jvmRoute=server2” 。注意,第二个实例指定的标识是“server2” ,不同于第一个实例指定的标识“server1” ,因为只有标识唯一,Apache 才能根据该标识来识别请求应该发给哪个JBoss 实例。如果是在同一台机器上部署本方案,那么需要修改部分冲突端口才能使用,参看附录 6.1 章节。3.2.3 安装部署安装部署 Apache2.2本方案中 Apache 不使用传统的
10、 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 以后的版本。 EOS5+JBoss 负载均衡方案http:/ 8 页 共 18 页另外 http_proxy 和 ajp_proxy 的连接方式比
11、JK 的连接方式配置更简单、方便。安装安装Apache 的安装包可以从 下载。在 Windows 下安装很容易,在此不做更多描述。在 UNIX 下安装就麻烦多了,一般是使用 Apache 的源码编译安装。安装时需要注意,Apache 默认是不会安装 mod_proxy_balancer 模块的,需要在编译时指定。可参看附录 6.2 章节。配置配置打开 Apache 安装路径下的 conf/httpd.conf 主配置文件,修改配置。加载加载 mod_proxy_balancer 模块模块mod_proxy_balancer
12、模块默认是注释掉不使用的,所以首先需要取消注释。找到如下配置(如果没有就手工添加) ,删除前面的“#”符号:#LoadModule proxy_module modules/mod_proxy.so#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#LoadModule proxy_connect_module modules/mod_proxy_connect.so#LoadModule proxy_ftp_mo
13、dule modules/mod_proxy_ftp.so#LoadModule proxy_http_module modules/mod_proxy_http.so配置负载均衡实例成员配置负载均衡实例成员在配置文件最后增加如下配置:ProxyRequests OffProxyPass / balancer:/sticky-cluster/ stickysession=JSESSIONID EOS5+JBoss 负载均衡方案http:/ 9 页 共 18 页 BalancerMember 0:8080 route=server1 BalancerMember
14、 1:8080 route=server2以上配置配置了两个负载均衡实例,并指定了使用 Sticky Session,使用的是http_proxy 连接方式。注意 BalancerMember 中 route 指定的标识是 JBoss 实例中Server.xml 配置的 jvmRoute 标识(参看 3.3.1 和 3.3.2 章节中的配置) 。上面是 http_proxy 连接方式配置,再来看看 ajp_proxy 连接方式的配置:ProxyRequests OffProxyPass / balancer:/sticky-cluster/ stickyses
15、sion=JSESSIONID BalancerMember ajp:/0:8009 route=server1 BalancerMember ajp:/1:8009 route=server2对比 http_proxy 和 ajp_proxy 两种连接方式的配置,不同的是 BalancerMember 中指定的协议和端口。协议和端口要与 Tomcat 的 Server.xml 中的配置相对应:如上所示,Server.xml 中前面配置的是 HTTP 的端口,后面配置的是 AJP 的端口。在负载均衡方案中,http_proxy 和 ajp_proxy
16、 两种连接方式任意选择一种使用。3.2.4 配置配置 EOS 工作流缓存同步工作流缓存同步负载均衡方案中,各个 JBoss 实例虽然是独立存在的,但是由于 EOS 工作流使用 EOS5+JBoss 负载均衡方案http:/ 10 页 共 18 页了数据缓存,是需要配置缓存同步的。如果系统中没有使用到工作流,本章节的操作步骤可以忽略。因为 EOS5.3 的工作流缓存同步方案配置比较复杂,并且存在 BUG,请将 EOS 升级到 5.3.5 版本后,按下面 EOS5.3.5 版本的工作流缓存同步配置方案配置。【步骤步骤 1】:打开工作流缓存同步开关:打开工作流缓存同步开关:打开所有 JBoss 实例
17、成员的 eosserver/config/wfconfig.xml 文件,找到如下配置:true默认配置是 false,这里需要修改为 true。【步骤步骤 2】:重新启动:重新启动 JBoss 实例实例因为集群配置还没有完成,所以工作流引擎不能启动成功,控制台会有如下工作流引擎启动失败提示,这是正常现象。【步骤步骤 3】:增加工作流:增加工作流 JBoss 实例实例将所有 JBoss 实例成员(含本机)添加到成员列表中。需要登录 eos 管理控制台来操作,如下面图例所示: EOS5+JBoss 负载均衡方案http:/ 11 页 共 18 页如上所示,添加了两个 JBoss 成员实例。其中配
18、置的 RMI 是在eosserver/config/eosconfig.xml 中配置的,如下所示:30614【步骤步骤 4】:再次重启:再次重启 JBoss 实例实例上一步骤的配置需要重启之后才能生效。重启之后,控制台上就不会再有出错信息了,并且可以看到工作流引擎启动成功的提示,如下所示:123 EOS5+JBoss 负载均衡方案http:/ 12 页 共 18 页再看 EOS 管理控制台中的成员管理配置,本机成员的状态是启动的了。注一:以上操作只在一个 JBoss 成员实例上操作即可,因为配置是保存在数据库WFSystemInfo 表中,所有连接到数据库的 JBoss 成员实例都可以读取得
19、到。注二:这里只是简单地介绍工作流的缓存同步配置,更多的配置说明请参看文档EOS5.3.5 工作流集群配置说明 。3.3 启动并验证启动并验证1、启动 JBoss 实例:执行安装路径下的 run.bat(Windows)或者 run.sh(UNIX)启动 JBoss 实例。2、启动 Apache:Windows 下执行安装路径下 bin/apache.exe 启动。UNIX 下,进入安装路径的 bin 目录,执行命令“./apache -k start”启动。3、通过 Apache 访问系统;4、登录 EOS 管理控制台查看在线用户监控信息: EOS5+JBoss 负载均衡方案http:/ 1
20、3 页 共 18 页5、停止该 JBoss 实例,再继续操作,此时页面应该会报错,刷新页面将会返回到登录页面。报错是因 JBoss 实例已经不可用;返回登录页面是因为请求被转发到其它的JBoss 实例,由于没有实现 Session 复制,其它的 JBoss 实例上并没有用户的Session 信息,所以被 EOS 转到登录页面。4 注意事项注意事项4.1 JBoss 实例停止后用户需要重新登录实例停止后用户需要重新登录如果某个 JBoss 实例停止后,已经登录到这个 JBoss 实例的用户的请求将被转发其它的 JBoss 实例,由于没有实现 Session 复制,其它的 JBoss 实例上并没有
21、这些用户的 Session 信息,所以这些用户需要重新登录才能操作系统。4.2 发布发布 EOS 构件包构件包由于 EOS5 版本不支持集群发布构件包,所以发布 EOS 构件包时,需要给每个JBoss 成员实例都发布一次。可以看到生成的SessionID 后面带着JBoss 实例的标识 EOS5+JBoss 负载均衡方案http:/ 14 页 共 18 页5 常见问题常见问题5.1 启动启动 EOS5.3.5 Server 时报错时报错场景:场景:启动时报类似如下的错误:Workflow Engine failed!com.primeton.eos.wf.service.api.WFRunti
22、meException: com.primeton.eos.wf.service.api.WFRuntimeException: Localhost is not a member in cluster .解决方案:解决方案:首先确定已经按 3.3.4 章节完成了 EOS 工作流缓存同步配置;然后再检查操作系统的 hosts 中有没有在 的前面声明本机 IP、机器名。5.2 64 位位 UNIX 下安装下安装 Apache 碰到的一些问题碰到的一些问题1、编译时需要指定参数、编译时需要指定参数操作系统为 64 位,需要删除原先配置,加上参数“-enable-lib64 -l
23、ibdir=/usr/lib64”来编译。32 位则无需加。如下所示:#tar zxvf httpd-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#make i
24、nstall2、安装、安装 apache 时报错:时报错:configure: error: Cannot use an external APR with the bundled APR-utilq需要安装 apr 和 apr-util:下载地址:/apr/安装 apr 例如:tar -zxvf apr-1.2.12.tar.gz EOS5+JBoss 负载均衡方案http:/ 15 页 共 18 页cd apr-1.2.12./configure&make&make install安装 apr-util 例如:tar -zxvf
25、 apr-util-1.2.12.tar.gzcd apr-util-1.2.12./configure -with-apr=/usr/local/apr &make &make install先安装 apr,安装 apr-util 时需要指定 apr 的路径。3、安装、安装 apr-util 时报错:时报错:/usr/lib/libexpat.so: could not read symbols: File in wrong format办法一:是打开 Makefile 找到 -lexpat 这么一个参数,修改为: /usr/lib64/libexpat.la 即可。办法二:
26、编译时增加编译参数 -with-expat=builtin 。可能在 64 位服务器下编译脚本在定位系统 expat 支持时有些问题。使用自带的 expat 来编译就不存在这个问题了。办法三:备份/usr/lib/目录下的 libexpat*,然后拷贝/usr/lib64/目录下的 libexpat*至/usr/lib/目录。6 附录附录6.1 一台机器运行两个一台机器运行两个 EOS for JBoss 实例需要修改的端口实例需要修改的端口如果一台机器运行两个 EOS for JBoss 实例时,因为都使用了相同的端口,当启动了一个实例后,再启动另外一个实例时,就会报端口已被占用的异常。【解
27、决方案和步骤】通过修改 JBoss 和 EOS 的端口配置可以解决端口占用的问题。1、修改 jboss-3.2.5serverdefaultconfjboss-service.xml 中的1098,1099,4444,4445,8083 端口。端口配置在配置文件中位置如下: EOS5+JBoss 负载均衡方案http:/ 16 页 共 18 页.8083.1099.1098.4444.4445.2、jboss-3.2.5serverdefaultconfjboss-minimal.xml 中的 1099 端口,注意要改成跟jboss-service.xml 中的 1099 一样的。端口配置在配
28、置文件中位置如下:.1099.3、jboss-3.2.5serverdefaultdeployjbossweb-tomcat50.sarserver.xml 中8080,8009,8081 端口。端口配置在配置文件中位置如下:.3、jboss-3.2.5serverdefaultdeployjmsuil2-service.xml 中的 8093 端口。端口配置在配置文件中位置如下:.8093.4、eosserverconfigeosconfig.xml 中的 1099,30614 端口,注意 1099 端口要改成跟jboss-service.xml 中的 1099 端口一样的。端口配置在配置文件中位置如下:.erfaces.NamingContextFactoryjnp: /localhost:10.130614.6.2 在在 unix 下编译安装下编译安装 Apache1、下载 Apache 源码例如下载 Apache 的源码文件为 httpd-2.2.3.tar.gz。2、解压源码包执行命令“tar zxvf httpd-2.2.3.tar.gz”进行解压,源码文件会解压到“httpd-2.2.3”目录下。3、配置进入“httpd-2.2.3”目录,执行以下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕师大四年级健康教育
- 责任制整体护理
- 直肠癌冷冻护理查房
- 糖尿病患者的足部护理
- 呼吸科化验解读
- 垃圾分类综合实践活动
- 饮食健康教育计划
- 疝的围手术期护理
- 膝关节滑膜炎护理查房
- 针灸科护理查房
- (二模)2025年5月济南市高三高考针对性训练英语试卷(含答案解析)
- 修脚师劳动合同(新标准版)6篇
- TCHSA-012-2023-儿童口腔疾病治疗中静脉镇静技术规范
- 三方合伙开店协议合同
- 2025年新疆中考第一次模拟化学试题(含答案)
- 2025年危险品水路运输从业资格考试复习题库-上(单选题)
- 2025年-河北建筑安全员B证考试题库附答案
- 《2024年版煤矿安全生产化标准化管理体系基本要求及评分方法》
- 2025-2030中国床垫行业市场深度调研及投资前与投资策略景研究报告
- 码头安全隐患
- 《FTA分析案例》课件 - 深入解析自由贸易协定对经济发展的影响
评论
0/150
提交评论