在本教程中,您将使用 Amazon Simple Notification Service (SNS) 和 Amazon Simple Queue Service (SQS) 实施扇出消息收发场景。在此场景中,消息会被“推送”给多个订阅者,无需通过定期检查或轮询获取更新,且系统能够按订阅者并行异步处理消息。
为了对此进行说明,我们将假定您要开发一个原生云应用程序,每当有人在在线商店中下单时,该应用程序都会向某个主题发送一条 Amazon SNS 消息。每个订阅相应主题的 Amazon SQS 队列都会收到关于新订单的完全相同通知。
您在本教程中使用的 AWS 服务包含在 AWS 免费套餐中。
必须有账户才能在 AWS 上发送扇出事件通知
创建免费账户AWS 免费套餐包括 1000000 个 Amazon Simple Notification Service 发布和 1000000 个 Amazon Simple Queue Service 请求。
在您单击此处后,AWS 管理控制台会在新的浏览器窗口中打开,这样本分步指南就能一直保持打开状态。此屏幕加载后,请输入您的用户名和密码以便开始操作。然后在搜索栏中键入 notification 并选择 Simple Notification Service 以打开服务控制台。
在此步骤中,您将创建 Amazon SNS 主题。主题是发送消息和订阅通知的通信通道。在此示例中,每当有人在在线商店中下新订单时,示例电子商务应用程序就会将消息推送到 Amazon SNS 主题。
您已经使用 Amazon SNS 创建了主题,接下来将创建订阅该主题的 Amazon SQS 队列。
如果您为多个队列订阅某个主题,则每当有消息推送到该主题时,所有队列都会收到相同的通知。然后,附加到这些队列的服务能够以异步、并行方式处理订单。
例如,附加到其中一个队列的 Amazon EC2 服务器实例可以处理订单的处理或配送,而另一个服务器实例可以附加到数据仓库以分析收到的所有订单。
为了方便学习,在本教程中,我们实际上不会将 EC2 实例附加到队列中。
a.单击此处在新浏览器窗口中打开 Amazon SQS 控制台。如果 SQS 登录页显示,请单击“立即开始使用”。否则,请继续执行下一步。
您已经创建了两个 Amazon SQS 队列,接下来您需要为它们订阅用于广播新订单通知的 Amazon SNS 主题。
b.此时将显示 Subscribe to a Topic(订阅主题)对话框。在“选择主题”下拉列表中,选择“New-Orders”Amazon SNS 主题。
您的 SNS 主题显示在列表中,因为创建它所用的账户与您用来创建 Amazon SQS 队列的账户相同。如果 SNS 主题是由其他账户创建的,您可以使用主题 ARN 来订阅它。有关更多详细信息,请参阅 Amazon SNS 文档。
请勿更改 Topic Region(主题区域),并单击 Subscribe(订阅)。
现在,您已经为队列订阅了主题。在此步骤中,您将通过让虚构的电子商务应用程序将消息推送到包含订单详细信息的主题来模拟新订单。
发布新消息后,Amazon SNS 会将该消息发送至订阅此主题的各个终端节点。在类似这样的扇出场景中,Amazon SQS 队列是终端节点。
在此步骤中,您将通过查看主题发送到队列的消息来确认队列是否已收到新订单通知。
在此步骤中,您将删除在本教程中创建的资源,包括主题订阅、主题和队列。最佳做法是删除您不再使用的资源,以免产生费用。
您已经使用 Amazon SNS 和 Amazon SQS 实施了一个扇出场景。现在,您可以结合使用 Amazon SNS 和 Amazon SQS,以将消息发送到需要即刻获得事件通知的应用程序,或将消息缓冲到 Amazon SQS 队列中供其他应用程序稍后处理。
至此,您已学习了如何使用 Amazon Simple Notification Service 和 Amazon Simple Queue Service 实施消息扇出通知。请选择以下选项之一来深入了解 AWS 上的云消息收发。
了解更多
概览 Amazon Web Services (AWS) 上消息主题的功能、组件和使用案例。访问 Amazon SNS 网页 »
深入了解
了解如何让应用程序、最终用户和设备即刻在云中发送和接收通知。阅读文档 »
查看实际效果
了解 Capital One 等客户如何使用 Amazon SQS 和 Amazon SNS 分离和扩展应用程序。观看网络研讨会 »