我有Queue
和Topic
在Activemq
中有2条消息。如果我重新启动Activemq
。我正在丢失消息,Topic
。
即使我重新启动Activemq
,我也不想丢失来自任何Topic
和Queue
的任何消息。是否有可能。
我正在使用Activemq 5.8.0
。
答案 0 :(得分:0)
生产者生成消息并将其发送到主题,该主题永远 消费者在那个时间点运行,会收到消息。 如果您希望消费者现在不在,但可能正在运行 未来得到这个消息,你将不得不告诉经纪人 坚持消息并存储此信息 消费者没有收到消息。
如果您的工作代码没有持久订阅者,则必须进行以下更改。
在消费者中,
1.设置clinetId。因为主题应该知道哪个消费者还没有收到消息。或者收到了消息。
Connection.setClientID(String)
2。应该为您的主题创建一个持久的订阅者
Connection.createDurableSubscriber()
3。将您的侦听器添加到此订阅者。
subscriber.setMessageListener(yourlistener)
4。收到邮件后,您必须确认
此链接显示了它是如何完成的:但它在c#中我猜。
阅读这些链接以获取更多信息:
http://activemq.apache.org/how-do-durable-queues-and-topics-work.html http://activemq.apache.org/why-do-i-not-receive-messages-on-my-durable-topic-subscription.html http://activemq.apache.org/manage-durable-subscribers.html