亚马逊简单通知服务(Amazon Simple Notification Service,简称SNS)是一种托管服务,它允许发布者将消息异步发送给订阅者(也称为生产者和消费者)。发布者通过发送消息到一个主题上,这个主题作为逻辑访问点和通信路由供订阅者使用。客户端可以订阅SNS主题,并通过任何支持的端点接收发布的消息,包括Amazon Kinesis Data Firehose、Amazon SQS、AWS Lambda、HTTP、电子邮件、移动推送通知和移动短信(SMS)。
SNS是一种完全托管的消息服务,用于应用程序间(A2A)和人与应用程序间(A2P)的通信。它允许创建一个主题作为逻辑访问点和通信渠道。每个主题都有一个唯一的名字,指定了SNS端点,发布者可以在这里发送消息,订阅者可以订阅通知。
SNS的一些特点包括自动扩展、消息加密和消息过滤。当消息发送到主题时,它会复制并发送到多个端点,称为消息分支。Fanout提供的异步事件通知允许并行处理。移动通知可以触发用户在应用内启动的操作或基于云的业务逻辑。SNS和电子邮件消息服务允许发送文本和电子邮件(SMTP)消息。
SNS的工作原理基于发布者-订阅者范式,将消息发送到其端点。可以使用Amazon SNS通过移动通信、短信和电子邮件为大量订阅者或端点过滤消息。发布者,也称为生产者,创建并发送消息到AWS SNS。另一方面,订阅者使用支持的网络协议如Amazon SQS、AWS Lambda或HTTP/HTTPS接收SNS发布的消息。
以下是AWS SNS实现的工作流程的具体阶段:发布者首先向订阅者发送所需的通知。SNS主题用于过滤需要分发给不同订阅者的消息。作为AWS开发者,必须创建一个SNS主题,它将作为订阅者访问点。订阅者可以通过主题接收选定主题的新闻警报。消息通过订阅者队列或微服务传递给订阅者。要接收消息,订阅者必须提交有价值的信息,如URL、电子邮件地址或电话号码。以下是一些最常见的SNS消息类型:自动用户警报是由预定义阈值触发并发送给特定用户的应用程序和系统警报。推送电子邮件或短信是与人或群体沟通的两种方式(例如,发送给报纸订阅者的新闻文章警报)。移动推送通知是直接发送到移动应用程序的消息(例如,任何应用程序更新可用的通知)。
SNS消息过滤的工作原理是,SNS使用消息过滤将SNS主题消息的子集传递给订阅者端点。例如,考虑一个公司网站将用户查询发送到许多后端服务器。服务器网络包括:首先,1个服务器处理“类型1”用户的请求;其次,1个服务器处理“类型2”用户请求;1个数据分析服务器处理“类型1”和“类型2”用户请求。以下是使用Amazon SNS实现消息过滤的六个阶段:创建Amazon SNS主题;创建Amazon SQS队列;登录AWS SQS控制台;创建名为“队列1”的队列;重复步骤b创建两个新队列,分别命名为“队列2”和“队列3”。创建后,所有三个SQS队列都列在SQS控制台页面上。
SNS的好处包括即时交付、成本低、支持多个端点,使其多功能。不同的端点可以通过不同的传输协议接收消息,包括电子邮件、短信、Lambda、Amazon SQS、HTTP等。易于使用:AWS网络管理控制台提供了点击式的界面,使其成为一个非常简单的服务。