首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RabbitMQ集群如何识别Docker的容器重新启动?

RabbitMQ集群如何识别Docker的容器重新启动?
EN

Stack Overflow用户
提问于 2017-01-25 12:06:41
回答 1查看 968关注 0票数 2

我有三个复制容器在群集模式服务中运行RabbitMQ。每个容器充当一个RabbitMQ节点来创建一个RabbitMQ集群。用于此的docker service create如下所示:

代码语言:javascript
运行
复制
docker service create -e RABBITMQ_ERLANG_COOKIE='mysecretcookie' --replicas 4 --network rnet -p 15672:15672 -p 5672:5672 rabbitmq

此后,我能够在每个从节点上使用rabbitmqctl <hostname> join_cluster成功地创建一个rabbitmqctl <hostname> join_cluster集群。

我的问题是,如果一个群集节点发生故障,Docker将在另一个节点上启动一个新容器,但是容器具有不同的随机主机名。

由于RabbitMQ使用主机名标识RabbitMQ集群节点,因此它不识别新容器上的新主机名,因此假定原始节点无限期关闭。

我尝试使用Docker1.13中的新模板特性,它允许您通过在--hostname="{{.Node.ID}}-{{.Service.Name}}"中指定docker service create来创建静态主机名。但是,您目前无法发现基于此自定义主机名的容器,因此不能以这种方式创建RabbitMQ集群。

我希望在Docker开始运行新容器后,RabbitMQ能够自动重新加入集群节点。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 12:49:07

我希望在Docker开始运行新容器后,RabbitMQ能够自动重新加入集群节点。这个是可能的吗?

我假设您的意思是“重新加入新启动的docker容器中的集群节点”。

答案是-不是。因为,根据定义,不是重新加入,而是简单地加入,因为,从RabbitMQ的角度来看,这只是一台新机器(计算机、vm、坞.)在网络里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41851243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档