前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ的三种集群模式

RabbitMQ的三种集群模式

作者头像
名字是乱打的
发布2022-05-13 10:02:09
1.1K0
发布2022-05-13 10:02:09
举报
文章被收录于专栏:软件工程

rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式

1)单机模式

就是demo级别的,一般就是你本地启动了玩玩的,没人生产用单机模式

2)普通集群模式

意思就是在多台机器上启动多个rabbitmq实例每个机器启动一个。 但是你创建的queue,只会放在一个rabbtimq实例上,但是每个实例都同步queue的元数据(存放含queue数据的真正实例位置)。消费的时候,实际上如果连接到了另外一个实例,那么那个实例会从queue所在实例上拉取数据过来。

这种方式确实很麻烦,也不怎么好,没做到所谓的分布式,就是个普通集群。 因为这导致你要么消费者每次随机连接一个实例然后拉取数据,要么固定连接那个queue所在实例消费数据,前者有数据拉取的开销,后者导致单实例性能瓶颈。

而且如果那个放queue的实例宕机了,会导致接下来其他实例就无法从那个实例拉取,如果你开启了消息持久化,让rabbitmq落地存储消息的话,消息不一定会丢,得等这个实例恢复了,然后才可以继续从这个queue拉取数据。

所以这个普通集群比较尴尬了,这就没有什么所谓的高可用性可言了,这方案主要是提高吞吐量的,就是说让集群中多个节点来服务某个queue的读写操作。

3)镜像集群模式

这种模式,才是所谓的rabbitmq的高可用模式,跟普通集群模式不一样的是,你创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次你写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。

镜像集群模式

镜像集群模式 好处在于,你任何一个机器宕机了,没事儿,别的机器都可以用。 坏处在于

  • 第一,这个性能开销也太大了吧,消息同步所有机器,导致网络带宽压力和消耗很重!
  • 第二,这么玩儿,就没有扩展性可言了,如果某个queue负载很重,你加机器,新增的机器也包含了这个queue的所有数据,并没有办法线性扩展你的queue

那么怎么开启这个镜像集群模式呢?我这里简单说一下,其实很简单rabbitmq有很好的管理控制台,我们可以在后台新增一个策略,这个策略是镜像集群模式的策略,可以指定要求数据同步到所有节点,也可以要求同步到指定数量的节点,然后你再次创建queue的时候,应用这个策略,就会自动将数据同步到其他的节点上去了。RabbitMQ镜像集群入门

关于RabbitMQ镜像对了,推荐一篇非常好的文章 RabbitMQ镜像队列实现原理

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)单机模式
  • 2)普通集群模式
  • 3)镜像集群模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档