策略 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

策略

您可以使用 Amazon MQ 推荐的默认值来应用自定义策略和限制。如果已删除建议的默认策略和限制,并希望重新创建这些策略和限制,或者创建了其他虚拟主机并希望将默认策略和限制应用于新虚拟主机,则可以使用以下步骤。

重要

要执行下列步骤,您必须拥有具有管理员权限的 Amazon MQ RabbitMQ 代理用户。您可以使用第一次创建代理时创建的管理员用户,也可以使用之后可能创建的其他用户。下表提供了作为正则表达式(正则表达式)模式所需的管理员用户标签和权限。

标签 读取正则表达式 配置正则表达式 写入正则表达式
administrator .* .* .*

有关创建 RabbitMQ 用户和管理用户标记和权限的更多信息,请参阅用户

使用 RabbitMQ Web 控制台应用默认策略和虚拟主机限制
  1. 登录 Amazon MQ 控制台

  2. 在左侧导航窗格中,选择 Brokers (代理)

  3. 从代理列表中,选择要向其应用新策略的代理的名称。

  4. 在代理详细信息页面的 Connections (连接) 部分,选择 RabbitMQ web console (RabbitMQ Web 控制台) URL。RabbitMQ Web 控制台可在新的浏览器选项卡或窗口中打开。

  5. 使用您的代理管理员的用户名和密码登录 RabbitMQ Web 控制台。

  6. 在 RabbitMQ Web 控制台页面顶部选择 Admin (管理员)

  7. Admin (管理员) 页面的右侧导航窗格中,选择 Policies (策略)

  8. Policies (策略) 页面上,您可以看到代理现有的 User policies (用户策略) 列表。在 User policies (用户策略) 下,展开 Add / update a policy (添加/更新策略)

  9. 要创建新的代理策略,请在 Add / update a policy (添加/更新策略) 下,执行以下操作:

    1. 对于 Virtual host (虚拟主机),请从下拉列表中选择要将策略附加到的虚拟主机的名称。要选择默认虚拟主机,请选择 /

      注意

      如果尚未创建其他虚拟主机,则 RabbitMQ 控制台中不显示 Virtual host (虚拟主机) 选项,并且策略仅应用于默认虚拟主机。

    2. 对于 Name (名称),请为您的策略输入名称,例如 policy-defaults

    3. Pattern (模式) 中,输入正则表达式模式 .*,以便策略匹配代理上的所有队列。

    4. 对于 Apply to (应用于),从下拉列表中选择 Exchanges and queues (交换器和队列)

    5. 对于 Priority (优先级),输入一个大于应用于虚拟主机的所有其他策略的整数。您可以在任何给定时间将一组策略定义应用于 RabbitMQ 队列和交换器。RabbitMQ 选择具有最高优先级值的匹配策略。有关策略优先级以及如何组合策略的更多信息,请参阅 RabbitMQ 服务器文档中的策略

    6. 对于 Definition (定义),添加以下键/值对:

      • queue-mode=lazy。从下拉列表中选择 String (字符串)

      • overflow=reject-publish。从下拉列表中选择 String (字符串)

        注意

        不适用于单实例代理。

      • max-length= number-of-messages。 根据代理number-of-messages的实例大小和部署模式(例如集群),替换为 Amazon MQ 的推荐值8000000 mq.m5.large从下拉列表中选择 Number (编号)

        注意

        不适用于单实例代理。

    7. 选择 Add / update policy (添加/更新策略)

  10. 确认 User policies (用户策略) 列表中显示新策略。

    注意

    对于集群代理,Amazon MQ 会自动应用 ha-mode: allha-sync-mode: automatic 策略定义。

  11. 从右侧导航窗格中,选择 Limits (限制)

  12. Limits (限制) 页面上,您可以看到代理现有的 Virtual host limits (虚拟主机限制) 列表。在 Virtual host limits (虚拟主机限制) 下,展开 Set / update a virtual host limit (设置/更新虚拟主机限制)

  13. 要创建新的虚拟主机限制,请在 Set / update a virtual host limit (设置/更新虚拟主机限制) 中,执行以下操作:

    1. 对于 Virtual host (虚拟主机),请从下拉列表中选择要将策略附加到的虚拟主机的名称。要选择默认虚拟主机,请选择 /

    2. 对于 Limit (限制),从下拉选项中选择 max-connections

    3. 对于 Value (值),根据代理的实例大小和部署模式输入 Amazon MQ 建议值,例如,对于 mq.m5.large 集群输入 15000

    4. 选择 Set / update limit (设定/更新限制)

    5. 重复上述步骤,对于 Limit (限制),从下拉选项中选择 max-queue (最大队列数)

  14. 确认新限制在 Virtual host limits (虚拟主机限制) 列表中显示。

使用 RabbitMQ 管理 API 应用默认策略和虚拟主机限制
  1. 登录 Amazon MQ 控制台

  2. 在左侧导航窗格中,选择 Brokers (代理)

  3. 从代理列表中,选择要向其应用新策略的代理的名称。

  4. 在代理页面的 Connections (连接) 部分,记下 RabbitMQ web console (RabbitMQ Web 控制台) URL。这是您在 HTTP 请求中使用的代理终端节点。

  5. 打开您选择的新终端或命令行窗口。

  6. 要创建新的代理策略,请输入以下 curl 命令。此命令假定默认 / 虚拟主机上有一个队列,该队列编码为 %2F。要将策略应用到另一个虚拟主机,请将 %2F 替换为虚拟主机的名称。

    注意

    usernamepassword 替换为管理员登录凭证。根据代理number-of-messages的实例大小和部署模式,替换为 Amazon MQ 推荐值。将 policy-name 替换为您的策略名称。将 broker-endpoint 替换为您之前备注的 URL。

    curl -i -u username:password -H "content-type:application/json" -XPUT \ -d '{"pattern":".*", "priority":1, "definition":{"queue-mode":lazy, "overflow":"reject-publish", "max-length":"number-of-messages"}}' \ broker-endpoint/api/policies/%2F/policy-name
  7. 要确认新策略已添加到您的代理的用户策略中,请输入以下 curl 命令以列出所有代理策略。

    curl -i -u username:password broker-endpoint/api/policies
  8. 创建新的 max-connections 虚拟主机限制,请输入以下 curl 命令。此命令假定默认 / 虚拟主机上有一个队列,该队列编码为 %2F。要将策略应用到另一个虚拟主机,请将 %2F 替换为虚拟主机的名称。

    注意

    usernamepassword 替换为管理员登录凭证。根据代理的实例大小和部署模式,将 max-connections 替换为 Amazon MQ 建议值。将代理终端节点替换为您之前记下的 URL。

    curl -i -u username:password -H "content-type:application/json" -XPUT \ -d '{"value":"number-of-connections"}' \ broker-endpoint/api/vhost-limits/%2F/max-connections
  9. 要创建新的 max-queues 虚拟主机限制,请重复上一步,但修改 curl 命令,如下所示。

    curl -i -u username:password -H "content-type:application/json" -XPUT \ -d '{"value":"number-of-queues"}' \ broker-endpoint/api/vhost-limits/%2F/max-queues
  10. 要确认新限制已添加到您的代理的虚拟主机限制,请输入以下 curl 命令以列出所有代理虚拟主机限制。

    curl -i -u username:password broker-endpoint/api/vhost-limits