Cluster 对象
目录
简介
tomcat 集群实现提供会话复制、上下文属性复制和集群范围的 WAR 文件部署。虽然 Cluster
配置相当复杂,但默认配置对大多数人来说开箱即用。
Tomcat 集群实现具有很强的可扩展性,因此我们公开了许多选项,使配置看起来很多,但不要失去信心,相反,你可以很好地控制正在发生的事情。
安全性
集群实现基于以下基础编写:所有与集群相关的网络流量都使用安全、受信任的网络。在不安全、不受信任的网络上运行集群是不安全的。
有很多选项可以为 Tomcat 集群提供安全、受信任的网络。其中包括
- 专用 LAN
- 虚拟专用网络 (VPN)
- IPSEC
EncryptInterceptor 提供机密性和完整性保护,但它不能防止与在不受信任的网络上运行 Tomcat 集群相关的所有风险,尤其是 DoS 攻击。
引擎与主机放置
你可以在 <Engine>
容器或 <Host>
容器中放置 <Cluster>
元素。
将它放在引擎中意味着你将支持 Tomcat 中所有虚拟主机的集群,并共享消息传递组件。当你将 <Cluster>
放置在 <Engine>
元素中时,集群会将每个会话管理器的主机名追加到管理器的名称,以便可以区分具有相同名称但位于两个不同主机中的两个上下文。
上下文属性复制
要配置上下文属性复制,只需通过交换用于应用程序上下文的上下文实现来执行此操作。
<Context className="org.apache.catalina.ha.context.ReplicatedContext"/>
此上下文扩展了 Tomcat StandardContext
,因此来自 基本实现 的所有选项都是有效的。
嵌套组件
管理器:
会话管理器元素标识此集群实现中使用的会话管理器类型。此管理器配置与在常规 <Context>
配置中使用的配置相同。
默认值是 org.apache.catalina.ha.session.DeltaManager
,它与 SimpleTcpCluster
实现紧密耦合。其他管理器(如 org.apache.catalina.ha.session.BackupManager
)是/可能是松散耦合的,并且不依赖于 SimpleTcpCluster
进行数据复制。
通道:
通道及其子组件都是集群组的 IO 层的一部分,并且是我们在其中自己命名的“Tribes”模块
网络层、消息传递和成员资格逻辑的任何配置和调整都将在通道及其嵌套组件中完成。您始终可以找到有关 Apache Tribes 的更多信息
阀:
Tomcat 集群实现使用 Tomcat 阀
来跟踪请求何时进入和退出 servlet 容器。它使用这些阀来能够对何时复制数据做出明智的决策,而复制数据始终在请求结束时进行。
部署器:
部署程序组件是 Tomcat Farm 部署程序。它允许您在整个集群范围内部署和取消部署应用程序。
集群侦听器:
集群侦听器用于跟踪使用 SimpleTcpCluster
发送和接收的消息。如果您希望跟踪消息,则可以在这里添加侦听器,或者可以向通道对象添加阀。
属性
SimpleTcpCluster 属性
属性 | 说明 |
---|---|
className |
主集群类,当前仅提供一个, |
channelSendOptions |
Tribes 通道发送选项,默认值为
一些值是
各种
您还可以将这些选项设置为逗号分隔的字符串,例如“async, multicast”,它将被转换为 |
channelStartOptions |
设置群集使用的 <Channel> 对象的启动和停止标志。默认值为
使用静态成员服务 |
heartbeatBackgroundEnabled |
标志是否在容器后台线程调用通道心跳。默认值为 false。启用此标志,别忘了禁用通道心跳线程。 |
notifyLifecycleListenerOnFailure |
标志如果所有群集侦听器无法接受通道消息,是否通知 LifecycleListeners。默认值为 false。 |