Amazon SNS - 是否可以在发布后订阅并仍然收到消息?
Amazon SNS - is it possible to subscribe after publication and still get the message?
我知道通常 SNS 是一种 Pub-Sub 机制,"duplicates"向所有订阅已发布主题的消费者发送消息。
尽管如此,我在 SNS API 中看到了一个字段 "TTL",它定义了消息的到期时间(自消息创建后的秒数)。
我想知道:如果我向主题 T 发布了一条有效期为 5 分钟的消息,并且在 2 分钟后,消费者订阅了主题 T - 消费者会收到消息吗?
我不是 100% 确定这个答案。
当您向 SNS 发布消息时,SNS 将重新尝试发送消息,直至达到当前订阅者的 TTL。一个示例是发送 SMS 消息但运营商已关闭或发送电子邮件消息但 SMTP 服务器返回错误。 SNS 不会在该时间间隔内向新订阅者发送消息。
注意:我不会将 TTL 设置为较短的值,例如 5 分钟。
简单地说,没有。
这是我刚试过的
- 创建了一个话题
- 订阅了我的 phone 个号码
- 发布了一条 TTL 为 3600s 的消息(立即收到消息)
- 订阅了我的第二个 phone
- 发布了另一条 TTL 为 3600 秒的消息
两个phone都收到了第二条消息。第一条消息没有发送到第二条消息 phone(即使我在第一条消息 TTL 内很好地订阅了它,但在它发布之后)。
没有。如果您在消息发布到 SNS 主题后订阅,您将不会收到消息。这是因为 SNS 不会保留过去通过它发送的任何消息。
因此,一旦发布了一条消息,它将传递给当前订阅者,但不会通过 SNS 存储在未来订阅者的历史记录中。
SNS 会在消息提交后尝试将消息传递给当前的订阅者列表。任何新添加的订阅者都不会收到过去提交的消息。
我知道通常 SNS 是一种 Pub-Sub 机制,"duplicates"向所有订阅已发布主题的消费者发送消息。
尽管如此,我在 SNS API 中看到了一个字段 "TTL",它定义了消息的到期时间(自消息创建后的秒数)。
我想知道:如果我向主题 T 发布了一条有效期为 5 分钟的消息,并且在 2 分钟后,消费者订阅了主题 T - 消费者会收到消息吗?
我不是 100% 确定这个答案。
当您向 SNS 发布消息时,SNS 将重新尝试发送消息,直至达到当前订阅者的 TTL。一个示例是发送 SMS 消息但运营商已关闭或发送电子邮件消息但 SMTP 服务器返回错误。 SNS 不会在该时间间隔内向新订阅者发送消息。
注意:我不会将 TTL 设置为较短的值,例如 5 分钟。
简单地说,没有。
这是我刚试过的
- 创建了一个话题
- 订阅了我的 phone 个号码
- 发布了一条 TTL 为 3600s 的消息(立即收到消息)
- 订阅了我的第二个 phone
- 发布了另一条 TTL 为 3600 秒的消息
两个phone都收到了第二条消息。第一条消息没有发送到第二条消息 phone(即使我在第一条消息 TTL 内很好地订阅了它,但在它发布之后)。
没有。如果您在消息发布到 SNS 主题后订阅,您将不会收到消息。这是因为 SNS 不会保留过去通过它发送的任何消息。
因此,一旦发布了一条消息,它将传递给当前订阅者,但不会通过 SNS 存储在未来订阅者的历史记录中。
SNS 会在消息提交后尝试将消息传递给当前的订阅者列表。任何新添加的订阅者都不会收到过去提交的消息。