我将使用发布订阅机制(AWS SNS / activeMQ)。
我想知道是否有可能将消息放在具有过期时间的主题上(在我的情况下为5分钟),以便订阅该主题的消费者即使在消息被推送后订阅了该主题,也会获得该消息。
例如,每隔5分钟我就会向主题"sensor#3“推送一条消息”传感器测量了5个单位“。我希望主题的新订阅者获得最后一条消息,而不是必须等待5分钟才能获得消息。
发布于 2018-01-23 07:05:31
当没有使用者时,主题不会保留消息。您需要创建一个持久的主题订阅,以便存储在您的消费者离线时发送的消息。
ActiveMQ确实有一个名为retroactive consumers的功能,如果旧消息仍然在内存缓存中,它会尝试将旧消息发送到主题订阅,但不能保证这种情况会发生,所以不要指望它是100%可靠的。
发布于 2018-05-15 05:49:16
如果你使用的是SNS,你可以向它订阅一个SQS队列。然后,您可以轮询队列并接收位于队列中的任何消息,而不是直接订阅主题。不过,您应该考虑一些设计方面的问题,例如SQS消息可能会无序或多次传递。
https://stackoverflow.com/questions/48378357
复制相似问题