RabbitMq:有没有办法在集群环境中的所有虚拟主机上应用策略进行队列镜像?

Har*_*Pal 5 rabbitmq rabbitmq-exchange rabbitmqctl

在RabbitMQ中,

如果我想在群集环境中镜像队列,请使用以下命令:

rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Run Code Online (Sandbox Code Playgroud)

此命令将策略应用于虚拟主机的所有队列"\".

如果我必须将特定虚拟主机的策略应用于"foo",我使用:

rabbitmqctl set_policy -p "foo" ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Run Code Online (Sandbox Code Playgroud)

题 :

有没有办法在集群环境中的所有虚拟主机上应用策略以进行队列镜像?

小智 3

如果您在 *nix 环境中运行,则以下内容应该有效

rabbitmqctl list_vhosts | while read line ; do rabbitmqctl set_policy -p "$line" ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'; done
Run Code Online (Sandbox Code Playgroud)

这会将输出的每一行通过管道传输到您的rabbitmqctrl 命令中。