Tomcat Cluster (Unicast)

윤훈빈·2023년 7월 26일

Tomcat

목록 보기
4/5

OS : CentOS 7.9
Infra : Azure

환경
Apache 1대
Tomcat 2대

Azure Cloud 환경에서는 Multicast가 동작을 하지 않기 때문에 Unicast로 진행

vi server.xml

<!-- 이 구정 삭제 -->
<Engine name="Catalina" defaultHost="localhost">

<!-- Tomcat 1번 설정 -->
<Cluster 
    channelSendOptions="8" 
    channelStartOptions="3" 
    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">
    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
        <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" />
    </Sender>
    <Receiver 
        address="tomcat 1번 IP"        
        autoBind="0" 
        className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
        maxThreads="6" 
        port="tomcat 1번 port" 
        selectorTimeout="5000"/> 
        <!-- server1 information -->
    <!-- <Interceptor className="com.dm.tomcat.interceptor.DisableMulticastInterceptor" /> -->
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor" staticOnly="true"/>
    <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="tomcat 2번 port" 
            host="tomcat 2번 IP" 
            uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2}" />
    </Interceptor>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor" />
</Channel>
<Valve 
    className="org.apache.catalina.ha.tcp.ReplicationValve" 
    filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" 
/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener" />
</Cluster>
 
 
 
<!-- tomcat 2번 설정 -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

<Cluster 
    channelSendOptions="8" 
    channelStartOptions="3" 
    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">
    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
        <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" />
    </Sender>
    <Receiver 
        address="2번 tomcat IP" 
        autoBind="0" 
        className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
        maxThreads="6" 
        port="2번 tomcat port" 
        selectorTimeout="5000"
    /> <!-- server1 information -->
    <!-- <Interceptor className="com.dm.tomcat.interceptor.DisableMulticastInterceptor" /> -->
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor" staticOnly="true"/>
    <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="1번 tomcat port" 
            host="1번 tomcat IP" 
            uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3}" 
        />
    </Interceptor>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor" />
</Channel>
<Valve 
    className="org.apache.catalina.ha.tcp.ReplicationValve" 
    filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" 
/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener" />
</Cluster>


정상 Log

profile
Devops, WEB/WAS

0개의 댓글