Simple Notification Service (SNS) Docs

What is SNS

  • SNS 和 SQS 类似, 也是一个消息队列系统. 但是 SNS 主要是解决实时推送的问题, 不像 SQS 通常用于延迟处理类型的问题.

  • SNS 的模型是 Topic, Subscription. Subscription 必须要是一个可以进行 Consume 的单元, 可以是 AWS Lambda, SQS, Http Endpoint, Text Message, Email.

  • 简单来说, 当一条 Message 被发布到 SNS Topic, 所有的 Subscriber 会被同时触发.

  • SNS 允许创建 100,000 个 Topic, 以及 10 Million 个 Subscription Per Topic.

  • SNS 适合做什么:
    • App 上的实时推送

  • SNS 不适合做什么:
    • Pub / Sub 的消息数据处理系统

1. Topic 不多 Subscriber 非常多, 要求实时.

邮件订阅场景. 你的 App 有多个不同的 Topic, 比如 Daily / Weekly / Monthly Ads, 也有 Update Notification. 但是 Topic 的数量肯定不会特别多, 顶多几百个. 你的所有用户都可以 Subscribe 这些. 那么这事一个完美的 AWS SNS 使用场景.

2. Topic 非常多 Subscriber 不是很多, 不要求实时.

例如 GitHub Watch a Repo 的场景. 世界上的 Repo 非常多, 但是每个 Repo Watch 的人不是很多. 此时

3. Topic 非常多 Subscriber 非常多, 不要求实时.

4. Topic 非常多 Subscriber 非常多, 要求实时.

这是最难的一种情况了. 比如 微信 消息推送, 每一个点对点的聊天都是一个 Topic.

Phone Number Subscriber

Email Subscriber

本节我们介绍如何设置 Email

默认情况下 AWS