介绍
rabbitmq 集群属于镜像集群,主从集群数据是一致的数CP
环境
ip | 主机名 | 描述 |
---|---|---|
192.168.116.130 | ikang-130 | master |
192.168.116.131 | ikang-131 | slave1 |
192.168.116.132 | ikang-132 | slave2 |
集群搭建
- 主机配置
#修改主机名
hostnamectl set-hostname ikang-130
# 添加到hosts 文件
vi /etc/hosts
192.168.116.130 ikang-130
192.168.116.131 ikang-131
192.168.116.132 ikang-132
三台主机都要配置
-
安装erlang、rabbitmq
安装上一篇写过,再次省略,请参考RabbitMQ简介与安装 -
集群配置
# 停止服务
rabbitmqctl stop
# 主节点cookie 文件同步到从节点(ikang-130为主节点)
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.131:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.132:/var/lib/rabbitmq/
# 启动集群,三台都要执行
rabbitmq-server start -detached
# 配置集群名称(可忽略)
rabbitmqctl set_cluster_name rabbitmq_cluster_test
# 从节点加入集群(从节点执行)
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@ikang-130
# 启动集群(从节点执行)
rabbitmqctl start_app
# 查看集群状态
rabbitmqctl cluster_status
集群配置成功
测试
- 集群节点移出
# 需要停止节点执行
rabbitmqctl stop_app
# 主节点移出要删除节点
rabbitmqctl forget_cluster_node rabbit@ikang-131
# 查看集群状态
rabbitmqctl cluster_status
节点被成功移出
配置镜像队列
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
Rabbitmq 集群搭建完成
总结
Rabbitmq 镜像队列,队列会被复制所有节点,每个节点状态保持一致,是一种CP
默认是磁盘存储,也可使设置位内存, 启动节点时添加-raw
参数以内存方式存储