--我正在尝试通过DockerCloud来设置一个RabbitMQ集群,而且有点丢失。
这里有很多教程,但我不知道Docker是如何创建集群的,这样我就可以部署和连接两个正在运行的RabbitMQ服务?
到目前为止我所拥有的:
现在我不知道从那里往哪里走。
我有问题:
任何指导或指点我的正确方向是非常感谢的。
发布于 2017-01-05 08:18:16
由于我找不到关于如何在Docker Cloud上设置它的指南,这里有一个解释:
Dockerfile
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中,创建一个新服务并搜索harbur/rabbitmq-cluster。在部署映像时,选择“部署在每个节点上”,并使用标记标识集群节点。
在环境变量中,输入: CLUSTER_WITH: rabbitmq-群集-1(您的第一个实例的名称) ERLANG_COOKIE: abcdefg。
在每个节点(兔子-mq-集群-1,兔子-mq-集群-2等)上执行rabbitmq-集群脚本,因此环境变量确保只加入那些不是第一个的主机。这确保您可以通过Docker进行缩放,并且新节点会自动与第一个节点进行集群。
https://stackoverflow.com/questions/41466610
复制相似问题