联邦参考
概述
本指南提供了在定义与 联邦 相关的各种参数时可以设置的所有字段的参考。
请参考 其他与联邦相关的指南 以了解概念以及如何开始。
配置参考
策略
策略可以将一个上游集(包括名为“all”的隐式定义上游集)或单个上游应用于一组交换器和/或队列。
应用于所有上游
rabbitmqctl set_policy federate-me '^federated\.' '{"federation-upstream-set":"all"}'
应用于命名上游集
rabbitmqctl set_parameter federation-upstream-set location-1 '[{"upstream": "up-1"}, {"upstream": "up-2"}]'
rabbitmqctl set_policy federate-me '^federated\.' '{"federation-upstream-set":"location-1"}'
应用于单个上游
rabbitmqctl set_policy federate-me '^federated\.' '{"federation-upstream":"up-1"}'
请注意,您不能在策略中使用 federation-upstream 和 federation-upstream-set 键。有关策略的更多详细信息,请参阅 策略 文档。
上游
federation-upstream 参数指定如何连接到远程节点或集群以及链接(连接)的某些属性。上游是通过 rabbitmqctl set_parameter federation-upstream 命令定义的,该命令接受上游名称和上游定义 JSON 对象。
rabbitmqctl set_parameter federation-upstream 'name' 'json-object'
上游定义对象可以包含以下键:
适用于联邦交换器和队列
| 参数名称 | 描述 |
uri | 上游的 AMQP URI(s)。有关可用于联邦的底层客户端库扩展(包括 TLS)的查询参数参考,请参阅 查询参数参考。 值可以是单个字符串,也可以是字符串列表。如果提供了多个字符串,联邦插件在尝试连接时将从列表中随机选择 **一个** URI。这可以用于连接到上游集群,并确保在某个节点失败时链接最终能找到另一个节点。所有 URI 都假定指向单个集群中的节点。要同时连接到不同集群中的多个端点,请使用多个上游。 |
prefetch-count | 在任何给定时间,链接上待确认的交付的最大数量。默认值为 |
reconnect-delay | 断开连接后重新连接到代理之前等待的持续时间(以秒为单位)。默认值为 1。 |
ack-mode | 确定链接应如何确认消息。如果设置为 如果设置为 如果设置为 |
trust-user-id | 确定联邦应如何与 已验证的用户 ID 功能进行交互。如果设置为 |
仅适用于联邦交换器
以下上游参数仅适用于 联邦交换器。
| 参数名称 | 描述 |
exchange | 上游交换器的名称。默认是使用与联邦交换器相同的名称。 |
max-hops | 消息发布到联邦交换器之前可以遍历的最大联邦链接数,之后消息将被丢弃。默认值为 1。请注意,即使 |
queue-type | 交换器联邦使用的 内部上游队列 的队列类型。 默认为 默认情况下,更改队列类型将删除并重新创建上游队列。这可能导致消息在重新声明期间丢失或未路由。为避免这种情况,请将 可用版本: |
resource-cleanup-mode | 当联邦链接停止时,是否删除 内部上游队列。 默认情况下,当联邦链接停止时,内部上游队列会立即删除。设置为 |
expires | 在与上游的连接丢失后,联邦交换器的 上游队列 可能被删除的过期时间(以毫秒为单位)。默认值为 此设置控制上游队列在连接丢失后多长时间可以被删除。 此值控制上游队列中消息的 TTL 设置。 |
message-ttl | 联邦交换器的 上游队列 中消息的过期时间(请参阅 此值控制上游队列中消息的 TTL 设置。 |
仅适用于联邦队列
| 参数名称 | 描述 |
queue | 上游队列的名称。默认是使用与联邦队列相同的名称。 |
consumer-tag | 从上游消耗时使用的消费者标签。可选。 |
上游集
每个 upstream-set 都是一组上游。使用上游集并在联邦策略定义中引用它,比反复列出上游更方便。
# up-1 and up-2 are previously declared upstreams
rabbitmqctl set_parameter federation-upstream-set location-1 '[{"upstream": "up-1"}, {"upstream": "up-2"}]'
JSON 对象支持的键为:
| 参数名称 | 描述 |
upstream | 上游的名称。必填。 |
此外,上游集中的任何上游属性都可以被覆盖。
有一个隐式定义上游集 all,其中包含目标虚拟主机中创建的所有上游。
集群名称
联邦插件使用服务器中定义的集群名称来识别自己与其他联邦图中的节点。默认值由 RabbitMQ 节点名称和形成集群的第一个节点的完全限定域名构成。
可以使用以下命令更改此设置:
rabbitmqctl set_cluster_name
命令或通过管理界面。
如果您的 DNS 无法为计算机提供唯一的名称,指定此项非常重要。
以下是一个示例
rabbitmqctl set_cluster_name "east1-production"