rabbitmq高可用

创建rabbitmq容器

1.docker network create rabbitmqnet --搭建桥接网络

2.创建3个rabbitmq容器

docker run -d --name rabbitmq1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_NODENAME=rabbitmq1 -e RABBITMQ_ERLANG_COOKIE='QWERTYUIOPASDFGHJKL' -h rabbitmq1 --net=rabbitmqnet rabbitmq:management

docker run -d --name rabbitmq2 -p 5673:5672 -p 15673:15672 -e RABBITMQ_NODENAME=rabbitmq2 -e RABBITMQ_ERLANG_COOKIE='QWERTYUIOPASDFGHJKL' -h rabbitmq2 --net=rabbitmqnet rabbitmq:management

docker run -d --name rabbitmq4 -p 5674:5672 -p 15674:15672 -e RABBITMQ_NODENAME=rabbitmq4-e RABBITMQ_ERLANG_COOKIE='QWERTYUIOPASDFGHJKL' -h rabbitmq4 --net=rabbitmqnet rabbitmq:management

进入rabbitmq2和rabbitmq3容器(rabbitmq1作为构建集群的主节点)

进入容器:docker exec -it rabbitmq2 /bin/bash

停掉容器:rabbitmqctl stop_app

重置容器:rabbitmqctl reset

加入rabbitmq1:rabbitmqctl join_cluster --ram(内存) rabbitmq1@rabbitmq1

启动:rabbitmqctl start_app

数据丢失问题:停掉rabbitmq容器,导致数据丢失

rabbitmq消息的持久化:1.消息持久化标记    2.交换机持久化    3.队列持久化(进程挂掉但是容器没有挂掉的时候,内存的数据重启后依旧存在!)

普通集群:发送数据到一个服务器,服务器挂掉后,其他集群内服务器也拿不到数据

镜像集群:副本机制,临时master服务器->集群内其他服务器

设置镜像队列

rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容