普通模式

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

下面表示在集群配置下的不同节点创建队列的情况

下图表示在集群配置下的不同节点创建交换器和队列的绑定的情况

镜像模式

将需要消费的队列变为镜像队列,存在于多个节点,这样就可以实现RabbitMQ的HA高可用性。作用就是消息实体会主动在镜像节点之间实现同步,而不是像普通模式那样,在consumer消费数据时临时读取。缺点就是,集群内部的同步通讯会占用大量的网络带宽。

最新文章

  1. Window.document对象 轮播练习
  2. openSSL命令、PKI、CA、SSL证书原理
  3. python--字符工厂函数dict()
  4. nyoj 904 hashmap
  5. javascript中call和apply方法
  6. 查看Mysql执行计划
  7. android学习笔记----JNI中的c控制java
  8. 在基于阿里云serverCentOS6.5下安装Subversion 1.6.5服务
  9. python编程快速上手之第3章实践项目参考答案
  10. python处理点云数据并生成三维点云模型
  11. String的trim()用于去掉字符串前后的空格
  12. LeetCode算法题-Nth Digit(Java实现)
  13. 微信如何获取unionid 并且打通微信公众号和小程序
  14. GsonFormat根据返回值json快速构建Model
  15. 《linux性能及调优指南》 3.4 硬盘瓶颈
  16. SpringMVC自定义视图Excel视图和PDF视图
  17. 【译】第三篇 Integration Services:增量加载-Adding Rows
  18. HDUOJ---1133(卡特兰数扩展)Buy the Ticket
  19. java中Map,List与Set的差别
  20. MyBatis 一级缓存避坑

热门文章

  1. Java 8新特性(Lambda,Stream API)
  2. Spring Boot:定时任务与图片压缩处理
  3. 菜鸟初学Linux——Ubuntu系统中,用root权限进行复制粘贴操作
  4. 04-监控-手册(Runbook)
  5. 从微信小程序到鸿蒙js开发【04】——list组件
  6. unix环境高级编程第四章笔记
  7. HDU5740 Glorious Brilliance【最短路 KM匹配】
  8. HDU6370 Werewolf 【基环内向树】
  9. P3384 [模板] 树链剖分
  10. poj3083 Children of the Candy Cor