【RabbitMQ】14 集群搭建 镜像队列

多服务器单实例 —— 参考博客:

https://www.cnblogs.com/lixioayi/articles/9993658.html

首先要找到cookie文件,所有实例要保持cookie一致(启动运行过的RabbitMQ会生成):

[root@localhost ~]# find / -name .erlang.cookie
/var/lib/rabbitmq/.erlang.cookie
[root@localhost ~]#

里面查看就是一堆字母:

[root@localhost ~]# cat /var/lib/rabbitmq/.erlang.cookie
RMSWWJGQNKZKNEILPSHS[root@localhost ~]# 

然后选定主从关系,统一使用主实例的Cookie

cookie是一个只读文件,那就用SCP直接传输覆盖吧(从机记得先关闭服务)

[root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.2.110:/var/lib/rabbitmq/
The authenticity of host '192.168.2.110 (192.168.2.110)' can't be established.
ECDSA key fingerprint is SHA256:hkKgDGf17aUrVAPXT5ZPL0/TjONX7nTeB5vrsSzXihE.
ECDSA key fingerprint is MD5:91:9e:04:92:71:6f:00:d9:d1:9b:3b:6e:74:88:a7:d4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.110' (ECDSA) to the list of known hosts.
root@192.168.2.110's password: 
.erlang.cookie                                                                                                                                                                 100%   20    58.1KB/s   00:00    
[root@localhost ~]# 

再检查从机是不是被覆盖了

cat /var/lib/rabbitmq/.erlang.cookie

两边Cookie一致,OK

再把从机打开:

service rabbitmq-server start

草,这里RabbitMQ有点坑啊

主机和从机都设置了一样的用户,然后结果就是主机和从机都用不了了

新建账户之后发现,原来的那个账户已经被删除了,靠,要重新做个帐号来使用

然后发条消息给从机队列,再关掉从机,队列直接挂掉

 要保证从机挂掉不丢失消息,就要配置镜像队列策略

策略添加

^ 表示同步所有节点的信息

下面选择同步的是交换机和队列,交换机,队列

最后定义模式

 

然后再次在从机B队列中发送消息,关闭从机

会发现,这个队列自动划分到主机上,消息会被保留

 

 但是重新开启后,该队列只能永远分配到主机上了,从机不再拥有这个队列

 

原文地址:https://www.cnblogs.com/mindzone/p/15389325.html