集群阀门对象

目录

简介

集群阀门与任何其他 Tomcat Valve 没有区别。集群阀门是HTTP请求调用链中的拦截器,集群实现使用这些阀门来智能地决定数据以及何时复制数据。

集群阀门必须实现 org.apache.catalina.ha.ClusterValve 接口。这是一个简单的接口,它扩展了 org.apache.catalina.Valve 接口。

org.apache.catalina.ha.tcp.ReplicationValve

ReplicationValve 将在HTTP请求结束时通知集群,以便集群能够决定是否有数据需要复制。

属性

属性描述
className将值设置为 org.apache.catalina.ha.tcp.ReplicationValve
filter对于已知的文件扩展名或URL,您可以使用此阀门通知集群在此请求期间会话未被修改,并且集群无需探测会话管理器以查找更改。如果请求与此过滤模式匹配,集群假定会话没有发生更改。一个示例过滤器将是 filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt" 。该过滤器是使用 java.util.regex 的正则表达式。如果未指定过滤模式或过滤模式被配置为空字符串,则不会进行任何过滤。
primaryIndicator布尔值,设置为 true,复制阀门将插入一个请求属性,其名称由 primaryIndicatorName 属性定义。插入到请求属性中的值是 Boolean.TRUEBoolean.FALSE
primaryIndicatorName默认值是 org.apache.catalina.ha.tcp.isPrimarySession。此处定义的值是请求属性的名称,该属性包含会话在此服务器上是否为主的布尔值。
statistics布尔值。如果您希望阀门收集请求统计信息,请设置为 true。默认值是 false

org.apache.catalina.ha.session.JvmRouteBinderValve

在 mod_jk 故障转移的情况下,JvmRouteBinderValve 将替换会话ID中的 jvmWorker 属性,以使未来的请求粘滞到此节点。如果您需要回退能力,请不要启用此阀门,但如果您希望故障转移粘滞,并且不希望 mod_jk 继续探测已宕机的节点,则使用此阀门。

属性

属性描述
className org.apache.catalina.ha.session.JvmRouteBinderValve
enabled默认值为 true。运行时属性,用于开启或关闭会话的 jvmRoute 值切换。
sessionIdAttribute故障转移之前的旧会话ID会使用此属性注册在请求属性中。默认属性名称是 org.apache.catalina.ha.session.JvmRouteOriginalSessionID

org.apache.catalina.ha.authenticator.ClusterSingleSignOn

ClusterSingleSignOn 支持集群中的单点登录功能。通过使用 ClusterSingleSignOn,一个Web应用程序认证的安全身份将被同一虚拟主机上的其他Web应用程序识别,并传播到集群中的其他节点。

有关更多信息,请参阅 Host 元素上的 单点登录 特殊功能。

注意: ClusterSingleSignOn 只能在主机级别的集群中配置。

属性

属性描述
className

要使用的实现的Java类名。此项必须设置为 org.apache.catalina.ha.authenticator.ClusterSingleSignOn

cookieDomain

设置用于SSO Cookie的主机域。

mapSendOptions

此阀门使用一个复制映射。您可以设置此映射发送消息的方式的标志。默认值为 6(同步)。请注意,如果您使用异步消息传递,则接收节点处理更新消息的顺序可能与发送顺序不同。

requireReauthentication

默认值为 false。标志,用于确定每个请求是否需要重新向安全 Realm 进行认证。如果为“true”,此阀门会使用缓存的安全凭据(用户名和密码)重新向 Realm 认证与SSO会话关联的每个请求。如果为“false”,则阀门可以根据有效SSO Cookie的存在自行认证请求,而无需重新检查 Realm

rpcTimeout

此阀门使用一个复制映射。这是集群中用于在其他节点之间传输状态的消息的超时时间。如果未指定,则使用默认值 15000 毫秒。

terminateOnStartFailure

如果底层复制未能启动,您希望此阀门失败,则设置为 true。如果阀门失败,则关联的容器将无法启动。如果您将此属性设置为 false,并且底层复制未能启动,阀门将启动并尝试加入集群,并在心跳过程中开始复制。如果未指定,则使用默认值 false

accessTimeoutping 消息的超时时间。如果远程映射在此超时期间内没有响应,则认为它已消失。默认值为 5000 毫秒。