`
xiang37
  • 浏览: 429465 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Apache负载均衡实战-session共享

 
阅读更多

Apache负载均衡实战

              Session共享

准备工作

下载Apachetomcat

    2个或者多个tomcat

F:\JavaProgram\apache-tomcat-7.0.64-8088

F:\JavaProgram\apache-tomcat-7.0.64-8080

1apache

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复制的方式:BackupManagerDeltaManager

2、Java应用sessionvalue需要序列化,否则无法实现session共享

分享到:
评论

相关推荐

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...

    CAS负载均衡实战

    配置Apache和Tomcat实现请求转发(负载均衡) 配置CAS实现Ticket共享(或复制) 配置Tomcat实现Session复制,这里主要是为了复制Web Flow的flowExecutionKey(CAS使用了Spring Web Flow)

    tomcat集群实现session复制

    在IT领域,特别是Web应用服务器的管理与优化中,Tomcat集群实现Session复制是一个关键的技术点,它确保了高可用性和负载均衡,特别是在处理大量并发请求的场景下。本文将深入探讨这一主题,涵盖其原理、配置方法以及...

    accp5.0y2项目实战-在线通讯录

    - Apache或Nginx:可能用作反向代理和负载均衡服务器,优化网站性能和可用性。 8. **持续集成/持续部署(CI/CD)**: - Jenkins或类似的工具可能用于自动化构建和部署过程,确保代码质量和快速迭代。 此项目不仅...

    Tomcat均衡负载,集群配置

    Tomcat的负载均衡和集群配置涉及到多个方面,包括但不限于网络架构设计、session复制、故障转移等。在这个过程中,我们可以利用诸如Nginx、Apache HTTP Server这样的反向代理服务器,或者通过修改Tomcat自身的配置...

    tomcat集群+负载平衡配置

    在本篇实战总结中,我们将详细介绍如何构建一个基于Tomcat的集群环境,并实现负载均衡功能。 #### 二、关键技术组件介绍 1. **Apache 2.0.54**: 作为HTTP服务器,Apache被用来作为前端代理服务器,接收来自客户端...

    Apache Tomcat 6高级编程 pdf

    - **负载均衡方案**:探讨不同类型的负载均衡器(如硬件、软件)以及它们在高可用性集群中的应用。 - **故障转移机制**:了解如何设置故障转移策略,确保单个节点出现故障时服务不中断。 - **集群配置**:详细讲解...

    tomcat--Cluster.rar_cluster_tomcat_tomcat Clust

    Tomcat内置了简单的负载均衡器,但通常推荐使用Nginx、Apache HTTP Server或者硬件负载均衡设备。 3. **通信机制**: Tomcat使用`mod_jk`或`mod_proxy_ajp`模块与Apache HTTP Server进行通信,或使用`JKMount`配置与...

    Tomcat原理与实战

    例如,可以使用负载均衡器分发请求,确保日志集中管理和分析,以及设置故障转移机制以保证高可用性。 **3. 新特性** Tomcat随着版本更新不断引入新特性,如性能优化、安全增强、内存泄漏检测、支持更高级的SSL/TLS...

    大型分布式网站架构设计与实战

    Redis、Memcached等缓存服务广泛应用于session共享、热点数据存储,通过缓存减少对数据库的依赖,提升响应速度。 5. **消息队列**:如RabbitMQ、Kafka等消息中间件,用于异步处理任务,解耦各个服务,提高系统吞吐...

    Tomcat服务器集群

    3. 配置负载均衡器,如Nginx或Apache,用于接收客户端请求并分发到各个节点。 4. 配置session复制或共享机制。 5. 测试集群是否正常运行,验证session一致性及故障转移功能。 【知识点五】:资源下载与实战指南 ...

    Tomcat集群资料

    1. 负载均衡:这是集群的核心机制,通过特定的负载均衡器(如Nginx、HAProxy等)将请求分配到各个服务器节点。 2. 会话复制:为了保持用户会话的一致性,集群中的所有节点需要共享会话状态。Tomcat支持基于内存和...

    Java思维导图xmind文件+导出图片

    session跨域共享及企业级单点登录解决方案实战 分布式事务解决方案实战 高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构实现分布式定时调度 分布式架构-中间件 分布式消息...

    网站性能提高实战经验点滴记录

    3. **负载均衡**:添加Web服务器,并确保session和cache在数据库或Memcached中同步,代码补丁和动态资源也需同步。 **代码优化:** 1. **避免无效循环**:优化循环结构,减少不必要的计算,提高代码执行效率。 2. *...

    淘宝商城Java web项目

    运维方面,监控系统性能、负载均衡和故障恢复也是重要的环节。 在【testShopping】这个压缩包文件中,可能包含了项目源代码、配置文件、数据库脚本等资源,供开发者学习和研究。通过深入理解这些内容,可以了解到一...

Global site tag (gtag.js) - Google Analytics