我知道SNS通常是Pub机制,它向订阅发布主题的所有使用者“复制”一条消息。
不过,我在SNS API中看到了一个字段"TTL“,它定义了消息的过期(在消息创建后的几秒钟内)。
我想知道:如果我在5分钟内向主题T发布一条消息,而在2分钟后,一个用户订阅了主题T--消费者会收到消息吗?
发布于 2018-01-21 17:32:34
简单地说,不。
这是我刚刚尝试过的
两部手机都收到了第二条信息。第一条消息没有发送到第二部电话(尽管我在第一条消息TTL中订阅了它,但在它发布后)。
发布于 2018-01-21 19:01:52
不是的。如果在消息发布到SNS主题后订阅,您将不会收到消息。这是因为SNS不保留过去通过它发送的任何消息。
因此,一旦发布了一条消息,它将被传递给当前的订阅者,而不是存储在SNS的未来订阅者的历史记录中。
发布于 2018-01-21 17:00:46
我不能百分之百地肯定这个答案。
当您向SNS发布消息时,SNS将重新尝试将消息发送到当前订阅者的TTL。一个例子是发送一条SMS消息,而运营商关闭了,或者一封电子邮件消息,而SMTP服务器正在返回一个错误。在这段时间间隔内,SNS不会将消息发送给新的订阅者。
注意:我不会将TTL设置为短值,例如5分钟。
https://stackoverflow.com/questions/48369142
复制相似问题