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

  • 相关阅读:
    openmediavault 5.5.23 安装插件失败的解决方案
    qt下载地址
    qt 5.12 增加 mysql驱动
    选基金标准
    关注几个基金
    调仓的几个问题
    要读的书
    ubuntu 20.04 LTS 安装webmin
    set的常见用法
    斜率优化dp([HNOI2008]玩具装箱)
  • 原文地址:https://www.cnblogs.com/ouyida3/p/9425027.html
Copyright © 2011-2022 走看看