我仍然在学习这个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