2.4. 连接到 Amazon Simple Queue Service (SQS)


集成可以从 Amazon SQS 队列检索消息,或发送消息到 Amazon SQS 队列。为此,请创建一个 Amazon SQS 连接,然后将该连接添加到集成流中。详情请查看:

2.4.1. 创建 Amazon SQS 连接

在向集成中添加 Amazon SQS 连接前,您必须创建一个 Amazon SQS 连接。

先决条件

  • AWS 访问密钥。请参阅 获取 AWS 凭证
  • 您必须知道 SQS 队列所在的区域。这是您希望创建 SQS 连接来发送消息的队列。

流程

  1. 在 Fuse Online 中,在左侧面板中,单击 Connections 以显示任何可用连接。
  2. 单击 Create Connection 以显示 Fuse Online 连接器。
  3. Amazon SQS 连接器。
  4. Access Key 字段中,输入作为 AWS 帐户中的用户访问密钥一部分的 Amazon 访问密钥 ID,该密钥管理您希望连接访问的队列。

    如果您希望连接访问的队列尚不存在,则 Fuse Online 尝试开始运行集成时,它将使用此访问密钥关联的 AWS 帐户来创建队列。但是,如果队列已在其他 AWS 帐户中存在,则连接无法创建队列,且集成无法启动。

  5. Secret Key 字段中,为您指定的 Amazon 访问密钥 ID 输入 Amazon secret 访问密钥。
  6. Region 字段中,选择队列所在的 AWS 区域。如果连接创建队列,则它会在所选区域中创建它。
  7. 单击 Validate。Fuse Online 立即尝试验证连接并显示一条消息,指示验证是否成功。如果验证失败,请根据需要重新传输配置详情,然后重试。
  8. 验证成功后,单击 Next
  9. Name 字段中输入您选择的名称,可帮助您将这个连接与任何其他连接区分开来。例如,输入 SQS 南部
  10. Description 字段中,输入有助于了解此连接的任何信息。例如,输入 Sample SQS 连接,将消息发送到我们南部地区队列。
  11. Save 查看您创建的连接现在可用。如果您输入了示例名称,您会看到 SQS South 显示为可以添加到集成的连接。

2.4.2. 从 Amazon SQS 获取消息以触发集成执行

要通过从 Amazon SQS 队列获取消息来启动集成,请将 Amazon SQS 连接添加为简单的集成启动连接。

先决条件

  • 您创建了 Amazon SQS 连接,该连接配置为访问您要获取消息的队列。
  • 您知道希望连接从中获取消息的 SQS 队列的名称。

流程

  1. 在左侧的 Fuse Online 面板中,单击 Integrations
  2. Create Integration
  3. Choose a connection 页面上,单击您要用来启动集成的 Amazon SQS 连接。
  4. Choose an action 页面上,选择 Poll a Amazon SQS Queue 来定期从 SQS 队列检索消息。
  5. 配置此操作:

    1. Delay 字段中,接受默认的 500 毫秒,作为轮询之间经过的时间。或者,要指定不同的轮询间隔,输入数字并选择其时间单位。
    2. Maximum Objects to Retrieve 字段中,输入一次轮询操作可以获取的最大消息数。默认值为 10。

      要对可以获取的消息数量没有限制,请指定 0 或负整数。当 Retrieve 的最大对象 没有限制时,poll 操作会获取 SQS 队列中的所有消息。

    3. Queue Name 或 Amazon Resource Name 字段中,指定要从中检索消息的 SQS 队列的名称,或队列的 ARN。如果具有此名称的队列不存在,连接会创建它。这是唯一必填字段。
    4. 指明您是否希望 获取消息,然后从队列中删除它们。获取消息,然后从队列中删除它们是默认行为。只有在您希望连接检索消息并将其保留在队列中时,取消选择这个选项,这意味着将再次检索消息。
    5. 指明是否 通过 Camel 过滤器获取消息并删除 消息。默认选择这个选项。当您想通过过滤器传递检索到的消息时,保留它,以确定是否将其从队列中删除。您不需要取消选择 Obtain 消息,然后从队列 删除。在选择 Obtain 消息时,Fuse Online 确保了正确的行为,并在通过 Camel 过滤器进行时删除消息
  6. 点击 Next

结果

连接会出现在集成流的开头。

后续步骤

如果您选择了 Obtain 消息并删除其通过 Camel 过滤器进行的操作, 那么您需要在此 SQS 连接后添加过滤器步骤。在 SQS 连接后,过滤器步骤不需要立即生效。添加所有连接到集成,然后添加过滤器步骤。在执行期间,如果存在通过过滤器的消息,Fuse Online 会使用同一个连接(SQS 启动连接)从队列中删除这些消息。

2.4.3. 将消息发送到 Amazon SQS 队列

在流中,或完成简单集成,您可以将消息发送到 Amazon SQS 队列。

先决条件

  • 您创建了 Amazon SQS 连接,该连接配置为访问要发送消息的队列。
  • 您知道您希望连接将消息发送到的 SQS 队列的名称。
  • Fuse Online 会提示您添加到集成,或者选择完成连接以进行简单集成。

流程

  1. Add to Integration 页面上,单击您要添加连接的加号。如果 Fuse Online 正在提示您选择完成连接,请跳过这一步。
  2. 点击您要用来发送消息的 Amazon SQS 连接。
  3. 选择您要连接执行的操作:

    • 发送对象 向队列发送一条消息。
    • 发送批处理 对象将批处理消息发送到队列。
  4. Message group ID 策略 字段中,对于 first-in, first-out (FIFO)队列,接受 ConstantMessageGroupIdStrategy 或点击字段中并选择不同的策略。

    此参数的设置对简单队列没有影响。消息组 ID 标识消息所属的组。属于同一消息组的消息始终逐一处理,其严格顺序相对于消息组。消息组 ID 策略决定了连接如何为消息分配组 ID。这些选项是:

    • ConstantMessageGroupIdStrategy mvapich-wagonThe 连接使用恒定来对消息进行分组。
    • ExchangeIdMessageGroupIdStrategy criu-wagonThe 连接使用交换 ID (位于每个消息中)来对消息进行分组。
    • PropertyValueMessageGroupIdStrategy mvapich-wagonThe 连接使用 internal 属性的值来对消息进行分组。

    FIFO 队列旨在确保信息被严格保留和接收的顺序,并且每个消息都完全被处理一次。FIFO 队列名称具有 .fifo 作为后缀。

  5. Message deduplication ID 策略 字段中,对于 FIFO 队列,接受 NullMessageDeduplicationIdStrategy 或点击字段中以选择 ExchangeIdMessageDeduplicationIdStrategy

    此参数的设置对简单队列没有影响。对于 FIFO 队列,连接使用所选策略来确保它不会向队列发送重复消息。

    • NullMessageDeduplicationIdStrategy 使用消息正文作为 deduplication 元素。换句话说,连接比较了消息正文以识别重复消息。
    • ExchangeIdMessageDeduplicationIdStrategy 使用消息的交换 ID 作为 deduplication 元素。换句话说,连接比较交换 ID 以识别重复消息。
  6. Queue Name 或 Amazon Resource Name 字段中输入要发送消息的队列名称。如果队列不存在,连接会创建它。
  7. Delay 字段中,接受默认值,即 0 代表没有延迟。或者,要添加延迟,请指定一个数字。集成会在发送消息前等待这个秒数。当消息消费者可能不会立即准备好连接发送的消息时,这非常有用。
  8. 点击 Next

结果

连接会出现在您添加它的集成流中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.