一、simple模式

  • 即简单的点对点消息模型。开启mq服务,开启进程P 生产者向mq 写消息,进程C消费者监听mq,消费消息。
  • simple模式实现-生产者
  • simple模式实现-消费者

二、work模式(能者多劳模式)

  • 一个生产者P,对应了多个消费者C。这些多个C,消费的消息各自不同,C1和C2 消费的消息,构成所有消息的一个全集。可开启C的消费竞争 channel.basicQos(1);C1和C2 能者多劳。
  • work模式实现-生产者
  • work模式实现-消费者

三、订阅模式-fanout

  • 订阅模式中会用到交换机。根据交换机类型的不同,订阅模式的效果也会有所不同。
  • 所有发送到该交换器的消息全部发送到其对应的队列中
  • fanout模式实现-生产者
  • fanout模式实现-消费者

四、订阅模式-direct

  • 把消息路由到那些binding key和routing key一致的队列中
  • direct模式实现-生产者
  • direct模式实现-消费者

五、订阅模式-topic

  • 与direct类型的Exchage相似,也是将消息路由到binding key与routing key相匹配的Queue中,但这里的匹配规则有些不同,它约定:
  • routing key为一个句点号“. ”分隔的字符串(我们将被句点号“. ”分隔开的每一段独立的字符串称为一个单词),如“stock.usd.nyse”、“nyse.vmw”、“quick.orange.rabbit”
  • binding key与routing key一样也是句点号“. ”分隔的字符串
  • binding key中可以存在两种特殊字符“*”与“#”,用于做模糊匹配,其中“*”用于匹配一个单词,“#”用于匹配多个单词(可以是零个)
  • topic模式实现-生产者
  • topic模式实现-消费者

六、 订阅模式-headers

  • 不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。 在绑定Queue与Exchange时指定一组键值对;当消息发送到Exchange时,RabbitMQ会取到该消息的headers(也是一个键值对的形式),对比其中的键值对是否完全匹配Queue与Exchange绑定时指定的键值对;如果完全匹配则消息会路由到该Queue,否则不会路由到该Queue。

七、RPC

  • MQ本身是基于异步的消息处理,前面的示例中所有的生产者(P)将消息发送到RabbitMQ后不会知道消费者(C)处理成功或者失败(甚至连有没有消费者来处理这条消息都不知道)。 但实际的应用场景中,我们很可能需要一些同步处理,需要同步等待服务端将我的消息处理完成后再进行。

作者:毅大师
原文链接:https://blog.csdn.net/qq_39648029/article/details/108345323

active mq topic消费后删除_RabbitMQ的常见队列模型:simple、work、fanout、direct、topic等等...相关推荐

  1. active mq topic消费后删除_RabbitMQ重复消费,顺序消费,消息丢失如何解决

    MQ的优势 异步 解耦 削峰 不同MQ的优缺点 特性 RabbitMQ ActiveMQ RocketMQ Kafka 单机吞吐量 万级 万级 十万级 十万级 topic数量对吞吐量影响 topic达 ...

  2. active mq topic消费后删除_《我想进大厂》之MQ夺命连环11问

    继之前的mysql夺命连环之后,我发现我这个标题被好多套用的,什么夺命zookeeper,夺命多线程一大堆,这一次,开始面试题系列MQ专题,消息队列作为日常常见的使用中间件,面试也是必问的点之一,一起 ...

  3. active mq topic消费后删除_Spring cloud stream 整合mq

    说明:本案例win10环境 测试scs(spring cloud stream)整合kfk(kafka)/rbt(rabbitmq)消息生产消费场景 流程 一.准备中间件环境(kfk/rbt) 后续内 ...

  4. active mq topic消费后删除_【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍

    [MQ 系列]RabbitListener 消费基本使用姿势介绍 之前介绍了 rabbitmq 的消息发送姿势,既然有发送,当然就得有消费者,在 SpringBoot 环境下,消费可以说比较简单了,借 ...

  5. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)

    RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...

  6. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

    一.Direct Exchange 任何发送到Direct Exchange的消息都会被转发到RouteKey中指定的Queue. 1.一般情况可以使用rabbitMQ自带的Exchange:&quo ...

  7. RabbitMQ第二话 -- Springboot基于四种Exchange(Direct、Fanout、Topic、Heders、延时队列)的实现和多虚拟主机下的生产消费者实现

    本文主要分享RabbitMQ exchange类型的功能和使用.RabbitMQ延时队列.一个springboot服务发送消息到多虚拟主机 1.RabbitMQ exchange exchange交换 ...

  8. 使用Active MQ在.net和java系统之间通信

     ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 一.特性列表 ⒈ 多种 ...

  9. 南大通用数据库-Gbase-8a-学习-19-Gbase8a从Kafka订阅Topic消费数据

    一.测试环境 名称 值 cpu Intel® Core™ i5-1035G1 CPU @ 1.00GHz 操作系统 CentOS Linux release 7.9.2009 (Core) 内存 4G ...

最新文章

  1. 如何判断哪个商城系统好?
  2. 一文详解JavaBean 看这篇就够了
  3. 2018阿里云云数据库RDS核心能力演进
  4. 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
  5. java基础(二) 自增自减与贪心规则
  6. 使用C语言将一个数组首尾互换后输出,函数实现体会地址传递
  7. 播放视频比较好的框架
  8. CoreML的入门例子
  9. 第1届ICPC青少年程序设计竞赛(正式赛)A 题 - Divide
  10. Yii 2 修改 URL 模式为 PATH 模式,并隐藏index.php
  11. 升级xcode7.0 第三方库不能用的解决方法(bitcode是什么鬼?)
  12. ROS2安装及使用过程中遇到的问题
  13. 研发工具之谷歌浏览器无法加载flash的问题
  14. php获取微信授权,微信开发之网页授权获取用户信息(二)
  15. 数独c语言程序设计说明,c语言数独字谜游戏课程设计
  16. 35岁的程序员:第12章,林菲菲
  17. 随机展示一个汉字,可以用来让一二年级孩子识字
  18. 青龙面板薅羊毛教程之小米电动车
  19. 【VOLTE】VOLTE的注册和去注册过程
  20. DO-214AC封装尺寸图

热门文章

  1. java 展现层框架_spring快速入门例子教程:06展现层
  2. mysql 非最佳查询_Mysql 查询优化
  3. Java 蓝桥杯 矩阵乘法
  4. 在linux中 与 的区别,在linux中,和, |和|| , 与 的区别
  5. python获取命令行参数,使用getopt获取命令行执行时指定的参数
  6. python转str类型的列表为list格式
  7. mysql被更新失败_更新mysql出错:出错原因 You are using safe update mode
  8. 王者荣耀服务器维护5.3,王者荣耀3月2日体验服停机更新公告(5)
  9. pyqt5 qscrollarea到达_PyQt5如何用QPainter在QScrollArea上画线?
  10. Mac. 修改bash_file