【问题标题】:RabbitMQ Cluster in Docker Container among different hostsDocker Container 中不同主机间的 RabbitMQ 集群
【发布时间】:2016-04-25 08:33:07
【问题描述】:

我想创建一个对故障非常有弹性的 rabbitMQ 集群。

到目前为止,我已经成功地创建了一个包含三个节点的集群,每个节点都在一个 docker 容器中运行。为了使节点能够加入集群,主机需要通过链接相互了解。

现在,整个架构在云中运行(准确地说是在 AWS 上)。到目前为止,我的容器只能在同一个 AWS 实例上运行时才能相互链接。我想以节点可以位于不同主机上的方式创建集群。

到目前为止我已经尝试过:

  1. 改用联邦/铲子。这不符合我的目的,因为我需要 CAP 定理中的 CP 而不是 CA。我需要我的节点是彼此的所有副本,并且能够充当客户端的同一个代理。

  2. 创建一个 docker swarm。我能够设置 docker swarm 并通过 docker swarm 连接两个实例。但是,如果我尝试在这个 swarm 上运行多个 rabbit-containers,它们要么被放置在同一个节点上,要么我无法将它们相互链接。所以我最终得到了相同的星座,我的所有主机都在同一个节点上运行。

是否有任何解决方案或其他方法可以在不同 AWS 实例/主机之间的 docker 容器内创建 rabbitmMQ 集群?

【问题讨论】:

标签: amazon-web-services docker rabbitmq docker-swarm


【解决方案1】:

您提到“要使节点能够加入集群,主机需要通过链接相互了解”.. 但我不确定您为什么需要链接。主要是每个容器能够相互定位,这基本上是一个服务发现问题。我在一堆不同的虚拟机(甚至不使用 swarm)上使用consul 做了类似的事情(使用 rabbitmq),但是如果你已经在运行一个 swarm 集群,那么你也许可以点击 API 来发现其他实例容器?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多