gpt4 book ai didi

rabbitmq - 如何使用主动/被动高可用性架构配置 RabbitMQ

转载 作者:行者123 更新时间:2023-12-03 23:55:52 25 4
gpt4 key购买 nike

我正在尝试设置一个 RabbitMQ 服务器集群,以使用主动/被动服务器架构获得高可用的队列。我正在遵循本指南:

  • http://www.rabbitmq.com/clustering.html
  • http://www.rabbitmq.com/ha.html
  • http://karlgrz.com/rabbitmq-highly-available-queues-and-clustering-using-amazon-ec2/

  • 我对高可用性的要求很简单,我有两个节点(CentOS 6.4)和 RabbitMQ (v3.2) 和 Erlang R15B03。 Node1 必须是“主动”节点,响应所有请求,而 Node2 必须是“被动”节点,它复制了所有队列和消息(来自 Node1)。

    为此,我配置了以下内容:
  • 带有 RabbitMQ 的 Node1 在非集群模式下工作正常
  • 带有 RabbitMQ 的 Node2 在非集群模式下工作正常

  • 接下来我在两个节点之间创建了一个集群:将 Node2 加入到 Node1(指南 1)。之后,我配置了一个策略来镜像队列(指南 2),在集群中的所有节点之间复制所有队列和消息。这有效,我可以连接到任何节点并发布或使用消息,同时两个节点都可用。

    当我在 Node1 上创建了一个队列“queueA”(queueA 上的主节点)时,会出现问题,当 Node1 停止时,我无法连接到 Node2 中的 queueA 以生成或使用消息,Node2 抛出错误说Node1不可访问(我认为queueA没有复制到Node2,Node2不能提升为queueA的master)。

    错误是:

    {"The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=404, text=\"NOT_FOUND - home node 'rabbit@node1' of durable queue 'queueA' in vhost 'app01' is down or inaccessible\", classId=50, methodId=10, cause="}



    使用的步骤顺序是:

    节点 1:
    1. rabbitmq-server -detached
    2. rabbitmqctl start_app

    节点2:
    3. Copy .erlang.cookie from Node1 to Node2
    4. rabbitmq-server -detached

    加入集群(Node2):
    5. rabbitmqctl stop_app
    6. rabbitmqctl join_cluster rabbit@node1
    7. rabbitmqctl start_app

    配置队列镜像策略:
    8. rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

    注意:用于队列名称的模式是“”(所有队列)。

    当我运行 'rabbitmqctl list_policies' 和 'rabbitmqctl cluster_status' 时一切正常。

    为什么Node1不可用,Node2无法响应?这个设置有问题吗?

    最佳答案

    您尚未在 set_policy 调用中指定虚拟主机 (app01),因此该策略仅适用于默认虚拟主机 (/)。这个命令行应该可以工作:

    rabbitmqctl set_policy -p app01 ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

    关于rabbitmq - 如何使用主动/被动高可用性架构配置 RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501430/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com