TimeStampPlugin
功能 > 攔截器 > TimeStampPlugin
TimeStampPlugin 是一個 Broker 攔截器,它會使用 Broker 的時間戳更新 JMS 客戶端訊息上的時間戳。當已知客戶端機器上的時鐘不正確,並且您只能信任 Broker 機器上設定的時間時,這可能會很有用。
啟用此外掛程式會破壞 JMS 合規性,因為生產者在執行 send()
後在訊息上看到的時間戳,會與消費者在收到訊息時觀察到的時間戳不同。
預設情況下,此外掛程式在 ActiveMQ Classic 中未啟用。
選項
屬性 | 預設值 | 描述 |
---|---|---|
futureOnly |
false |
當 true 時,外掛程式絕對不會將訊息的時間戳和到期時間設定為低於原始值的值。當 false 時,外掛程式總是更新訊息的時間戳和到期時間。 |
ttlCeiling |
0 |
當不為零時,此值(以毫秒為單位)限制到期時間。 |
zeroExpirationOverride |
0 |
當不為零時,此值(以毫秒為單位)將覆蓋尚未設定到期時間的訊息的到期時間。 |
要啟用 TimeStampPlugin,請將以下內容新增至您的 ActiveMQ Classic Broker 組態中。
範例
<plugins>
<!-- 86,400,000 ms = 1 day -->
<timeStampingBrokerPlugin ttlCeiling="86400000" zeroExpirationOverride="86400000"/>
</plugins>
Broker/消費者時鐘同步
當消費者的本地時鐘快於 Broker 的本地時鐘時,當此外掛程式以預設組態載入時,訊息可能不會被您的消費者消耗,因為消費者可能會認為訊息已過期。
如果 Broker 和消費者之間的時鐘差異大於訊息的到期時間且消費者的時鐘超前,則設定 futureOnly="true"
。
請參閱以下 部落格文章 以了解更多詳細資訊。