如何解决如何配置RabbitMQ铲子?
我在单独的数据中心中有2个RabbitMQ集群。此时此刻,我需要把一只兔子中的一只交换给另一只兔子。我该如何实现?
解决方法
shovel plugin最适合此任务,有助于在群集之间(或同一群集内)可靠且连续地移动消息。此插件包含在RabbitMQ发行版中,并且易于启用(可以在集群之一上进行配置):
rabbitmq-plugins enable rabbitmq_shovel
如果您喜欢UI,请为Management UI启用管理插件:
rabbitmq-plugins enable rabbitmq_shovel_management
下一步是定义dynamic shovel本身(如果您打算永久在群集之间移动消息,请使用static shovel)。在documentation中很好地定义了铲的声明。请注意,您需要配置src-exchange
和dest-exchange
而不是src-queue
和dest-queue
。
为补充Sergii的回答,以下是我如何从生产集群到测试集群创建铲子。
call rabbitmqctl.bat set_parameter shovel [shovel_name] "{""src-protocol"": ""amqp091"",""src-uri"":""amqp://[username]:[password]@localhost"",""src-exchange"": ""[source_exchange]"",""src-exchange-key"": ""#"",""dest-protocol"": ""amqp091"",""dest-uri"": ""amqp://[username]:[password]@[target_cluster_server]"",""dest-exchange"": ""[target_exchange]""}"
它会创建一个动态铲,我更喜欢它,因为它将自动将其自动复制到源集群中的其他节点。
您可以在dest-uri中提供多个目的地,因此,如果目标节点处于下降状态,则铲将尝试另一个目的地。
src-exchange-key
是因为源是主题交流。
除了查看目标交易所是否收到您的期望之外,我认为没有任何其他方法可以检查行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。