rabbitmq 主备模式部署_RabbitMQ高可用-镜像模式部署使用

本文详细介绍了RabbitMQ的镜像模式部署,包括集群的普通模式与镜像模式的区别,镜像模式的配置步骤,以及如何通过命令行和管理界面设置镜像策略。此外,还探讨了镜像队列的注意事项和故障恢复场景,为实现RabbitMQ的高可用提供了全面指导。
摘要由CSDN通过智能技术生成

RabbitMQ高可用-镜像模式部署使用

一、概述

RabbitMQ的Cluster集群模式一般分为两种,普通模式和镜像模式。消息队列通过rabbitmq HA镜像队列进行消息队列实体复制。

RabbitMQ集群普通模式考虑到性能和存储空间,仅采用元数据同步的方式。即其他节点不会实际存储消息数据。

生产者和消费者连接在哪个节点上,则消息就存储在哪个节点上,其他节点仅会存储元数据,如果消费者获取的数据不在当前节点上,则内部会路由到实际存储消息的节点上。

我们在实际集群部署时,考虑到高可用性,一般都会使用镜像模式。

在RabbitMQ集群中的节点只有两种类型:内存节点/磁盘节点,单节点系统只运行磁盘类型的节点。而在集群中,可以选择配置部分节点为内存节点。内存节点,就是将元数据(metadata)都放在内存里,磁盘节点就是放在磁盘上。如果RabbitMQ是单节点运行,默认就是磁盘节点。在RabbitMQ集群里,至少有一个磁盘节点,它用来持久保存元数据。新的节点加入集群后,会从磁盘节点上拷贝数据。但是,集群里也不必要每个节点都是磁盘节点,这主要是性能问题。例如,压力大的RPC服务,每秒都要创建和销毁数百个队列,如果集群里都是磁盘节点,意味着队列定义在每个节点上,都要写入磁盘才算成功,这样就会非常慢。

如果集群里只有一个磁盘节点,这个节点挂了,会发生什么?此时消息路由机制仍可正常进行(可以正常投递和消费消息),但是不能做如下事:create queues,create exchanges,create bindings,add users,change permissions,add or remove cluster nodes

所以,考虑到高可用性,推荐在集群里保持2个磁盘节点,这样一个挂了,另一个还可正常工作。但上述最后一点,往集群里增加或删除节点,要求2个磁盘节点同时在线。

如果2个节点,则建议都设为磁盘节点,如果3个节点,则可2个磁盘节点+1个内存节点。

RabbitMQ安装可参考上一篇博文:https://www.cnblogs.com/huligong1234/p/13548573.html

部署方案:

CentOS7.8 x64

mq01:192.168.100

mq02:192.168.101

二、配置普通集群模式

把mq01的cookie值复制到mq02服务器

配置cookie

vi /var/lib/rabbitmq/.erlang.cookie

确保rabbitMQ服务处于停止状态:service rabbitmq-server stop

确保2个节点的coolie文件使用相同的值

cookie文件默认路径为/var/lib/rabbitmq/.erlang.cookie(RPM安装)

或者$home/.erlang.cookie(解压方式安装)

.erlang.cookie设置可写

chmod u+w /var/lib/rabbitmq/.erlang.cookie

加入集群(默认加入的为磁盘节点)

rabbitmqctl join_cluster rabbit@mq02

如果要使用内存节点,则可以使用

rabbitmqctl join_cluster --ram rabbit@mq0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值