Tomcat集群Session会话复制方案

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Tomcat集群Session会话复制方案,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Tomcat集群Session会话复制方案

一、配置Tomcat

1.进入tomcat官网查找相应tomcat版本的文档,版本不同配置信息也就相应不同。

在这里插入图片描述
在这里插入图片描述
图中标识2就是tomcat默认的群集配置
在这里插入图片描述

2.打开tomcat/config/server.xml配置文件。

<Engine name="Catalina" defaultHost="localhost">节点下进行配置以启用群集。

 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">

          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <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="4000"
                      autoBind="100"
                      selectorTimeout="5000"
                      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.MessageDispatchInterceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

          <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>

在这里插入图片描述
3.重要的默认值:

1.组播地址是228.0.0.4

2.组播端口为45564(端口和地址共同决定集群成员资格。

3.广播的IP是java.net.InetAddress.getLocalHost().getHostAddress()(确保广播IP不是127.0.0.1,这是一个常见错误)

4.侦听复制消息的TCP端口是范围中的第一个可用服务器套接字(Socket) 4000-4100

5.配置侦听器 ClusterSessionListener

6.配置两个拦截器TcpFailureDetector,MessageDispatchInterceptor

4.注意点:

1.确保web.xml有` <distributable/>`元素

2.如果Tomcat实例在同一台机器上运行,要确保Receiver.port 每个实例的属性都是唯一的,在大多数情况下,Tomcat可以通过自动检测4000-4100范围内的可用端口自行解决此问题。

3.如果Tomcat部署不同的服务器上时,则address的值应为当前主机的IP地址,port=”4000”即可。
	
4.多个tomcat共享同一个session时,Membership节点的address和port必须一致,一般不会有改动。

5.Receiver节点是配置组播接收者,接收地址address和端口port是当前主机的信息,通过这个信息加入群集。

6.保证访问域名或url要一致,否则session不共享。
	http://localhost:8080/demo与http://localhost:8082/demo2不共享session

5.对要集群的tomcat进行如上信息配置

二、项目配置与启动配置

1.基于maven提供的项目模板快速创建一个web项目。
在这里插入图片描述

2.修改默认的index.jsp页面,以供区别session共享是否生效.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Tomcat1</title>
</head>
<body>
SessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
</body>
</html>

在这里插入图片描述
3.在默认提供的web.xml中添加 <distributable/>(很重要)

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <distributable/>
</web-app>

在这里插入图片描述
4.tomcat启动信息配置
在这里插入图片描述
在这里插入图片描述
5.查看tomcat启动信息
Tomcat1
在这里插入图片描述
在这里插入图片描述
Tomcat2
在这里插入图片描述
6.浏览器验证
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137158.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!