Session tomcat集群是会话复制的唯一方法吗?

Session tomcat集群是会话复制的唯一方法吗?,session,tomcat,cluster-computing,failovercluster,session-replication,Session,Tomcat,Cluster Computing,Failovercluster,Session Replication,我在使用apache作为前端负载平衡器的ubuntu服务器上测试了会话复制的Tomcat集群。根据我的测试经验,我认为最好不要使用tomcat集群,而是将每个节点作为独立节点运行,而不进行任何会话复制,因为我觉得这样做速度慢,启动tomcat服务需要很多时间,并且会消耗更多内存。而且FarmDeployer在部署时并不总是可靠的,整个配置应该放在元素下,以便FarmDeployer工作,也可以用于每个虚拟主机,因此需要一个巨大的server.xml文件。下面是我使用的一个节点的tomcat虚拟主

我在使用apache作为前端负载平衡器的ubuntu服务器上测试了会话复制的Tomcat集群。根据我的测试经验,我认为最好不要使用tomcat集群,而是将每个节点作为独立节点运行,而不进行任何会话复制,因为我觉得这样做速度慢,启动tomcat服务需要很多时间,并且会消耗更多内存。而且
FarmDeployer
在部署时并不总是可靠的,整个配置应该放在
元素下,以便FarmDeployer工作,也可以用于每个虚拟主机,因此需要一个巨大的server.xml文件。下面是我使用的一个节点的tomcat虚拟主机和集群配置

<Host name="site1.mydomain.net" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="virtual_log1." suffix=".log" timestamp="true"/>
<Context path="" docBase="/usr/share/tomcat/webapps/myapp" debug="0" reloadable="true"/>

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

        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                  address="192.168.1.8"
                  port="4001"
                  selectorTimeout="100"
                  maxThreads="6"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
                <Member className="org.apache.catalina.tribes.membership.StaticMember"
                      port="4002"
                      securePort="-1"
                      host="192.168.1.9"
                      domain="staging-cluster"
                      uniqueId="{0,1,2,3,4,5,6,7,8,9}"/>

             <!--   <Member className="org.apache.catalina.tribes.membership.StaticMember"
                      port="4002"
                      securePort="-1"
                      host="192.168.1.9"
                      domain="staging-cluster"
                      uniqueId="{0,1,2,3,4,5,6,7,8,9}"/> -->

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

<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

  <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
            tempDir="/usr/share/tomcat/temp/"
            deployDir="/usr/share/tomcat/webapps/"
            watchDir="/usr/share/tomcat/watch/"
            watchEnabled="true"/>
    </Cluster>
</Host>

Tomcat集群是否适合在生产环境中使用,或者是否存在会话复制的替代方法?。或者我在上面的配置中遗漏了任何可以微调的东西


欢迎提出任何意见。谢谢

一个针对tomcat is(msm)的会话故障切换/会话复制解决方案,支持粘性和非粘性会话。msm使用(或任何使用memcached协议的后端)作为会话备份/存储的后端

在粘性模式下,会话仍然保存在tomcat中,memcached仅用作会话故障转移的额外备份

在非粘性模式下,会话只存储在memcached中,而不再存储在tomcat中,与非粘性会话一样,会话存储必须是外部的(以避免过时数据)

还特别支持/,这对于托管解决方案非常有用,在托管解决方案中,您可以通过适当的身份验证访问特定的存储桶

会话序列化是可插入的,因此您不必依赖于java序列化(以及实现可序列化的类)。例如,有一个序列化程序可用,它是

主要介绍粘性会话方法,以了解有关您可能在上搜索或询问的非粘性会话的详细信息


有关配置的详细信息和示例可以在中找到。

是否
memcached
是类似于tomcat的附加组件的单独产品?您可以在此处阅读有关memcached的内容:在一台或多台机器上安装memcached服务器,客户端可以设置/获取/删除缓存项。memcached会话管理器(作为tomcat会话管理器)是一个在memcached中存储/从memcached中检索会话的客户端。memcached在tomcat集群上是否有效?