tomcat8的session共享实现方案

发布时间:2020-07-28 00:52:48 作者:ouyida3
来源:网络 阅读:2724

tomcat8的session共享实现

下载tomcat

版本:apache-tomcat-8.0.53.zip

实现步骤,只需要两步

  1. 两个tomcat的server.xml都增加一样cluster配置
    <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.MessageDispatch25Interceptor" />
        </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>
  2. 两个tomcat的应用的web.xml下都增加<distributable/>
    比如在:
    /Users/da/Library/Tomcat/apache-tomcat-8.0.53-8081/webapps/ROOT/WEB-INF/web.xml
    增加:
    <distributable/>
  3. 然后重启两台tomcat即可

新建jsp测试

session.jsp

<html>
<head>
<title>test2</title>
</head>
<body>
    SessionID is
    <%=session.getId()%>
    <BR> SessionIP is
    <%=request.getServerName()%>
    <BR> SessionPort is
    <%=request.getServerPort()%>
    <%
        out.println("Response from tomcat2");
    %>
</body>
</html>

比如放置在:
/Users/da/Library/Tomcat/apache-tomcat-8.0.53-8082/webapps/ROOT/session.jsp
另一台一样。

访问:
http://localhost:8081/session.jsp
http://localhost:8082/session.jsp

sessionid一致:

SessionID is 6E5D26E07FDE6FB5D01A59F457D64333 
SessionIP is tomcat.chinaunicom.tech 
SessionPort is 80 Response from tomcat1

SessionID is 6E5D26E07FDE6FB5D01A59F457D64333 
SessionIP is tomcat.chinaunicom.tech 
SessionPort is 80 Response from tomcat2

注意事项

  1. 需要使用tomcat8版本(上述测试在8.0.53上通过)。如果需要tomcat7,请告诉我,不是这种配置,我需要修改一下
  2. 不要漏了distributable的配置,漏了session也不能共享
  3. 这种方案只适用于并发量较少的应用,目前可以先用着,明天我再尝试并发量大的复杂一点的方案看行不行

参考官网:
http://localhost:8082/docs/cluster-howto.html
http://tomcat.apache.org/tomcat-8.0-doc/config/cluster.html
翻译:
http://wiki.jikexueyuan.com/project/tomcat/clustering.html

推荐阅读:
  1. LNMT群集基于Redis实现Session共享
  2. 如何实现session共享

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tomcat 共享 实现

上一篇:ie浏览器下,css 去掉图片之间产生空白行距问题解决

下一篇:求一个数阶乘末尾0的个数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》