RabbitMQ两种集群模式配置管理(4)

cookie在所有节点上必须完全一样,同步时一定要注意。
erlang是通过主机名来连接服务,必须保证各个主机名之间可以ping通。可以通过编辑/etc/hosts来手工添加主机名和IP对应关系。如果主机名ping不通,rabbitmq服务启动会失败。
如果queue是非持久化queue,则如果创建queue的那个节点失败,发送方和接收方可以创建同样的queue继续运作。但如果是持久化queue,则只能等创建queue的那个节点恢复后才能继续服务。
在集群元数据有变动的时候需要有disk node在线,但是在节点加入或退出的时候所有的disk node必须全部在线。如果没有正确退出disk node,集群会认为这个节点当掉了,在这个节点恢复之前不要加入其它节点。
RabbitMQ镜像集群配置
上述配置的RabbitMQ默认集群模式,但并不包管队列的高可用性,尽管互换机、绑定这些可以复制到集群里的任何一个节点,然则队列内容不会复制。固然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能守候重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,须要创建镜像队列。

镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。

我是通过上面开启的网页的管理端来设置的镜像队列,也可以通过命令,这里先说其中的网页设置方式:

1、点击admin菜单–>右侧的Policies选项–>左侧最下下边的Add/update a policy。

2、按照图中的内容根据自己的需求填写。

3、点击Add policy添加策略。

此时你就会来你的两台rabbitmq服务器的网页管理端amind菜单下看见刚才创建的队列了,下面我们来添加一个queues队列来看看效果,这里只是测试结果,其它的先不填写。

设置镜像队列策略

在任意一个节点上执行:

1 root@live-mq-01:~# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。

我们去live-mq-02上查看策略。

root@live-mq-02:~# rabbitmqctl list_policies
Listing policies...
/ha-allall^{"ha-mode":"all"}0
...done.

此时镜像集群就已经完成了,可以在任意节点上创建队列,看看其他两个节点是否会同步。

CentOS 7.2 下 RabbitMQ 集群搭建

CentOS7环境安装使用专业的消息队列产品RabbitMQ

RabbitMQ入门教程 

在CentOS7上安装RabbitMQ 详解 

NServiceBus 结合 RabbitMQ 使用教程 

CentOS 7下RabbitMQ集群安装配置 

RabbitMQ实战:高效部署分布式消息队列 中文PDF扫描版 

RabbitMQ 的详细介绍请点这里
RabbitMQ 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/749f353998a0294ed5b148bae3e50ae6.html