2009-12-22 15 views
2

我正試圖找到一個支持Durable Subscribers的消息總線提供程序,並允許我根據消息時間戳按順序重播給定主題的所有消息。此外,當消息遲到時,我希望消息總線重置每個耐用消費者的檢查點。例如。是否有消息總線提供程序允許持久訂戶和完全重播?

  1. 客戶所預訂主題1在2009-12-22 12:00:00
  2. 消息1到達時,時間戳的2009-12-22
  3. 客戶機接收消息1
  4. 客戶端斷開
  5. 消息2到達時,時間戳的2009-12-21 18:00:00
  6. 客戶端連接
  7. 客戶機接收消息2時,則消息1

我強烈希望開源提供商。有誰知道一個消息總線提供者支持這個嗎?我曾嘗試閱讀ActiveMQ,Mass Transit等的介紹文檔,但我不得不承認,我在消息總線術語的曲線背後,所以很多內容都超出了我的頭。

+0

吉祥鎮,你說你要基於消息時間戳的順序,應該在7號消息的順序在我之上MESSAGE2然後MESSAGE1? – sdg 2009-12-22 21:51:32

+0

是的,沒錯。我現在修好了。感謝您的支持。 – dvogel 2009-12-23 21:20:47

+0

它是用戶定義的時間戳屬性嗎? JMSTimestamp值由提供者(代理)分配,因此它應該按升序排列 - 請參閱http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html#setJMSTimestamp%28long% 29 – mjn 2010-01-06 15:34:54

回答

0

AMQP(由RabbitMQ等實施)可讓您定義持久隊列並將它們附加到同一個交換機。每個想要接收消息的客戶端都會首先設置自己的持久隊列,即使在客戶端斷開連接時,它也會保存從交換機接收到的消息。

這個唯一的限制是,從來沒有連接過的客戶端,以及意外到達的客戶端不能遲到地設置一個隊列並請求轉儲所有先前的消息。 AMQP 1.0可能允許這種普遍持久性,但我不太瞭解這個新模型,所以我不能肯定地說。

相關問題