什么是 SNS?17 Mar 2025 | 4 分钟阅读 - SNS 代表简单通知服务 (Simple Notification Service)。
- 它是一种 Web 服务,可让您轻松地从云端设置、操作和发送通知。
- 它为开发人员提供了高度可扩展、经济高效且灵活的功能,可以从应用程序发布消息并将它们发送到其他应用程序。
- 这是一种发送消息的方式。 当您使用 AutoScaling 时,它会触发 SNS 服务,该服务会向您发送电子邮件,告知您“您的 EC2 实例正在增长”。
- SNS 还可以通过向 Apple、Google、Fire OS 和 Windows 设备以及中国使用百度云推送的 Android 设备发送推送通知来向设备发送消息。
- 除了向移动设备发送推送通知外,Amazon SNS 还会通过 SMS 或电子邮件将通知发送到 Amazon 简单队列服务 (SQS) 或 HTTP 端点。
- SNS 通知也可以触发 Lambda 函数。 当消息发布到与 Lambda 函数关联的 SNS 主题时,Lambda 函数会使用消息的有效负载被调用。 因此,我们可以说 Lambda 函数是使用消息有效负载作为输入参数调用的,可以操纵消息中的信息,然后将消息发送到其他 SNS 主题或其他 AWS 服务。
- Amazon SNS 允许您使用主题对多个收件人进行分组,其中主题是一个逻辑访问点,用于将相同消息的相同副本发送给订阅的收件人。
- Amazon SNS 支持多种端点类型。 例如,您可以将 IOS、Android 和 SMS 收件人组合在一起。 将消息发布到主题后,SNS 会将格式化的消息副本传递给订阅者。
- 为了防止数据丢失,所有发布到 SNS 的消息都会跨多个可用区进行冗余存储。
SNS 发布者和订阅者 Amazon SNS 是一项 Web 服务,用于管理将消息发送到订阅端点。 SNS 有两个客户端  发布者 发布者也称为生产者,它们生成消息并将其发送到 SNS,SNS 是一个逻辑访问点。 订阅者 订阅者(例如 Web 服务器、电子邮件地址、Amazon SQS 队列、AWS Lambda 函数)通过受支持的协议(Amazon SQS、电子邮件、Lambda、HTTP、SMS)从 SNS 接收消息或通知。 注意:发布者将消息发送到他们创建的 SNS 主题。 发布消息时,无需指定目标地址,因为主题本身与发布者创建的主题关联的订阅者匹配,并将消息传递给订阅者。如何使用 SNS   
   - 现在,选择端点类型并输入端点地址,即您要发送通知的位置。
  - 下面的屏幕显示邮件已发送给订阅者。 订阅者必须单击确认订阅。

  
  SNS 的好处 - 即时交付
SNS 基于推送交付。 这是 SNS 和 SQS 之间的主要区别。 一旦您在主题中发布消息,SNS 就会被推送,并且该消息会被传递到多个订阅者。 - 灵活
SNS 支持多种端点类型。 多个端点类型可以通过多种传输协议(例如电子邮件、SMS、Lambda、Amazon SQS、HTTP 等)接收消息。 - 低成本
SNS 服务非常便宜,因为它基于按使用付费模式,即您只需在使用资源时付费,而无需预付费用。 - 易用性
SNS 服务非常易于使用,因为基于 Web 的 AWS 管理控制台提供了即点即用的界面。 - 简单架构
SNS 用于通过从订阅者卸载消息过滤逻辑和从发布者卸载消息路由逻辑来简化消息传递架构。 SNS 将消息发送给订阅者,仅发送他们感兴趣的消息,而不是从主题接收所有消息。
SNS 和 SQS 之间的区别- SNS 代表简单通知服务,而 SQS 代表简单队列服务。
- SQS 是基于拉取的交付,即消息不会被推送到接收者。 用户必须从队列中提取消息。 SNS 是基于推送的交付,即消息被推送到多个订阅者。
- 在 SNS 服务中,消息会同时推送到多个接收者,而在 SQS 服务中,消息不会被多个接收者同时接收。
- SQS 轮询会在消息传递中引入一些延迟,而 SQS 推送会立即将消息推送到订阅者。
|