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

本文共 1402 字,大约阅读时间需要 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/

你可能感兴趣的文章
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>