0

我有一条QueueTopic2 条消息。Activemq如果我重新启动Activemq。我正在丢失消息,而且Topic

即使我重新启动,我也Activemq不想丢失任何消息。有可能吗?TopicQueue

我正在使用Activemq 5.8.0.

4

1 回答 1

0

生产者生成消息并将其发送到主题,消费者在该时间点运行,将接收消息。如果您希望现在未启动但将来可能正在运行的消费者获取此消息,您将必须告诉 Broker 保留消息并存储该特定消费者尚未收到消息的信息。

如果您有没有持久订阅者的工作代码,则必须进行以下更改。

在消费者中,
1. 设置clinetId。因为主题应该知道哪个消费者尚未收到消息。或已收到消息。

Connection.setClientID(String)

2. 应该为您的主题创建一个持久订阅者

Connection.createDurableSubscriber()

3. 将您的听众添加到此订阅者。

subscriber.setMessageListener(yourlistener)

4.收到消息后,您必须确认

此链接显示了它是如何完成的:但我猜它在 c# 中。

http://myadventuresincoding.wordpress.com/2011/08/16/jms-how-to-setup-a-durablesubscriber-with-a-messagelistener-using-activemq/

阅读这些链接以获取更多信息:

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

于 2013-09-11T09:25:27.563 回答