docker 部署,docker rabbitmq_Docker部署RabbitMQ集群

 2023-09-23 阅读 26 评论 0

摘要:安装rabbitmq下载Docker镜像docker pull rabbitmq:3.7.12-management安装RabbitMQmkdir 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-

安装rabbitmq

下载Docker镜像

docker pull rabbitmq:3.7.12-management

安装RabbitMQ

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的正确性

配置nginx,来保证集群的可用性

配置文件如下:

server 

注意:stream要和http一个层级

docker部署mysql?如有兴趣扫码加入QQ群,进行更多的交流。

e10e020cd14a812bb3fea42b23e76397.png

参考资料

Docker分布式部署RabbitMQ集群

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/88809.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息