Rabbitmq集群部署-Docker
集群信息
node1:192.168.30.131(master)
node2:192.168.30.26
node3:192.168.30.132
rabbitmq镜像版本:rabbitmq:3.8.9-management-alpine
当前部署的集群适合局域网部署
RabbitMQ集群安装
1、创建存储目录(所有node)
mkdir -p /data/rabbitmq/{conf,data}
2、时区(所有node)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3、创建配置文件(所有node)
vim /data/rabbitmq/conf/rabbitmq.conf
loopback_users.guest = false # 是否只允许本机访问,配置“guest”用户能够远程连接,默认:true
listeners.tcp.default = 5672 # 监听端口
reverse_dns_lookups = false # 设置为true,可让客户端在连接时让RabbitMQ 执行一个反向DNS查找, 然后通过 rabbitmqctl 和 管理插件来展现信息. 默认:false
4、node1部署
docker run -d \
--restart=always \
--name rabbitmq-node2 \
--hostname rabbitmq-node2 \
-e RABBITMQ_DEFAULT_USER="admin" \
-e RABBITMQ_DEFAULT_PASS="admin" \
-e RABBITMQ_ERLANG_COOKIE="1234567890qwertyuiopQWERTYUIOP" \
-p 15672:15672 -p 5672:5672 -p 4369:4369 -p 25672:25672 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-v /data/rabbitmq/data:/var/lib/rabbitmq \
rabbitmq:3.8.9-management-alpine
# --add-host 添加hosts,主机名通信使用,连接master加入集群
# RABBITMQ_DEFAULT_USER 默认用户
# RABBITMQ_DEFAULT_PASS 默认密码
# RABBITMQ_ERLANG_COOKIE 指定Cooike,集群多台服务器cookiee要一致
5、node2
docker run -d \
--restart=always \
--name rabbitmq-node2 \
--hostname rabbitmq-node2 \
--add-host=rabbitmq-node1:192.168.30.131 \
--add-host=rabbitmq-node2:192.168.30.132 \
--add-host=rabbitmq-node3:192.168.30.26 \
-e RABBITMQ_DEFAULT_USER="admin" \
-e RABBITMQ_DEFAULT_PASS="admin" \
-e RABBITMQ_ERLANG_COOKIE="1234567890qwertyuiopQWERTYUIOP" \
-p 15672:15672 -p 5672:5672 -p 4369:4369 -p 25672:25672 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-v /data/rabbitmq/data:/var/lib/rabbitmq \
rabbitmq:3.8.9-management-alpine
6、node3
docker run -d \
--restart=always \
--name rabbitmq-node3 \
--hostname rabbitmq-node3 \
--add-host=rabbitmq-node1:192.168.30.131 \
--add-host=rabbitmq-node2:192.168.30.132 \
--add-host=rabbitmq-node3:192.168.30.26 \
-e RABBITMQ_DEFAULT_USER="admin" \
-e RABBITMQ_DEFAULT_PASS="admin" \
-e RABBITMQ_ERLANG_COOKIE="1234567890qwertyuiopQWERTYUIOP" \
-p 15672:15672 -p 5672:5672 -p 4369:4369 -p 25672:25672 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-v /data/rabbitmq/data:/var/lib/rabbitmq \
rabbitmq:3.8.9-management-alpine
7、将node2、node3加入集群
# node2加入集群
# 停止服务
docker exec rabbitmq-node2 rabbitmqctl stop_app
# 加入集群
docker exec rabbitmq-node2 rabbitmqctl join_cluster rabbit@rabbitmq-node1
# 启动服务
docker exec rabbitmq-node2 rabbitmqctl start_app
# node3加入集群
docker exec rabbitmq-node3 rabbitmqctl stop_app
docker exec rabbitmq-node3 rabbitmqctl join_cluster rabbit@rabbitmq-node1
docker exec rabbitmq-node3 rabbitmqctl start_app
# 当前加入集群都是磁盘节点,如果要加内存节点加入 --ram参数,如:
docker exec rabbitmq-node3 rabbitmqctl stop_app
docker exec rabbitmq-node3 rabbitmqctl join_cluster --ram rabbit@rabbitmq-node1
docker exec rabbitmq-node3 rabbitmqctl start_app
内存节点(ram):就是将元数据都放在内存里,内存节点的话,只要服务重启,该节点的所有数据将会丢失
硬盘节点(disc):就是将元数据都放在硬盘里,所以服务重启的话,数据也还是会存在的
8、查看集群状态
rabbitmq是有web控制台的,访问任意节点的15672端口,用户密码是启动docker容器是定义的
正文到此结束
评论
登录后才能发表评论 登录/注册
0评论