Apache负载均衡实战
含Session共享
一准备工作
下载Apache、tomcat
2个或者多个tomcat
F:\JavaProgram\apache-tomcat-7.0.64-8088
F:\JavaProgram\apache-tomcat-7.0.64-8080
1个apache
F:\Apache24\bin
下载mod_jk.so
将此文件添加到目录F:\Apache24\modules
二配置文件
1 修改Apache conf目录下的httpd.conf
在最后一行添加
include "F:\Apache24\conf\mod_jk.conf"
2 新建mod_jk.conf文件
在目录F:\Apache24\conf下添加文件,内容如下:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /* controller
3 tomcat配置
在Server.xml文件中添加两端配置:
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat2">
集群配置:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
4 应用配置
需要在应用的web.xml文件中添加如下配置,表示该应用将在分布式容器中部署:
<distributable/>
5 新建workers.properties文件
在目录F:\Apache24\conf下添加文件,内容如下
#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=8019
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
附一 Apache基本的操作方法:
本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apache启动
apache停止命令
/usr/local/apache2/bin/apachectl stop 停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful
附二引申以及需要注意的问题:
1、session复制的方式:BackupManager与DeltaManager
2、Java应用session的value需要序列化,否则无法实现session共享
相关推荐
在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...
配置Apache和Tomcat实现请求转发(负载均衡) 配置CAS实现Ticket共享(或复制) 配置Tomcat实现Session复制,这里主要是为了复制Web Flow的flowExecutionKey(CAS使用了Spring Web Flow)
在IT领域,特别是Web应用服务器的管理与优化中,Tomcat集群实现Session复制是一个关键的技术点,它确保了高可用性和负载均衡,特别是在处理大量并发请求的场景下。本文将深入探讨这一主题,涵盖其原理、配置方法以及...
- Apache或Nginx:可能用作反向代理和负载均衡服务器,优化网站性能和可用性。 8. **持续集成/持续部署(CI/CD)**: - Jenkins或类似的工具可能用于自动化构建和部署过程,确保代码质量和快速迭代。 此项目不仅...
Tomcat的负载均衡和集群配置涉及到多个方面,包括但不限于网络架构设计、session复制、故障转移等。在这个过程中,我们可以利用诸如Nginx、Apache HTTP Server这样的反向代理服务器,或者通过修改Tomcat自身的配置...
在本篇实战总结中,我们将详细介绍如何构建一个基于Tomcat的集群环境,并实现负载均衡功能。 #### 二、关键技术组件介绍 1. **Apache 2.0.54**: 作为HTTP服务器,Apache被用来作为前端代理服务器,接收来自客户端...
- **负载均衡方案**:探讨不同类型的负载均衡器(如硬件、软件)以及它们在高可用性集群中的应用。 - **故障转移机制**:了解如何设置故障转移策略,确保单个节点出现故障时服务不中断。 - **集群配置**:详细讲解...
Tomcat内置了简单的负载均衡器,但通常推荐使用Nginx、Apache HTTP Server或者硬件负载均衡设备。 3. **通信机制**: Tomcat使用`mod_jk`或`mod_proxy_ajp`模块与Apache HTTP Server进行通信,或使用`JKMount`配置与...
例如,可以使用负载均衡器分发请求,确保日志集中管理和分析,以及设置故障转移机制以保证高可用性。 **3. 新特性** Tomcat随着版本更新不断引入新特性,如性能优化、安全增强、内存泄漏检测、支持更高级的SSL/TLS...
Redis、Memcached等缓存服务广泛应用于session共享、热点数据存储,通过缓存减少对数据库的依赖,提升响应速度。 5. **消息队列**:如RabbitMQ、Kafka等消息中间件,用于异步处理任务,解耦各个服务,提高系统吞吐...
3. 配置负载均衡器,如Nginx或Apache,用于接收客户端请求并分发到各个节点。 4. 配置session复制或共享机制。 5. 测试集群是否正常运行,验证session一致性及故障转移功能。 【知识点五】:资源下载与实战指南 ...
1. 负载均衡:这是集群的核心机制,通过特定的负载均衡器(如Nginx、HAProxy等)将请求分配到各个服务器节点。 2. 会话复制:为了保持用户会话的一致性,集群中的所有节点需要共享会话状态。Tomcat支持基于内存和...
session跨域共享及企业级单点登录解决方案实战 分布式事务解决方案实战 高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构实现分布式定时调度 分布式架构-中间件 分布式消息...
3. **负载均衡**:添加Web服务器,并确保session和cache在数据库或Memcached中同步,代码补丁和动态资源也需同步。 **代码优化:** 1. **避免无效循环**:优化循环结构,减少不必要的计算,提高代码执行效率。 2. *...
运维方面,监控系统性能、负载均衡和故障恢复也是重要的环节。 在【testShopping】这个压缩包文件中,可能包含了项目源代码、配置文件、数据库脚本等资源,供开发者学习和研究。通过深入理解这些内容,可以了解到一...