• tomcat-8.5.55 cluster配置session共享实现不停机部署


    参考文档:Apache Tomcat 8 (8.5.82) - Clustering/Session Replication How-To

    实验环境为本机,操作系统win10,tomcat版本8.5.55,配置两个tomcat实例,端口分别配置为8080,9080。

    官方建议4个节点以下。

    测试中用的demo:

    web.xml



      demo
     
     
        index.html
        index.htm
        index.jsp
        default.html
        default.htm
        default.jsp
     

    index.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="UTF-8"%>




    demo



    session id:<% out.println(session.getId() + "/tomcat 8080"); %>

    remote host :<%out.println(request.getRemoteHost()); %>

    remote port :<%out.println(request.getRemotePort()); %>



    如下:

    具体配置步骤如下:

    1、修改tomcat配置文件server.xml端口号一个是8080,另一个是9080

    2、在tomcat配置文件server.xml文件中增加如下配置(其中8080中端口号为4000,9080中端口号为4001,这里可以是4000到4100的任意值,因为是同一台机器,需要保证两台中唯一即可,其他都一样):

            apache.catalina.ha.tcp.SimpleTcpCluster"
                     channelSendOptions="8">

                                 expireSessionsOnShutdown="false"
                       notifyListenersOnReplication="true"/>

             
                                        address="228.0.0.4"
                            port="45564"
                            frequency="500"
                            dropTime="3000"/>
                                      address="auto"
                          port="4000"
                          autoBind="100"
                          selectorTimeout="5000"
                          maxThreads="6"/>

               
                 
               

               
               
             

                               filter=""/>
             
              
                                filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>

                                  tempDir="/tmp/war-temp/"
                        deployDir="/tmp/war-deploy/"
                        watchDir="/tmp/war-listen/"
                        watchEnabled="false"/>

             
           

     3、在自己的项目中的web.xml中加入配置,如下:

    4、在测试项目demo的jsp页面中加入测试代码,为了区分,一个信息写tomcat 8080,另一个写tomcat 9080:

    5、启动tomcat8080,tomcat9080

    6、访问测试,看session 信息是否一致,可以看到session id一致,均为37031974369C8F7847BB99217258F5CB

    7、可以关闭其中一台实例,再启动,发现session id不变。

  • 相关阅读:
    安全易用的文件同步程序:Syncthing | 开源日报 No.70
    开发语言漫谈-React
    计算机竞赛 题目:基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR
    基于SSM的教评系统毕业设计-附源码281157
    win11安装pytorch-gpu遇到的坑
    【SpringBoot2】依赖管理特性
    Android 布局优化,看过来 ~
    Rust 登上了开源头条「GitHub 热点速览」
    Hikvison对接iSecure Center时获取Appkey和Secert、不显示API网关、预览时提示网络请求失败
    spa入门之实现wecome
  • 原文地址:https://blog.csdn.net/zhangbest2009/article/details/127036002