确保成功安装好JDK,erlang,RabbitMQ等,并且RabbitMQ能正常启动,多台电脑之间能互相ping得通。
1. 安装 erlang、rabbitmq
如: 192.168.1.1、192.168.1.2、192.168.1.3 三个节点上安装,然后开启 RabbitMQ 监控插件:
rabbitmq-plugins enable rabbitmq_management 参考博客: |
2. 修改主机名
Vi /etc/hosts确保每台主机hosts文件内容一样修改内容如下:ip 主机名
如:10.111.56.134 master
10.111.56.79 slave5
3. 设置 Erlang Cookie
Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。这里将 node1 的该文件复制到 node2、node3,由于这个文件权限是 400,所以需要先修改 node2、node3 中的该文件权限为 777:
# chmod 777 /var/lib/rabbitmq/.erlang.cookie |
然后将 node1 中的该文件拷贝到 node2、node3,最后将权限和所属用户/组修改回来:
# chmod 400 /var/lib/rabbitmq/.erlang.cookie # chown rabbitmq /var/lib/rabbitmq/.erlang.cookie # chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie |
同时确保隐藏文件/root/.erlang.cookie的内容也一致,最好把主节点的考到其他节点主机上。
4. 使用 -detached 参数运行各节点
# rabbitmqctl stop # rabbitmq-server -detached |
5. 组成集群
将 node2、node3 与 node1 组成集群:
node2 # rabbitmqctl stop_app node2 # rabbitmqctl join_cluster [email protected] node2 # rabbitmqctl start_app node3 # rabbitmqctl stop_app node3 # rabbitmqctl join_cluster [email protected] node3 # rabbitmqctl start_app |
查看RabbitMQ进程:
集群节点就加进去了
此时 node2 与 node3 也会自动建立连接;如果要使用内存节点,则可以使用
node2 # rabbitmqctl
join_cluster --ram [email protected] 加入集群。
集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl
cluster_status 来查看是否集群配置成功。
6. 设置镜像队列策略
在任意一个节点上执行:
# rabbitmqctl set_policy ha-all "^" ‘{"ha-mode":"all"}‘ |
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
完成这 6 个步骤后,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。