动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

RabbitMQ的三种部署模式

07-16 11:36 1225浏览
举报 T字号
  • 大字
  • 中字
  • 小字

单机模式

即单机情况不做集群,就单独运行一个RabbitMQ而已。

RabbitMQ的三种部署模式

普通集群模式

默认模式,以两个节点(node-1、node-2)为例来进行说明。对于Queue来说,消息实体只存在于其中一个节点 node-1(或者 node-2),node-1 和 node-2 两个节点仅有相同的元数据,即队列的结构。当消息进入node-1 节点的Queue后,consumer 从 node-2 节点消费时,RabbitMQ会临时在 node-1、node-2 间进行消息传输,把A中的消息实体取出并经过B发送给 consumer。所以 consumer 应尽量连接每一个节点,从中取消息。即对于同一个逻辑队列,要在多个节点建立物理 Queue。否则无论consumer连node-1或node-2,出口总在node-1,会产生瓶颈。当node-1 节点故障后,node-2节点无法取到 node-1 节点中还未消费的消息实体。如果做了消息持久化,那么得等node-1节点恢复,然后才可被消费;如果没有持久化的话,就会产生消息丢失的现象。

镜像集群模式

一般配合HAProxy配置为高可用集群,把需要的队列做成镜像队列,存在与多个节点属于RabbitMQ的HA方案。该模式解决了普通模式中的问题,其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在客户端取数据时临时拉取。该模式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉。所以在对可靠性要求较高的场合中适用。

完成镜像队列设置之后,每各队列会被复制到各个节点,各个节点状态保持一致。因为RabbitMQ本身不提供负载均衡,需要搭建负载均衡器来提供负载转发,可以选择HAProxy和Nginx。

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看RabbitMQ视频教程学习哦!

0人推荐
共同学习,写下你的评论
0条评论
杨晶珍
程序员杨晶珍

98篇文章贡献357785字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消