博客
关于我
MQ RabbitMQ 集群部署入门
阅读量:278 次
发布时间:2019-03-01

本文共 1398 字,大约阅读时间需要 4 分钟。

RabbitMQ 集群架构入门

1. 简介

RabbitMQ 作为一个高可用性的消息队列系统,提供了多种集群模式以满足不同的业务需求。这些模式包括主备模式、远程模式、镜像模式和多活模式。每种模式都有其适用的场景和特点,理解这些模式有助于为业务选择合适的集群方案。

2. 主备模式

2.1 介绍

主备模式(也称为 Warren 模式)是一种简单且高效的集群架构,适用于并发需求和数据量不高的场景。该模式通过主/备节点的切换实现高可用性,具体实现方式类似于ActiveMQ通过Zookeeper进行主备管理。

2.2 配置

在主备模式中,Haproxy 通常用作负载均衡和健康检查工具。以下是典型的Haproxy配置示例:

listen rabbitmq_clusterbind 0.0.0.0:5672    mode tcp    balance roundrobin    server bhz76 192.168.11.76:5672 check inter 5000 rise 2 fall 2    server bhz76 192.168.11.77:5672 backup check inter 5000 rise 2 fall 2

上述配置中,inter 5000 表示每隔5秒进行一次健康检查,rise 2 fall 2 表示主节点需要连续2次成功检查才能确定其可用,备用节点则需2次失败检查才认为其不可用。

3. 远程模式

3.1 介绍

远程模式(Shovel 模式)是一种实现跨地域消息复制的架构,适用于需要双活的场景。通过Shovel插件,消息可以从一个数据中心复制到另一个数据中心,实现负载分担和数据冗余。

3.2 配置

启用Shovel插件并配置RabbitMQ路由键,确保消息在达到Exchange时根据负载情况分配到不同的队列。以下是常见的配置步骤:

rabbitmq-plugins enable amqp_client rabbitmq_shovel

/etc/rabbitmq/目录下创建rabbitmq.config文件,并配置Shovel路由键,确保源服务器和目标服务器使用相同的配置文件。

4. 镜像模式

4.1 介绍

镜像模式(Mirror 模式)是实现100%数据可靠性的经典集群方案。通过多个节点的数据同步,确保消息不丢失,通常采用3个节点的镜像集群。

4.2 配置

镜像模式的配置通常包括设置镜像队列和配置RabbitMQ节点的网络绑定和虚拟主机。镜像模式适合互联网大厂,具备高可靠性和简单的集群架构。

5. 多活模式

5.1 介绍

多活模式(Federation 模式)是实现异地数据复制的主流方案,依赖RabbitMQ的Federation插件。这种模式通过跨数据中心的集群,实现消息的高效传输和可靠性。

5.2 配置

Federation插件允许RabbitMQ节点之间进行消息同步,无需构建集群。配置时需确保源节点和目标节点使用相同的用户和虚拟主机,确保消息传输的安全性和可靠性。

6. 结语

RabbitMQ 提供了多种集群模式,选择合适的模式需根据业务需求和场景进行权衡。主备模式适合简单场景,远程模式适合异地复制,镜像模式适合高可靠性需求,而多活模式则为异地集群提供了灵活的解决方案。理解这些模式有助于构建高效、可靠的消息系统。

转载地址:http://xnhx.baihongyu.com/

你可能感兴趣的文章
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
nodejs与javascript中的aes加密
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
nodejs中express的使用
查看>>
Nodejs中的fs模块的使用
查看>>
NodeJS使用淘宝npm镜像站的各种姿势
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>
NodeJs单元测试之 API性能测试
查看>>
nodejs图片转换字节保存
查看>>
nodejs在Liunx上的部署生产方式-PM2
查看>>
nodejs字符与字节之间的转换
查看>>
NodeJs学习笔记001--npm换源
查看>>
NodeJs学习笔记002--npm常用命令详解
查看>>
nodejs学习笔记一——nodejs安装
查看>>
NodeJS实现跨域的方法( 4种 )
查看>>
nodejs封装http请求
查看>>
nodejs常用组件
查看>>
nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
查看>>
Nodejs异步回调的处理方法总结
查看>>