📅  最后修改于: 2020-11-07 03:24:54             🧑  作者: Mango
什么是SNS?
- SNS代表简单通知服务。
- 它是一项Web服务,可轻松设置,操作和从云发送通知。
- 它为开发人员提供了高度可伸缩,经济高效且灵活的功能,可以从应用程序发布消息并将其发送到其他应用程序。
- 这是一种发送消息的方式。当您使用AutoScaling时,它将触发SNS服务,该服务将通过电子邮件向您发送“您的EC2实例正在增长”的电子邮件。
- SNS还可以通过将推送通知发送到Apple,Google,Fire OS和Windows设备以及带有百度Cloud Push的中国Android设备来向设备发送消息。
- 除了将推送通知发送到移动设备外,Amazon SNS还通过SMS或电子邮件将通知发送到Amazon Simple Queue Service(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推送会立即将消息推到订户。