我仍然在學習這個activemq和jms的東西。 我已經嘗試過一些例子,現在我可以產生和使用來自隊列/主題的消息。
現在我有一個問題,當我的客戶端/客戶端丟失連接時,隊列/主題中的消息仍然發出該消息,該消息將丟失並且不保留在隊列/主題中。所以我的問題是我如何能夠保留這個失敗的消息,以及如何讓代理重新發送該消息?
感謝ActiveMQ如何保持未能發送給消費者隊列/主題的消息?
回答
您術語混合了一點事情。
隊列將持有消息直到消耗或代理重新啓動,除非該消息已被標記爲持久性,在這種情況下,即使在代理重新啓動後,它們也會一直存在。
主題只將當前消息傳遞給任何當前訂閱者。但是,您可以使用幾種方法持久發佈到主題的郵件:
- 持久訂閱者。
- Virtual Destinations。
虛擬主題通常比持久訂閱者更受歡迎,但它實際上取決於用例。
你如何創建一個持久訂閱者取決於你用來創建訂閱者(Spring,POJO,一些其他的API?)。所有的方法都會在某個時候調用Session.createDurableSubscriber
方法,但我建議閱讀它們在通過虛擬主題或複合隊列選擇之前的行爲方式。
您正在尋找可能Durable subscription
你可以找到相同的文件在http://activemq.apache.org/how-do-durable-queues-and-topics-work.html
感謝您的回覆。我怎樣才能讓消費者成爲耐用消費者? – 2014-12-05 16:38:53
我同意Erik的回答,你可以看看 – Vihar 2014-12-06 04:55:23
- 1. 當消費者未確認消息時,ActiveMQ停止向隊列消費者發送消息
- 2. ActiveMQ - 將消息發送給特定的消費者
- 3. 帶有JMS主題的ActiveMQ - 消費者未出隊的一些消息
- 4. 如何使用ActiveMq和C#創建持久隊列消費者?
- 5. 消息在虛擬主題不是由消費者隊列
- 6. 向ActiveMQ中的多個消費者發送消息
- 7. 在使用KahaDB時如何保持Activemq隊列/主題中的消息?
- 8. ActiveMQ持久訂戶 - 併發消費者
- 9. Apache Kafka如何將消息發送給多個消費者組?
- 10. 發送最後一條消息給jms主題的新消費者
- 11. 生產者發送消息給ActiveMQ代理的消息發送超時
- 12. 隊列發送者如何知道消費者崩潰?
- 13. 如何將消息從ESB的主題發送到消息代理的隊列
- 14. JMS - 消費者在消費之前瀏覽隊列消息
- 15. 如何限制ActiveMQ JMS隊列中消費者的數量
- 16. ActiveMQ消費者OutOfMemoryException
- 17. 消費者未收到來自ActiveMQ的消息
- 18. 消費者計數/正在處理來自隊列+ ActiveMQ + Java的消息計數
- 19. 從遠程ActiveMQ的消費消息隊列
- 20. 如何查找從ActiveMQ獲取消息的消費者的IP?
- 21. 發送XML消息給SONIC JMS隊列
- 22. Apache的駱駝發送消息JMS消費者接收消息
- 23. JMS消息生產者不會將消息發送到隊列
- 24. Azure工作者角色+消息隊列消費者的數量
- 25. 多主題消息隊列
- 26. ActiveMQ - 同時從隊列和主題中消費
- 27. 消費者過濾的生產者 - 消費者阻塞隊列
- 28. Python的海帶消費者獲取隊列消息,但回調不能觸發
- 29. ActiveMQ:死信隊列保持我的消息順序
- 30. ActiveMQ的節流消費者
謝謝。那麼,我怎樣才能讓諸如從經紀人到消費者的「保證交貨」? – 2014-12-09 16:36:32
確保它是作爲持久性消息生成的。此外,你會想看看某種形式的客戶端確認或交易。 – 2014-12-17 14:26:44