zoukankan      html  css  js  c++  java
  • tomcat8的session共享实现方案

    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.MessageDispatch15Interceptor" />
    		</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>
    
    1. 两个tomcat的应用的web.xml下都增加

    比如在:
    /Users/Library/Tomcat/apache-tomcat-8.0.53-8081/webapps/ROOT/WEB-INF/web.xml
    增加:

    	<distributable/>
    
    1. 然后重启两台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/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. 这种方案只适用于并发量较少的应用,并发量大需使用redis等方案

    参考官网:
    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

  • 相关阅读:
    创建桌面快捷方式
    令牌桶在数据通信QoS流量监管中的应用
    cocos2d-x 实现clash of clans多点聚焦缩放场景
    NotePad++ 快捷键中文说明
    2017第24周日
    《自信力~成为更好的自己》晨读笔记
    不知道如何决定的时候就快速决定
    《意外之外》晨读笔记
    《从“为什么”开始》听书笔记
    解决电脑上网问题记录
  • 原文地址:https://www.cnblogs.com/ouyida3/p/9425027.html
Copyright © 2011-2022 走看看