本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 MQ 应用 RabbitMQ 的政策
您可以使用 Amazon MQ 推荐的默认值来应用自定义策略和限制。如果已删除建议的默认策略和限制,并希望重新创建这些策略和限制,或者创建了其他虚拟主机并希望将默认策略和限制应用于新虚拟主机,则可以使用以下步骤。
重要
要执行下列步骤,您必须拥有具有管理员权限的 Amazon MQ RabbitMQ 代理用户。您可以使用第一次创建代理时创建的管理员用户,也可以使用之后可能创建的其他用户。下表提供了作为正则表达式(正则表达式)模式所需的管理员用户标签和权限。
标签 | 读取正则表达式 | 配置正则表达式 | 写入正则表达式 |
---|---|---|---|
administrator |
.* |
.* |
.* |
有关创建 RabbitMQ 用户和管理用户标记和权限的更多信息,请参阅适用于 RabbitMQ 经纪商用户的亚马逊 MQ。
使用 RabbitMQ Web 控制台应用默认策略和虚拟主机限制
-
登录 Amazon MQ 控制台
。 -
在左侧导航窗格中,选择 Brokers (代理)。
-
从代理列表中,选择要向其应用新策略的代理的名称。
-
在代理详细信息页面的连接部分,选择 RabbitMQ Web 控制台。URLRabbitMQ Web 控制台可在新的浏览器选项卡或窗口中打开。
-
使用您的代理管理员的用户名和密码登录 RabbitMQ Web 控制台。
-
在 RabbitMQ Web 控制台页面顶部选择 Admin (管理员)。
-
在 Admin (管理员) 页面的右侧导航窗格中,选择 Policies (策略)。
-
在 Policies (策略) 页面上,您可以看到代理现有的 User policies (用户策略) 列表。在 User policies (用户策略) 下,展开 Add / update a policy (添加/更新策略)。
-
要创建新的代理策略,请在 Add / update a policy (添加/更新策略) 下,执行以下操作:
-
对于 Virtual host (虚拟主机),请从下拉列表中选择要将策略附加到的虚拟主机的名称。要选择默认虚拟主机,请选择 /。
注意
如果尚未创建其他虚拟主机,则 RabbitMQ 控制台中不显示 Virtual host (虚拟主机) 选项,并且策略仅应用于默认虚拟主机。
-
对于 Name (名称),请为您的策略输入名称,例如
policy-defaults
。 -
在 Pattern (模式) 中,输入正则表达式模式
.*
,以便策略匹配代理上的所有队列。 -
对于 Apply to (应用于),从下拉列表中选择 Exchanges and queues (交换器和队列)。
-
对于 Priority (优先级),输入一个大于应用于虚拟主机的所有其他策略的整数。您可以在任何给定时间将一组策略定义应用于 RabbitMQ 队列和交换器。RabbitMQ 选择具有最高优先级值的匹配策略。有关策略优先级以及如何组合策略的更多信息,请参阅 RabbitMQ 服务器文档中的策略
。 -
对于 Definition (定义),添加以下键/值对:
-
queue-mode
=lazy
。从下拉列表中选择 String (字符串)。 -
overflow
=reject-publish
。从下拉列表中选择 String (字符串)。注意
不适用于单实例代理。
-
max-length
=
。 替换number-of-messages
number-of-messages
Amazon MQ 的推荐值取决于代理的实例大小和部署模式,例如,8000000
对于集mq.m5.large
群。从下拉列表中选择 Number (编号)。注意
不适用于单实例代理。
-
-
选择 Add / update policy (添加/更新策略)。
-
-
确认 User policies (用户策略) 列表中显示新策略。
注意
对于集群代理,Amazon MQ 会自动应用
ha-mode: all
和ha-sync-mode: automatic
策略定义。 -
从右侧导航窗格中,选择 Limits (限制)。
-
在 Limits (限制) 页面上,您可以看到代理现有的 Virtual host limits (虚拟主机限制) 列表。在 Virtual host limits (虚拟主机限制) 下,展开 Set / update a virtual host limit (设置/更新虚拟主机限制)。
-
要创建新的虚拟主机限制,请在 Set / update a virtual host limit (设置/更新虚拟主机限制) 中,执行以下操作:
-
对于 Virtual host (虚拟主机),请从下拉列表中选择要将策略附加到的虚拟主机的名称。要选择默认虚拟主机,请选择 /。
-
对于 Limit (限制),从下拉选项中选择 max-connections。
-
对于 Value (值),根据代理的实例大小和部署模式输入 Amazon MQ 建议值,例如,对于
mq.m5.large
集群输入15000
。 -
选择 Set / update limit (设定/更新限制)。
-
重复上述步骤,对于 Limit (限制),从下拉选项中选择 max-queue (最大队列数)。
-
-
确认新限制在 Virtual host limits (虚拟主机限制) 列表中显示。
使用 RabbitMQ 管理应用默认策略和虚拟主机限制 API
-
登录 Amazon MQ 控制台
。 -
在左侧导航窗格中,选择 Brokers (代理)。
-
从代理列表中,选择要向其应用新策略的代理的名称。
-
在经纪人页面的 “连接” 部分,注意 RabbitMQ Web 控制台。URL这是您在HTTP请求中使用的代理端点。
-
打开您选择的新终端或命令行窗口。
-
要创建新的代理策略,请输入以下
curl
命令。此命令假定默认/
虚拟主机上有一个队列,该队列编码为%2F
。要将策略应用到另一个虚拟主机,请将%2F
替换为虚拟主机的名称。注意
Replace(替换)
username
以及password
使用您的管理员登录凭证。Replace(替换)number-of-messages
根据代理的实例大小和部署模式,使用 Amazon MQ 的推荐值。Replace(替换)policy-name
并附上您的保单的名称。Replace(替换)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
-
要确认新策略已添加到您的代理的用户策略中,请输入以下
curl
命令以列出所有代理策略。curl -i -u
username
:password
broker-endpoint
/api/policies -
创建新的
max-connections
虚拟主机限制,请输入以下curl
命令。此命令假定默认/
虚拟主机上有一个队列,该队列编码为%2F
。要将策略应用到另一个虚拟主机,请将%2F
替换为虚拟主机的名称。注意
Replace(替换)
username
以及password
使用您的管理员登录凭证。Replace(替换)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 -
要创建新的
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 -
要确认新限制已添加到您的代理的虚拟主机限制,请输入以下
curl
命令以列出所有代理虚拟主机限制。curl -i -u
username
:password
broker-endpoint
/api/vhost-limits