一个配置文件:
复代码代码如下:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
채널SendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
만료SessionsOnShutdown="false"
informListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
만료SessionsOnShutdown="false"
informListenersOnReplication="true"/>
-->
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
주소="228.0.0.4"
포트="45564"
빈도="500"
드롭타임="3000"/>
<수신기 클래스 이름="org.apache.catalina.tribes.transport.nio.NioReceiver"
주소="자동"
포트="5000"
선택기타임아웃="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</발신자>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</채널>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*/.gif|.*/.js|.*/.jpeg|.*/.jpg|.*/.png|.*/.htm|.*/.html|.*/.css |.*/.txt"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
배포 디렉터리="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</클러스터>
설명:
1, 클러스터复代码代码如下:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
채널SendOptions="6">
1) Tomcat의 주요 요소는 다음과 같습니다.
2)className主要的集群类,当前只提供了org.apache.catalina.ha.tcp.SimpleTcpCluste가 为实现类
3)channelSendOptionssession发送方式,默认值是8,这个标识确결정통합过SimpleTcpCluste如何发送消息
4) 채널.SEND_OPTIONS_SYNCHRONIZED_ACK = 0x0004
채널.SEND_OPTIONS_ASYNCHRONOUS = 0x0008
채널.SEND_OPTIONS_USE_ACK = 0x0002
如果使用(ASYNCHRONOUS)加(USE_ACK)方式来发送消息,那么值应该是10(8+2)或者0x000B
如果使사용(SYNCHRONIZED_ACK)加(USE_ACK)方式来发送消息,那么值应该是6(4+2)或者0x0006
2、관리자复代码代码如下:
<Manager className="org.apache.catalina.ha.session.BackupManager"
만료SessionsOnShutdown="false"
informListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
만료SessionsOnShutdown="false"
informListenersOnReplication="true"/>
-->
1) Tomcat의 세션을 관리하는 방법
2) className 이전에는 org.apache.catalina.ha.session.DeltaManager 및 org.apache.catalina.ha.session.BackupManager가 있습니다.
3) DeltaManager가 세션을 제어하는 방식은 매우 다양합니다.集群 节 点 类型 要 同 , 而 且 要 署 佲 同 应 用程 序
4)expireSessionsOnShutdown当一个web程序被结束时,tomcat分发销毁命令到每个Session,并communicationsOnShutdown当一个web程序被结束时,如果想销毁所有节点下的Session,设置为true ,默认为 거짓
5)notifyListenersOnReplication如果设置为true, 세션 리스너 제어 및 세션 리스너被통지
3, 채널复代码代码如下:
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
Channel은 Apache Tribes의 주주이며, 채널 관리자와 함께 사용하며 Tomcat을 사용하는 Tomcat을 사용합니다.信息传递,而BackupManager自己调사용 채널以及子복제된 컨텍스트는 복제된 컨텍스트를 사용하는 채널로 컨텍스트 속성을 제공합니다.
4、회원가입
复代码代码如下:
<Membership className="org.apache.catalina.tribes.membership.McastService"
주소="228.0.0.4"
포트="45564"
빈도="500"
드롭타임="3000"/>
MemberShip은 자체적으로 새로운 정보를 제공하며 새로운 정보를 제공합니다.
5、수신기复代码代码如下:
<수신기 클래스 이름="org.apache.catalina.tribes.transport.nio.NioReceiver"
주소="자동"
포트="5000"
선택기타임아웃="100"
maxThreads="6"/>
비차단 TCP 서버 소켓을 사용합니다.
6、발신자复代码代码如下:
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</발신자>
이는 TCP 클라이언트 소켓을 사용하는 것입니다.
7, 인터셉터复代码代码如下:
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
채널을 통해 Interceptor는 MemberShip의 관리 방법을 통해 자체적으로 정의된 방식으로 인터셉터를 실행할 수 있습니다.
8、가치复代码代码如下:
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*/.gif|.*/.js|.*/.jpeg|.*/.jpg|.*/.png|.*/.htm|.*/.html|.*/.css |.*/.txt"/>
1) Http 요청에 대한 가치는 链中起着拦截器的 着拦截器的 着来决定什么情况下数据需要被复管입니다.
org.apache.catalina.ha.tcp.ReplicationValve,ReplicationValue는 Http 요청에 따라 실행됩니다.
2) 필터内容为url或者文件结尾,当访问链接配置filter时,不论实际session有没有改变,集群会认为session没有任何变化从而不세션의 특성을 확인하세요.
9、배포자复代码代码如下:
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
배포 디렉터리="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
使集群支持농장 배포
10、클러스터 리스너复代码代码如下:
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
클러스터 수신기는 다음과 같은 기능을 사용합니다.
ClusterSessionListener는 ClusterSessionListener를 사용하여 DeltaManager를 사용합니다.ClusterSessionListener는 Session Manager를 사용합니다.