如何在Docker云上设置RabbitMQ集群?
我试图通过DockerCloud设置RabbitMQ集群,但有点失败 有很多教程,但我不知道Docker Cloud是如何创建集群的,这样我就可以部署和连接两个运行的RabbitMQ服务了 到目前为止我拥有的:如何在Docker云上设置RabbitMQ集群?,docker,rabbitmq,Docker,Rabbitmq,我试图通过DockerCloud设置RabbitMQ集群,但有点失败 有很多教程,但我不知道Docker Cloud是如何创建集群的,这样我就可以部署和连接两个运行的RabbitMQ服务了 到目前为止我拥有的: 通过Docker Cloud(AWS)创建两个节点 创建这两个节点的集群 我在两个节点之一上部署了RabbitMQ容器 现在我不知道从那里去哪里 我的问题: 如何部署两个RabbitMQ实例并将它们链接在一起 如果它们是链接的,Docker Cloud是如何管理的?或者我必须在管理
- 通过Docker Cloud(AWS)创建两个节点
- 创建这两个节点的集群
- 我在两个节点之一上部署了RabbitMQ容器
- 如何部署两个RabbitMQ实例并将它们链接在一起
- 如果它们是链接的,Docker Cloud是如何管理的?或者我必须在管理GUI上执行此操作
非常感谢您为我提供任何指导或指引正确的方向。由于我找不到如何在Docker Cloud上设置它的指南,因此这里有一个解释:
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集群文件:
#!/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 Cloud中,创建一个新服务并搜索harbur/rabbitmq集群
。部署映像时,选择“在每个节点上部署”,并使用标记标识集群节点
在环境变量中,输入:
集群_:rabbitmq-CLUSTER-1(您的第一个实例的名称)
ERLANG_COOKIE:abcdefg
rabbitmq集群脚本在每个节点上执行
(rabbit-mq-cluster-1、rabbit-mq-cluster-2等),因此环境
变量确保只加入那些不是第一个的主机。
这确保您可以通过Docker云和新节点进行扩展
自动与第一个节点聚集
我在这里回答了这个问题。在您的情况下,请确保设置了flag
RABBITMQ\u USE\u LONGNAME
。可能存在重复的