我有一条Queue
和Topic
2 条消息。Activemq
如果我重新启动Activemq
。我正在丢失消息,而且Topic
。
即使我重新启动,我也Activemq
不想丢失任何消息。有可能吗?Topic
Queue
我正在使用Activemq 5.8.0
.
生产者生成消息并将其发送到主题,消费者在该时间点运行,将接收消息。如果您希望现在未启动但将来可能正在运行的消费者获取此消息,您将必须告诉 Broker 保留消息并存储该特定消费者尚未收到消息的信息。
如果您有没有持久订阅者的工作代码,则必须进行以下更改。
在消费者中,
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