追溯消費者

功能 > 消費者功能 > 追溯消費者

背景

追溯消費者只是一個普通的 JMS 主題消費者,它表示在訂閱開始時,應盡一切努力回溯時間,並發送消費者可能錯過的任何舊訊息(或該主題上發送的最後一則訊息)。

請參閱訂閱恢復策略以了解更多詳細資訊。

範例

您可以如下方式將消費者標記為追溯消費者

topic = new ActiveMQTopic("TEST.Topic?consumer.retroactive=true");
consumer = session.createConsumer(topic);

限制

當跨經紀人網路使用時,追溯消費者將無法始終如一地運作。

在主題的情況下,當我們將經紀人 A 連接到經紀人 B 時,經紀人 B 會將其收到的所有訂閱發送給經紀人 A。由於經紀人 A 會將訊息複製到每個訂閱,並且我們希望避免在經紀人 B 接收重複訊息,因此我們不能向經紀人 A 發送同一個主題的多個訂閱。因此,我們的網路橋接器會追蹤跨網路發送的訂閱,並且只會將第一個主題訂閱發送出去。後續的訂閱會增加訂閱的參考計數,但實際上不會發送訂閱。

這本質上就是問題所在。如果對主題的第一個訂閱不是追溯的,則會從 B 發送到 A,而 B 經紀人將不會收到追溯訊息。然後後續的訂閱可能是(追溯的),但這不會導致追溯訊息從經紀人 A 發送到經紀人 B,因為後續訂閱不會發送到經紀人 A。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權所有 © 2024,Apache 軟體基金會。根據Apache 授權 2.0授權。