TimeStampPlugin

特性 > 拦截器 > TimeStampPlugin

TimeStampPlugin 是一个代理拦截器,它使用代理时间戳更新 JMS 客户端消息上的时间戳。当客户端机器上的时钟已知不正确,并且您只能信任代理机器上设置的时间时,这很有用。

启用此插件将破坏 JMS 兼容性,因为生产者在消息后看到的時間戳 send() 将与消费者在收到消息时观察到的时间戳不同。

默认情况下,此插件在 ActiveMQ Classic 中启用。

选项

属性 默认值 描述
futureOnly false true 时,插件绝不将消息的时间戳和过期时间设置为低于原始值的值。当 false 时,插件始终更新消息的时间戳和过期时间。
ttlCeiling 0 如果非零,此值(以毫秒为单位)将限制过期时间。
zeroExpirationOverride 0 如果非零,此值(以毫秒为单位)将覆盖尚未设置过期时间的邮件的过期时间。

要启用 TimeStampPlugin,请将以下内容添加到您的 ActiveMQ Classic 代理配置中。

示例

<plugins>
  <!-- 86,400,000 ms = 1 day -->
  <timeStampingBrokerPlugin ttlCeiling="86400000" zeroExpirationOverride="86400000"/>
</plugins>

代理/消费者时钟同步

当消费者的本地时钟快于代理的本地时钟时,如果此插件在默认配置下加载,您的消费者可能无法使用这些消息,因为消费者可能认为这些消息已过期。

如果代理和消费者之间的时钟差大于消息过期时间,并且消费者的时钟运行速度更快,则设置 futureOnly="true"

有关更多详细信息,请参阅以下博文

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标识和 Apache ActiveMQ 项目标识是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 许可。