RabbitMQ配置联邦策略时max-hops参数应在何处声明?
RabbitMQ联邦策略
max-hops参数配置说明 你最初的命令写法存在两处错误:
--max-hops不是rabbitmqctl set_policy的合法命令行参数,该命令仅支持--priority、--apply-to、--vhost几个固定的可选参数,把--max-hops放在命令末尾会触发参数不识别的报错。- 你传入的JSON定义块末尾缺少闭合的右大括号,即使参数位置正确也会触发JSON解析失败。
max-hops是RabbitMQ联邦插件识别的策略属性,必须写入命令中的JSON定义块内,官方文档里标注的max-hops=1是参数语义的简写表述,不是命令行的参数格式,放到JSON中需要遵循标准JSON键值对语法,键名为"max-hops",值为整数类型即可。
正确的配置命令如下:
rabbitmqctl set_policy ha-fed "^MyExchange" '{"federation-upstream-set":"all", "ha-sync-mode":"automatic", "max-hops":1}' --priority 10 --apply-to exchanges
补充说明:
max-hops参数默认值为1,作用是限制联邦链路中消息的最大转发跳数,避免消息在环形联邦拓扑中无限循环转发。- 所有和联邦插件、镜像队列相关的自定义策略属性,都需要写入set_policy命令的JSON定义块中,不能作为独立命令行参数追加在命令末尾。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

