Activemq 如何为迟到的消费者重播消息

Activemq 如何为迟到的消费者重播消息,activemq,message-queue,Activemq,Message Queue,我试图找出如何适应以下用例: 我有一个发布消息的制作人。我有一个消费者库,每个消费者都需要一份生成的所有消息的完整副本。我无法提前知道哪些消费者需要消息的副本,或者他们何时连接到代理(可能是在消息发布之前、生产期间或生产完成之后) 我曾尝试用ActiveMQ和ActiveMQ apollo解决这个问题,但一直没有找到解决方案。我愿意尝试任何技术。看看ActiveMQ 5.x中的功能 追溯消费者只是一个普通的JMS主题消费者,它指出在订阅开始时,每次尝试都应用于返回时间并发送消费者可能错过的任何旧

我试图找出如何适应以下用例:

我有一个发布消息的制作人。我有一个消费者库,每个消费者都需要一份生成的所有消息的完整副本。我无法提前知道哪些消费者需要消息的副本,或者他们何时连接到代理(可能是在消息发布之前、生产期间或生产完成之后)

我曾尝试用ActiveMQ和ActiveMQ apollo解决这个问题,但一直没有找到解决方案。我愿意尝试任何技术。

看看ActiveMQ 5.x中的功能

追溯消费者只是一个普通的JMS主题消费者,它指出在订阅开始时,每次尝试都应用于返回时间并发送消费者可能错过的任何旧消息(或在该主题上发送的最后一条消息)

您将消费者标记为具有追溯力,如下所示:

topic = new ActiveMQTopic("TEST.Topic?consumer.retroactive=true");
consumer = session.createConsumer(topic);

@justin Bertram谢谢,查看您发布的链接,我不确定订阅恢复策略配置将如何进行。这是在代理配置文件中发生的还是消费者可以根据具体情况进行设置的?在查看了我在此处找到的一个示例后,我能够在代理配置文件中添加一个部分:。我想知道我是否可以在消费者级别更改策略。您希望以什么方式更改策略?我想有些客户可能对恢复不同的数据集感兴趣。例如,5分钟对24小时。据我所知,这是一个服务器级配置。我还注意到该策略对虚拟目的地不起作用。我不相信客户可以指定他们想走多远。