<!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. channelSendOptions可以设置为2、4、8、10,每个数字代表一种方式 2 = Channel.SEND_OPTIONS_USE_ACK(确认发送) 4 = Channel.SEND_OPTIONS_SYNCHRONIZED_ACK(同步发送) 8 = Channel.SEND_OPTIONS_ASYNCHRONOUS(异步发送) 在异步模式下,可以通过加上确认发送(Acknowledge)来提高可靠性,此时channelSendOptions设为10 --> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <!-- Manager决定如何管理集群的Session信息。Tomcat提供了两种Manager:BackupManager和DeltaManager BackupManager-集群下的所有Session,将放到一个备份节点。集群下的所有节点都可以访问此备份节点 DeltaManager-集群下某一节点生成、改动的Session,将复制到其他节点。 DeltaManager是Tomcat默认的集群Manager,能满足一般的开发需求 使用DeltaManager,每个节点部署的应用要一样;使用BackupManager,每个节点部署的应用可以不一样. className-指定实现org.apache.catalina.ha.ClusterManager接口的类,信息之间的管理. expireSessionsOnShutdown-设置为true时,一个节点关闭,将导致集群下的所有Session失效 notifyListenersOnReplication-集群下节点间的Session复制、删除操作,是否通知session listeners maxInactiveInterval-集群下Session的有效时间(单位:s)。 maxInactiveInterval内未活动的Session,将被Tomcat回收。默认值为1800(30min) --> <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> <!-- Channel是Tomcat节点之间进行通讯的工具。 Channel包括5个组件:Membership、Receiver、Sender、Transport、Interceptor --> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <!-- Membership维护集群的可用节点列表。它可以检查到新增的节点,也可以检查到没有心跳的节点 className-指定Membership使用的类 address-组播地址 port-组播端口 frequency-发送心跳(向组播地址发送UDP数据包)的时间间隔(单位:ms)。默认值为500 dropTime-Membership在dropTime(单位:ms)内未收到某一节点的心跳,则将该节点从可用节点列表删除。默认值为3000 注: 组播(Multicast):一个发送者和多个接收者之间实现一对多的网络连接。 一个发送者同时给多个接收者传输相同的数据,只需复制一份相同的数据包。 它提高了数据传送效率,减少了骨干网络出现拥塞的可能性 相同组播地址、端口的Tomcat节点,可以组成集群下的子集群 --> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <!-- Receiver : 接收器,负责接收消息 接收器分为两种:BioReceiver(阻塞式)、NioReceiver(非阻塞式) className-指定Receiver使用的类 address-接收消息的地址 port-接收消息的端口 autoBind-端口的变化区间 如果port为4000,autoBind为100,接收器将在4000-4099间取一个端口,进行监听 selectorTimeout-NioReceiver内轮询的超时时间 maxThreads-线程池的最大线程数 --> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <!-- Sender : 发送器,负责发送消息 Sender内嵌了Transport组件,Transport真正负责发送消息 --> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <!-- Transport分为两种:bio.PooledMultiSender(阻塞式)、nio.PooledParallelSender(非阻塞式) --> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <!-- Interceptor : Cluster的拦截器 TcpFailureDetector-网络、系统比较繁忙时,Membership可能无法及时更新可用节点列表, 此时TcpFailureDetector可以拦截到某个节点关闭的信息, 并尝试通过TCP连接到此节点,以确保此节点真正关闭,从而更新集群可以用节点列表 --> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <!-- MessageDispatch15Interceptor-查看Cluster组件发送消息的方式是否设置为 Channel.SEND_OPTIONS_ASYNCHRONOUS(Cluster标签下的channelSendOptions为8时)。 设置为Channel.SEND_OPTIONS_ASYNCHRONOUS时, MessageDispatch15Interceptor先将等待发送的消息进行排队,然后将排好队的消息转给Sender --> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <!-- Valve : 可以理解为Tomcat的拦截器 ReplicationValve-在处理请求前后打日志;过滤不涉及Session变化的请求 vmRouteBinderValve-Apache的mod_jk发生错误时,保证同一客户端的请求发送到集群的同一个节点 --> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <!-- Deployer : 同步集群下所有节点的一致性。Deployer没试验成功过。。。 --> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <!-- ClusterListener : 监听器,监听Cluster组件接收的消息 使用DeltaManager时,Cluster接收的信息通过ClusterSessionListener传递给DeltaManager --> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>
相关推荐
http://618119.com/docs/Tomcat/TomcatCluster.zip 下载解压到Tomcat(例如D:\Java\apache-tomcat-6.0.14)目录里,运行对应的bat文件即可: start15080.bat start16080.bat start17080.bat start18080.bat start...
NULL 博文链接:https://kanpiaoxue.iteye.com/blog/1560016
NULL 博文链接:https://xiaolaogong.iteye.com/blog/1331262
tomcat cluster参考资料3,迷惑几天,还要继续努力,大家共同研究
tomcat9负载均衡tomcat-cluster-redis-session-manager_4.0
tomcat7 的集群session共享 案例 亲测可用 无效联系我:351137017
tomcat 8.5.55 集成 tomcat-cluster-redis-session-manager 4.0
tomcat .how to use mod_jk to design a tomcat cluster
网站架构是,通过一个apache+多个tomcat和mysql的结 构。client的安装脚本。
支持tomcat7、tomcat8整合redis集群,最终实现session共享,亲测可用,积分少,不坑人
在不改变工程代码的情况下,使tomcat多个节点利用redis cluster进行session共享.
tomcat cluster sync-session利用exp 这是一个tomcat使用了自带会话同步功能时,不安全的配置(没有使用EncryptInterceptor)导致存在的反序列化漏洞,通过精心构造的数据包,可以对使用了tomcat自带会话同步功能的...
在这里,会话被实现为非粘性的(意味着,每个请求都可以转到集群中的任何服务器,这与Apache提供的Tomcat集群设置不同。) 请求会话将立即存储到Redis中(会话属性必须是可序列化的),以供其他服务器使用。 当...
nginx+ tomcat + redis-cluster 实现session同步所需的jar包
Tomcat集群Cluster实现原理剖析.doc
该文件是tomcat apache 配置负载均衡的脚本。 里面是用shell写的,在centos5.3下 测试过。
apache + tomcat 集群配置,实现了,负载均衡,session复制。
tomcat集群的详细配置,有详细配置方法,带文字说明。
tomcat redis session共享,支持tomcat7 jdk7、tomcat8 jdk7、tomcat8 jdk8、tomcat8.5 jdk7、tomcat9 jdk8