Amazon SNS 热门2009年〜
全托管的发布/订阅消息传递和移动通知服务
它能做什么
Amazon SNS(Simple Notification Service)是一项全托管的发布/订阅(Pub/Sub)消息传递服务。发布者向主题(Topic)发送消息,所有订阅该主题的端点同时接收消息。支持 HTTP/HTTPS、邮件、短信、Lambda、SQS、移动推送等多种订阅协议。
使用场景
用于应用间的事件通知、系统告警的多渠道分发、移动应用的推送通知、微服务间的异步通信、扇出(Fan-out)模式的消息分发。
日常类比
可以比作广播电台。电台(发布者)播出节目(消息),所有调到该频道(订阅主题)的收音机(订阅者)同时收到内容。一次广播可以同时到达无数听众。
什么是 SNS
Amazon SNS 是一项消息发布/订阅服务。与点对点的 SQS 不同,SNS 采用一对多的扇出模式。一条消息发布到主题后,所有订阅者同时收到副本。常见模式是 SNS + SQS 的组合(Fan-out),一条消息同时分发到多个 SQS 队列进行并行处理。
主题类型与过滤
SNS 提供标准主题(高吞吐量、至少一次投递)和 FIFO 主题(严格顺序、精确一次投递)。消息过滤策略允许订阅者只接收感兴趣的消息子集,无需接收所有消息后再过滤。支持消息属性和消息体的过滤。 如需深入了解主题类型与过滤的知识,可参考相关书籍(Amazon)。
开始使用
在 SNS 控制台创建主题,添加订阅(邮件、Lambda、SQS 等)。通过控制台或 API 向主题发布消息,所有订阅者即时收到通知。邮件订阅需要收件人确认。
注意事项
- 标准主题提供近乎无限的吞吐量,FIFO 主题保证严格顺序
- 消息过滤策略可以减少不必要的消息投递,降低成本