6_Apache2+Tomcat6负载均衡和集群_于跃
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TNMS基于Apache和Tomcat的负载均衡和集群
北京直真节点技术开发有限公司
2013年7月1日
需求
由于TNMS系统经常出现WebUI内存不足,导致经常出现界面卡死现象,为解决这一问题,建议现场部署Apache和tomcat负载均衡和集群功能。
软件介绍
1、Apache主要用来解析静态文本,如html,tomcat也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率;
2、Tomcat用来解析jsp,servlet等,所有的客户请求首先会发送到apache,如果请求是静态文本则由apache解析,并把结果返回给客户端,
如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作,实现负载均衡,提高系统的性能!
3、mod_jk 也叫JK,这是一款Apache/IIS 用来连接后台Tomcat的模块,支持集群和负载均衡
mod_jk的作用可以实现apache与tomcat一对多的对应,使后端tomcat负载均衡。mod_jk 也提供apache与tomcat链接情况的监控。
mod_jk模块的典型工作流程是这样的:一个HTTP请求过来,mod_jk模块根据其URI选择合适的worker来进行处理。
如果是lb_worker(负载均衡的worker),就再根据各种条件选择后台合适的ajp_worker(处理AJP协议的worker)。
ajp_worker将HTTP协议的包,组装成AJP协议格式的包,然后选取一条空闲的链接,发送给后台的tomcat服务器。
等到后台将数据发送过来时,接收并解析AJP协议,重新组装成HTTP协议,然后把结果发送给客户端。
原理图
Apache+tomcat与单点登录对比
Apache+tomcat集群负载均衡与单点登录对比
Apache+tomcat集群负载均衡单点登录
是否需要部署需要
1、编译Apache和mod_jk模块(需要root
用户编译)
不需要
CAS-server模块已经集成到TNMS系
统中,无需再部署
配置文件数量1、httpd.conf (全局配置文件)
2、httpd-vhosts.conf (虚拟主机的配置
文件)
3、workers.properties (负载均衡配置文
件)
4、server.xml (tomcat配置文件)
1、CAP.xml
2、cas.properties
3、startUIServer.sh
4、stopUIServer.sh
5、server.xml
6、frame.xhtml
7、web.xml
8、Spring-security-acegi-cas.xml
对TNMS系统影响范围安装配置调试过程都不会影响TNMS系统运
行,与TNMS系统完全独立
修改TNMS配置文件和调试过程都会
对TNMS系统产生影响
是否对用户使用透明完全透明 (访问方式:
http://10.2.0.132:8080/tnms)
完全透明 (访问方式:
http://10.2.0.132:8080/tnms)
对现场维护是否透明完全透明(多个tomcat使用同一个项目文
件,现场还是像以前一样维护一个项目文件
即可,也就是一个WebUI)
不透明(现场需要同时维护多个项目
文件,也就是多个WebUI)
工作模式使用多个tomcat,每个tomcat都负责TNMS
系统的所有模块,如果多个用户同时访问系
统,会被自动分配到空闲的tomcat上,保
证每个tomcat用户数达到平衡。任何一个
tomcat服务挂掉,在挂掉的这个tomcat上
的用户会被无缝切换到其他tomcat上,用
户可以继续使用;
使用多个tomcat,每个tomcat都只是
负责具体的模块,用户访问系统的时
候,在访问多个TNMS模块时,用户会
话会通过CAS自动登录到其的tomcat
以便访问其他模块。如果有多个用户
同时访问同一个模块(告警),那么负
载会全部集中在这一个tomcat本身
上,一但这个tomcat挂掉,访问这个
模块的用户将全部不能再访问;
优点1、配置简单,可以随时灵活的增加tomcat
服务
2、对最终用户和现场维护都是完全透明
3、可用性高
1、无需安装
2、能够将用户访问控制范围缩小到一
个模块
3、可以将一个模块的日志单独打印到
一个日志中
缺点1、需要使用root用户安装编译apache 1、需要配置多个WebUI,增大现场维护量
2、配置过程复杂繁琐而且容易出错
3、每次TNMS系统大版本升级完成之后还需要重新配置
4、增加一个tomcat就需要做很多配置修改
性能对比
实施步骤
1、检查系统是否满足安装要求
Apache和mod_jk都是源码安装,所以需要具备编译环境,按照以下方式进行检查:
1、Linux和SunOS检查gcc是否安装
检查gcc是否安装
[root@tnms132 ~]# gcc -version
检查g++是否安装
[root@tnms132 ~]# g++ --version
2、hp服务器检查是否有aCC编译工具
root@tnmsapp2:/ # aCC -V
aCC: HP ANSI C++ B3910B A.03.70