首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Docker上设置RabbitMQ集群?

如何在Docker上设置RabbitMQ集群?
EN

Stack Overflow用户
提问于 2017-01-04 14:46:25
回答 1查看 815关注 0票数 1

--我正在尝试通过DockerCloud来设置一个RabbitMQ集群,而且有点丢失。

这里有很多教程,但我不知道Docker是如何创建集群的,这样我就可以部署和连接两个正在运行的RabbitMQ服务?

到目前为止我所拥有的:

  • 通过Docker (AWS)创建两个节点
  • 创建这两个节点的集群
  • 我在两个节点中的一个上部署了一个RabbitMQ容器

现在我不知道从那里往哪里走。

我有问题:

  • 如何部署两个RabbitMQ实例并将它们连接在一起?
  • 如果它们是链接的,Docker是如何管理它们的?或者我必须在管理GUI上这样做吗?

任何指导或指点我的正确方向是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 08:18:16

由于我找不到关于如何在Docker Cloud上设置它的指南,这里有一个解释:

  1. 通过Docker上的GUI与您的首选主机提供商创建两个(或更多)节点(我选择了AWS)
  2. 通过Docker上的GUI创建节点集群,并选择您刚刚创建的节点
  3. 我在GitHub上使用了一个预先配置的映像。

Dockerfile

代码语言:javascript
复制
FROM rabbitmq:3.5.3-management
MAINTAINER Dimitris Kapanidis dimitris.kapanidis@harbur.io

COPY rabbitmq-cluster /usr/local/bin/
COPY pre-entrypoint.sh /

EXPOSE 5672 15672 25672 4369 9100 9101 9102 9103 9104 9105
ENTRYPOINT ["/pre-entrypoint.sh"]
CMD ["rabbitmq-cluster"]

重要的部分(特别是对Docker )是rabbitmq-集群文件

代码语言:javascript
复制
#!/bin/bash

hostname=`hostname`
RABBITMQ_NODENAME=${RABBITMQ_NODENAME:-rabbit}

if [ -z "$CLUSTER_WITH" -o "$CLUSTER_WITH" = "$hostname" ]; then
  echo "Running as single server"
  rabbitmq-server
else
  echo "Running as clustered server"
  /usr/sbin/rabbitmq-server -detached
  rabbitmqctl stop_app

  echo "Joining cluster $CLUSTER_WITH"
  rabbitmqctl join_cluster ${ENABLE_RAM:+--ram} $RABBITMQ_NODENAME@$CLUSTER_WITH

  rabbitmqctl start_app

  # Tail to keep the a foreground process active..
  tail -f /var/log/rabbitmq/*
fi

在Docker中,创建一个新服务并搜索harbur/rabbitmq-cluster。在部署映像时,选择“部署在每个节点上”,并使用标记标识集群节点。

在环境变量中,输入: CLUSTER_WITH: rabbitmq-群集-1(您的第一个实例的名称) ERLANG_COOKIE: abcdefg。

在每个节点(兔子-mq-集群-1,兔子-mq-集群-2等)上执行rabbitmq-集群脚本,因此环境变量确保只加入那些不是第一个的主机。这确保您可以通过Docker进行缩放,并且新节点会自动与第一个节点进行集群。

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

https://stackoverflow.com/questions/41466610

复制
相关文章

相似问题

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