docker pull rabbitmq:3.7.12-management
mkdir rabbitmq
# node1 172.17.11.22
cd rabbitmq
vim hosts
#输入
172.17.11.22 rabbit1 rabbit1
172.17.11.23 rabbit2 rabbit2sudo docker run -d --name rabbit1 -h rabbit1--log-opt max-size=10m --log-opt max-file=3 -v /root/rabbitmq:/var/lib/rabbitmq:z -v /root/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_ERLANG_COOKIE='cookie' -p 5656:5672 -p 5657:15672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 5671:5671 rabbitmq:3.7.12-management# node2 172.17.11.23
cd rabbitmq
vim hosts
#输入
172.17.11.22 rabbit1 rabbit1
172.17.11.23 rabbit2 rabbit2
sudo docker run -d --name rabbit2 -h rabbit2--log-opt max-size=10m --log-opt max-file=3 -v /root/rabbitmq:/var/lib/rabbitmq:z -v /root/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_ERLANG_COOKIE='cookie' -p 5656:5672 -p 5657:15672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 5671:5671 rabbitmq:3.7.12-management
上述完成2个RabbitMQ节点的启动,后面是要将两个节点做成一个集群,现在讲rabbitmq1作为master,然后rabbitmq2加入到rabbitmq1中
# node2 处理
sudo docker exec -it rabbit2 /bin/bash
# 加入集群
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
使用删除方式处理时出现过以下问题
rabbit@localhost:* connected to epmd (port 4369) on localhost* epmd reports node 'rabbit' running on port 25672* TCP connection succeeded but Erlang distribution failed* Hostname mismatch: node "rabbit@warp10" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@warp10"current node details:- node name: 'rabbitmq-cli-30@warp10'- home dir: /Users/antares- cookie hash: Sg08R8+G85EYHZ3H/9NUfg==
docker 部署。官网中有问题显示,但是具体情况很多,经过后续的分析,是因为在docker run时hostname的问题,所以在run时指定容器的hostname。也就是通过-h来指定hostname,根本问题就是HOSTNAME
解决方法,在Docker创建时,指定了/etc/hosts文件,但是启动docker时,应用里的hostname与hosts中指定的hostname不相同1. echo $HOSTNAME 查看下当前的hostname 然后export HOSTNAME=*** 修改为/etc/hosts希望的名字
2. /etc/hostname中科院设置相应的数据使用docker部署rabbitmq集群时,因为hostname不匹配,导致的问题,建议在run时加入参数-h来指定参数,保证hostname的正确性
配置文件如下:
server
注意:stream要和http一个层级
docker部署mysql?如有兴趣扫码加入QQ群,进行更多的交流。
Docker分布式部署RabbitMQ集群
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态