入门 / 动手实践 / ...

在分布式应用程序间发送消息

使用 Amazon Simple Queue Service(SQS)

简介

在本教程中,您将学习如何使用 Amazon Simple Queue Service(Amazon SQS)设置异步消息收发。Amazon SQS 是允许应用程序组件在云中通信的一种 AWS 服务。您将使用 Amazon SQS 控制台创建和配置消息队列,发送消息,接收和删除此消息,然后删除此队列。

您在本教程中使用的 AWS 服务包含在 AWS Free Tier 中。

 所需费用

免费套餐

 使用的服务

在 AWS 上发送消息
需要一个账户

AWS Free Tier 包含 100 万个 Amazon Simple Queue Service 请求。

查看 AWS Free Tier 详细信息 »

实施

  • a.单击此处之后,AWS 管理控制台将在新的浏览器窗口中打开,因此您可以使本分步指南保持打开状态。  此屏幕加载后,请输入用户名和密码以便开始操作。然后,在搜索栏中输入 queue 并选择 Simple Queue Service 以打开控制台。

    AWS 管理控制台 – 打开 Simple Queue Service

    b.  如果出现 SQS 控制台登录页面(如屏幕截图所示),请单击立即开始使用。 如果您没有看到此页面,请跳至下一步。

    SQS 控制台登录页面
  • 在此步骤中,您将创建和配置一个 Amazon SQS 队列。队列是一种可靠且高度可扩展的缓冲区,用于当消息在分布式应用程序或微服务间传送时存储它们。队列可以帮助解耦应用程序、连接微服务、批量处理任务或存储通知。

    在本教程中,我们的使用案例将模拟从电子商务应用程序传入的订单的存储。

    a.首先,我们将创建一个简单队列,用于存储在商店中所下的订单。在队列名称字段中输入 Orders。  

    在“队列名称”字段中输入 Orders

    b.在本教程中,我们不需要遵循严格的顺序,因此我们不会对队列类型进行任何更改。使标准队列处于选中状态。  

     使“标准队列”处于选中状态

    c.您可以配置您的队列,以修改保留期、消息大小上限和发送延迟等设置。在本教程中,我们将保留默认参数。选择快速创建队列

    保留默认参数。选择“快速创建队列”

    d.您的新队列随即会创建并在队列列表中处于选中状态。

    您的新队列随即会创建并在队列列表中处于选中状态
  • 创建队列后,便可以接收来自在线商店的消息,以捕获每个新订单的详细信息。

    a.  在列表中,您的队列处于选中状态。在 Queue Actions(队列操作)中,选择 Send a Message(发送消息)。向订单发送消息对话框随即显示。

    在“队列操作”中,选择“发送消息”

    b.向订单发送消息对话框随即显示。在“消息正文”选项卡上,输入以下文本来代表示例订单:

    1 x Widget @ $29.99 USD
    2 x Widget Cables @ $4.99

    “向订单发送消息”对话框随即显示

    c.选择 Message Attributes(消息属性)选项卡,添加与此消息有关的某些可选元数据,以便轻松处理。我们来为此订单添加订单类型。在名称字段中输入 Order-Type,在类型字段中输入 String 并在字段中输入 Online。单击添加属性

    “消息属性”选项卡

    d.要立即发送消息,请单击发送消息向订单发送消息对话框中随即会显示消息已发送的确认信息。单击关闭

     “向订单发送消息”对话框
  • 将消息发送到队列中后,其他应用程序可以从队列中使用该消息并对其进行处理。在本例中,您只需检索消息以查看订单,然后将其删除即可。

    a.确保您的 Orders 队列在队列列表中处于选中状态。接下来,从队列操作中,选择查看/删除消息

    确保您的 Orders 队列在队列列表中处于选中状态。接下来,从“队列操作”中,选择“查看/删除消息”

    b.查看/删除订单中的消息对话框随即显示。当您从队列中请求消息时,您不必指定请求具体消息,而应指定要检索的最大消息数量(最多 10 条)。

    单击开始轮询消息,从队列中检索消息。  

    “查看/删除订单中的消息”对话框随即显示

    c.消费者收到并处理消息后,您可将其从队列中删除。选择要删除的消息,然后选择删除 1 条消息

    选择要删除的消息,然后选择“删除 1 条消息”

    d.删除消息对话框随即显示。选中消息旁边的复选框,然后单击是,删除所选消息。所选消息将被删除。选择关闭

    “删除消息”对话框随即显示
  • 当您不再需要使用 Amazon SQS 队列后,建议您最好删除该队列。

    a.在队列列表中,选择 Orders 队列。然后,从队列操作中,选择删除队列

    在队列列表中,选择 Orders 队列。然后,从“队列操作”中,选择“删除队列”。

    b.Delete Queues(删除队列)对话框随即显示。您仍然可以删除您的队列,即使队列中仍然有消息也是如此。选择是,删除队列。队列将被删除。

    “删除队列”对话框随即显示

本教程对您是否有帮助?

恭喜!

您已创建了第一个 Amazon Simple Queue Service (Amazon SQS) 消息队列,向队列发送了消息,检索并删除了消息,然后删除了队列。现在,您可以使用 Amazon SQS 队列在分布式应用程序组件和微服务之间存储和移动数据。