2016-04-25 226 views
3

我想创建一个对故障非常灵活的rabbitMQ集群。Docker容器中的RabbitMQ集群不同主机之间的容器

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

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

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

  1. 使用联邦/铲来代替。这不符合我的目的,因为我需要来自CAP定理的CP而不是CA.我需要我的节点成为彼此的副本,并且能够充当客户的同一个经纪人。

  2. 创建码头群。我可以设置码头群并通过码头群连接两个实例。但是,如果我尝试在这个群上运行多个兔子容器,它们要么放在同一个节点上,要么我不能将它们彼此链接起来。所以我最终得到的是同一个节点上运行的所有主机的星座。

有没有解决方案或其他方法,我可以在不同的AWS实例/主机之间创建一个rabbitmMQ集群在Docker容器中?

+0

码头覆盖网络如何? https://docs.docker.com/engine/userguide/networking/dockernetworks/#an-overlay-network – cantSleepNow

回答

0

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

相关问题