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"
。
有关更多详细信息,请参阅以下博文。