首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集群/会话复制tomcat 9两台不同的机器

集群/会话复制tomcat 9两台不同的机器
EN

Server Fault用户
提问于 2020-04-23 11:38:27
回答 1查看 1.8K关注 0票数 0

我正在尝试在单独的EC2 (AWS)实例上配置两个tomcats上的会话复制。我在互联网上找不到这种配置的例子。我已经根据以下文档准备了配置:集群-如何

tomcat 1:

代码语言:javascript
复制
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
           channelSendOptions="8" channelStartOptions = "3">
      <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.StaticMembershipService">
                <LocalMember className="org.apache.catalina.tribes.membership.StaticMember"
                          uniqueId="{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}"/>
                <Member className="org.apache.catalina.tribes.membership.StaticMember"
                          port="4110"
                          host="10.0.200.221"
                          domain="tomcat-sys-ws"
                          uniqueId="{0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1}" />
            </Membership>

           <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                     address="10.0.200.82"
                     port="4110"
                     autoBind="9"
                     selectorTimeout="2000"
                     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.TcpPingInterceptor"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

           <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
                <Member className="org.apache.catalina.tribes.membership.StaticMember"
                          port="4110"
                          host="10.0.200.221"
                          domain="tomcat-sys-ws"
                          uniqueId="{0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1}" />
           </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.ClusterSessionListener"/>
 </Cluster>

tomcat 2

代码语言:javascript
复制
 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
           channelSendOptions="8" channelStartOptions = "3">
      <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.StaticMembershipService">
                <LocalMember className="org.apache.catalina.tribes.membership.StaticMember"
                             uniqueId="{0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1}"/>
                <Member className="org.apache.catalina.tribes.membership.StaticMember"
                          port="4110"
                          host="10.0.200.82"
                          domain="tomcat-sys"
                          uniqueId="{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}" />
            </Membership>

           <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                     address="10.0.200.221"
                     port="4110"
                     autoBind="9"
                     selectorTimeout="2000"
                     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.TcpPingInterceptor"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
           <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

           <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
                <Member className="org.apache.catalina.tribes.membership.StaticMember"
                          port="4110"
                          host="10.0.200.82"
                          domain="tomcat-sys"
                          uniqueId="{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}" />
           </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.ClusterSessionListener"/>
 </Cluster>

lsof -i -P -n | grep 4110命令的输出:

tomcat 1:

代码语言:javascript
复制
java    3872   ws   61u  IPv6  28517      0t0  TCP 10.0.200.82:4110 (LISTEN)
java    3872   ws   69u  IPv6  30873      0t0  TCP 10.0.200.82:4110->10.0.200.221:47020 (ESTABLISHED)
java    3872   ws   77u  IPv6  30882      0t0  TCP 10.0.200.82:58452->10.0.200.221:4110 (ESTABLISHED)

tomcat 2:

代码语言:javascript
复制
java      6888 mibbot   62u  IPv6  28987      0t0  TCP 10.0.200.221:4110 (LISTEN)
java      6888 mibbot   71u  IPv6  28590      0t0  TCP 10.0.200.221:47020->10.0.200.82:4110 (ESTABLISHED)
java      6888 mibbot  281u  IPv6  29035      0t0  TCP 10.0.200.221:4110->10.0.200.82:58452 (ESTABLISHED)

具有群集日志的文件中的错误:

代码语言:javascript
复制
23-Apr-2020 11:28:18.498 FINE [Tribes-Task-Receiver[Catalina-Channel]-1] org.apache.catalina.tribes.transport.nio.NioReplicationTask.remoteEof Channel closed on the remote end, disconnecting
23-Apr-2020 11:28:20.643 INFO [MessageDispatchInterceptor.MessageDispatchThread[Catalina-Channel]1] org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.report ThroughputInterceptor Report[
        Tx Msg:1 messages
        Sent:0.00 MB (total)
        Sent:0.00 MB (application)
        Time:0.00 seconds
        Tx Speed:∞ MB/sec (total)
        Tx Speed:∞ MB/sec (application)
        Error Msg:0
        Rx Msg:4 messages
        Rx Speed:0.00 MB/sec (since 1st msg)
        Received:0.00 MB]

23-Apr-2020 11:28:23.498 FINE [Tribes-Task-Receiver[Catalina-Channel]-5] org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived Received a failure detector packet:ClusterData[src=org.ap
ache.catalina.tribes.membership.MemberImpl[tcp://{10, 0, 200, 221}:4110,{10, 0, 200, 221},4110, alive=1587638117809, securePort=-1, UDP Port=-1, id={0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 }, payload={}, command={
}, domain={}]; id={-110 -41 53 -5 37 -7 72 -84 -101 52 55 37 -46 3 83 41 }; sent=2020-04-23 11:28:23.497]

你知道我应该改变什么配置吗?

EN

回答 1

Server Fault用户

发布于 2021-01-10 00:55:00

移动

代码语言:javascript
复制
      <Manager className="org.apache.catalina.ha.session.DeltaManager"
               expireSessionsOnShutdown="false"
               notifyListenersOnReplication="true"/>

转到context.xml

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1013758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档