我将使用发布订阅机制(AWS SNS / activeMQ)。
我想知道是否有可能在有过期时间(在我的情况下为5分钟)的主题上放置消息,以便订阅该主题的消费者即使在推送消息后订阅也将获得该消息。
例如,每5分钟我按一下信息"传感器测量5个单位"到主题"传感器#3"。我希望该主题的新订阅者能够获取最后一条消息,而不必等待5分钟才能收到消息。
答案 0 :(得分:0)
当没有消费者时,主题不会保留消息。您需要创建持久主题订阅,以便存储在您的消费者离线时发送的消息。
ActiveMQ确实有一个名为retroactive consumers的功能,如果它们仍然在内存缓存中,它会尝试将旧邮件传递给主题订阅,但不能保证会发生这种情况,所以不要指望它是100%可靠的。
答案 1 :(得分:0)
如果您正在使用SNS,则可以为其订阅SQS队列。然后,您可以轮询队列并接收坐在那里的任何消息,而不是直接订阅主题。您应该考虑一些设计问题,例如SQS消息可能无序或多次发送。