普通集群模式:数据只存在于A节点, BC节点仅有相同的元数据即队列结构,当用户向C节点提出消费请求时,Rabbitmq会临时在AC之间进行消息传输,把A节点中的消息实体取出经过c发送给消费者consumer

consumer可以连接任何一个节点获取消息,缺点是,当A节点故障时,其他节点就无法取到还未消费的实体消息     (有用户消费请求的时候才会向没有数据的节点传输数据)


镜像集群模式:             (有数据写入的时候就会向其他节点传输数据)


3台及以上机器的集群,  集群中可用服务器数量必须大于一半,等于一半不可以,双数节点宕机一台可能会脑裂,所以推荐奇数节点数


内存节点:数据只保存在内存

磁盘节点:数据保存在磁盘和内存

内存节点无访问速度更快,磁盘IO相对较慢可作为数据备份使用。所以集群中有1台磁盘节点足够。安全起见,集群中节点不可以全部都用内存节点,否则停服否数据将全部丢失


各节点配置/etc/hosts 中ip和主机名信息,配好后互ping测试

/var/lib/rabbitmq/.erlang.cookie  集群中这个文件内容必须一致

systemctl enable rabbitmq-server

systemctl start rabbitmq-server


rabbitmqctl  cluster_status   集群节点状态

rabbitmqctl  stop_app 停止app服务   start_app启动app服务

rabbitmqctl  reset 置空,清空元数据

rabbitmqctl join_cluster rabbit@mq-server3 --ram   将主机加入到当前机器所在的集群中,并成为内存节点。不加--ram默认是磁盘节点


rabbitmqctl add_user xiaoming 123456

rabbitmqctl set_user_tags xiaoming administrator

在一个节点上创建的用户,在别的节点上也可以登录,集群建立成功数据就是同步的


curl -s -u guest:guest http://localhost:15672/api/whoami

curl -s -u guest:guest http://localhost:15672/api/users