在我们使用rabbitmq作为消息服务时,在服务负载不是很大的情况下,一般我们只需要一个rabbitmq节点便能为我们提供服务,可这难免会发生单点故障,要解决这个问题,我们便需要配置rabbitmq的集群和镜像,以下便是使用两台服务器进行rabbitmq集群和镜像的实施步骤。
1、环境准备
a、两台安装有rabbitmq实例的主机(假定主机ip分别为192.168.1.2、192.168.1.3);
b、配置两台主机的hosts(/etc/hosts)
主机192.168.1.2 的hosts文件添加配192.168.1.3 rabbitmq_cluster_3
主机192.168.1.3 的hosts文件添加配192.168.1.2 rabbitmq_cluster_2
c、复制erlang的cookie文件(rabbitmq/erlang使用cookie进行相互认证)
该文件一般为:/var/lib/rabbitmq/.erlang.cookie
任意选择一台主机上面的该文件复制到另一台主机即可
注意目的主机更改该文件的权限及属性如:
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie & chmod 400 /var/lib/rabbitmq/.erlang.cookie
2、高可用部署
因为我们使用两台机器进行rabbitmq的高可用配置,所以需要在两台集群配置后的主机上进行镜像的配置,以便在一台主机宕机后,还能继续提供服务,同时两个主机上的节点都使用磁盘节点,以便在两台主机都宕机的情况下消息不能丢失。
a、集群配置
# 停止应用 通过rabbitmqctl status 可以查看当前rabbitmactl默认操作的节点信息
rabbitmqctl stop_app
# 将当前节点加入到一个集群中 默认磁盘节点被加入的节点只要是集群中的一员,其他节点都能够马上感受到集群节点的变化
rabbitmqctl join_cluster rabbit@rabbitmq_cluster_3
<