rabbitmq集群安装

以rabbitmq集群有两个node为例,关闭两台机器的防火墙

1.如果你此时还未安装rabbitmq

  那么可以在装第一个RM时只勾选rabbitmq,然后在安装时在弹出的cookie值填写为“aaaaa”(这个值可以随便填)

  然后在另外一个pc安装rabbitmq时的cookie值也填写为“aaaaa”,只要两台rabbitmq的cookie值一样,二者就可以进行通信

2.如果你此时已经安装了rabbitmq了,找到C:UsersAdministrator这个目录下的.erlang.cookie这个文件,

   用其中一台的.erlang.cookie文件去覆盖掉另外一台rabbitmq的.erlang.cookie文件(为了保证两个node的cookie一致)

   

下面进行cluster的操作,我的两台机器的ip分别是10.10.10.184,10.10.10.213,Cluster的操作在任意一台node上执行都可以,只要node之间是可以联通的

以10.10.10.184为例,在C:Program FilesNetBrainRabbitMQsbin下执行

 rabbitmqctl stop_app

 rabbitmqctl reset

 rabbitmqctl start_app

 rabbitmqctl cluster_status

接着执行如下操作:

 rabbitmqctl stop_app

 rabbitmqctl join_cluster rabbit@WIN2008R2P1                              ##其中WIN2008R2P1为需要加入的10.10.10.213的机器名称

 rabbitmqctl start_app

如果出现失败请检查cookie值是否一致,并且查看两台机器的防火墙是否关闭

添加成功后登陆http://10.10.10.184:15672/#/,也页面如下所示:

执行policy,还是在sbin目录下执行

rabbitmqctl set_policy ha-all ".*" "{""ha-mode"":""all"", ""queue-master-locator"":""min-masters"", ""ha-sync-mode"":""automatic""}"

这条policy的意思是要求所有机器都产生一个镜像,哪个镜像上node最少就设定哪个是主镜像;所有的queue都automatic sync

至此,你可以在执行task的过程中停掉其中一个node,你会发现task并没有丢失。rabbitmq采用ha-all的方式,consumer取消息队列时只从其中master节点取

原文地址:https://www.cnblogs.com/luo-mao/p/5872377.html