RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成
RabbitMQ的5大核心概念:Connection(连接)、Channel(信道)、Exchange(交换机)、Queue(队列)、Virtual host(虚拟主机)。
普通模式的集群
普通模式的集群是不会将创建的队列复制到其他节点,虽然我们在其它节点能够看到这个节点;这是由于其它节点只会保存一份这个队列的元数据,展示给我们看的,真实的队列还是存在创建这个队列的节点中的;如果这个时候我们把创建队列的的节点关闭,那么这个队列其实就不可用了; 为了解决这个问题,rabbitmq还提供了另外一种集群模式:镜像模式
镜像模式
镜像模式是rabbit提供的一种可添加的策略模式,如果创建的队列和创建的策略能够匹配上,则会把队列同步复制到其他节点中,而不再只是复制元数据;
这里使用docker来搭建rabbitmq集群的镜像模式,首先准备好docker环境,下载好镜像
创建网卡
docker network create rabbitmq_net
#安装三个rabbitmq组件,一主两从
docker run -d --name=rabbitmq_master -p 5672:5672 -p 15672:15672 -e RABBITMQ_NODENAME=rabbitmq_master -e RABBITMQ_ERLANG_COOKIE='1111111' -h rabbitmq_master --net=rabbitmq_net -v /data/rabbitmq-1/rabbitmq_master/data:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=CiA7rk7L_6gIKnaX rabbitmq:3.8.27-management
docker run -d --name=rabbitmq_slave1 -p 5673