RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

simple模式

消息产生消息,将消息放入队列

消息的消费者(consumer) 监听 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失,这里可以设置成手动的ack,但如果设置成手动ack,处理完后要及时发送ack消息给队列,否则会造成内存溢出)。

work工作模式

消息产生者将消息放入队列消费者可以有多个,消费者1,消费者2同时监听同一个队列,消息被消费。C1 C2共同争抢当前的消息队列内容,谁先拿到谁负责消费消息(隐患:高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize) 保证一条消息只能被一个消费者使用)。

publish/subscribe发布订阅

每个消费者监听自己的队列;

生产者将消息发给broker,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接收到消息。

routing路由模式

消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;

根据业务功能定义路由字符串

从系统的代码逻辑中获取对应的功能字符串,将消息任务扔到对应的队列中。业务场景:error 通知;EXCEPTION;错误通知的功能;传统意义的错误通知;客户通知;利用key路由,可以将程序中的错误封装成消息传入到消息队列中,开发者可以自定义消费者,实时接收错误;

topic 主题模式

  • , # 代表通配符

  • 代表多个单词, # 代表一个单词

消息产生者产生消息,把消息交给交换机

交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费

RabbitMQ有5种工作模式相关推荐

  1. 04. RabbitMQ的几种工作模式

    04. RabbitMQ的几种工作模式

  2. RabbitMQ的6种工作模式的学习记录,普通MAVEN和springboot项目整合rabbitmq的API详解

    1.RabbitMQ后台管理页面 2.RabbitMQ 核心(自我理解) 3.RabbitMQ6种工作模式介绍 4. RabbitMQ的消息可靠性 5.RabbitMQ普通MAVEN项目使用 6.Sp ...

  3. 【146期】面试官问:说一说 RabbitMQ 的几种工作模式和优化建议?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方留言必回,有问必答! 每天 08:00 更新文章,每天进步一点点... 1.组 ...

  4. RabbitMQ的七种工作模式-RPC模式(六)

    6.RPC RPC工作原理: 1.客户端发起RPC请求时,request请求中会发送两个参数replyTo和correlationId replyTo:同步互斥队列,也就是该请求对应的队列 corre ...

  5. RabbitMQ介绍以及五种工作模式

    早期出现认证系统类似的提供认证服务; 出现了系统间的通信;并发的高需求 每个前端系统与认证系统的通信强耦合 传递消息,获取返回结果的过程,如果出现网络波动,整个传递数据,计算返回结果的流程重走一遍;需 ...

  6. RabbitMq-RabbitMq简介与七种工作模式

    RabbitMq简介 RabbitMQ 采用 Erlang 语言开发.Erlang 语言由 Ericson 设计,专门为开发高并发和分布式系统的一种语言,在电信领域使用广泛. RabbitMQ 基础架 ...

  7. RabbitMQ五种工作模式

    RabbitMQ五种工作模式 1.简单队列 一个生产者对应一个消费者!! 2.work 模式 一个生产者对应多个消费者,但是一条消息只能有一个消费者获得消息!!! 轮询分发就是将消息队列中的消息,依次 ...

  8. Rabbitmq超级详细的笔记,包括安装,基本命令,rabbitmq的七种消息模式,以及死信队列,延迟队列,优先级队列和惰性队列的介绍

    RabbitMQ 文章目录 RabbitMQ 1 RabbitMQ介绍 1.1 基本介绍 1.2 RabbitMQ的安装 1.2.1 ubuntu20.04 安装rabbitmq 1.2.2 cent ...

  9. AndroidManifest.xml文件详解(activity)(三)四种工作模式

    android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...

最新文章

  1. WS Security 认证方式详解
  2. QT5利用chromium内核与HTML页面交互
  3. 设计模式复习-职责链模式
  4. 神策数据斩获大数据星河奖,首发用户行为分析标准
  5. mvc 404错误 php,ASP.NET MVC实现404跳转的代码实例
  6. 对lIKE语句的优化
  7. 零基础30分钟开启你的快速开发之旅
  8. 阿里云佘俊泉:创新探索不停,边缘云持续为客户创造价值
  9. verilog异步复位jk触发器_以不变应万变的异步FIFO面试宝典(二)
  10. Hadoop 集群的基准测试
  11. 192.168.8.1手机登陆_192.168.8.1手机登陆设置教程
  12. 旁路电容和去偶电容Bypass and Decouple
  13. JS框架_(JQuery.js)夜晚天空满天星星闪烁动画
  14. PowerDesigner 15及破解补丁_PowerDesigner 12.5及破解补丁_PowerDesigner破解版_PowerDesigner下载
  15. 为什么黑洞远程控制的屏幕传输比Radmin快
  16. 用Python去优惠券,看到结果我惊呆了!
  17. 百格活动独家推出执行者晋升管理层的必备指南——《活动执行手册-思维篇》
  18. 单点登录--微服务的登录解决方案
  19. 搭建直播平台,你需要先知道这些
  20. 中文写程序,何陋之有?

热门文章

  1. spring之二——使用maven创建一个java project
  2. 阻塞队列之七:DelayQueue延时队列
  3. (转)svn检出的时候报 Unable to connect to a repository at URL错误
  4. 《Java程序员全攻略:从小工到专家》连载八:加入什么样的公司
  5. Cisco路由器密码恢复
  6. C++学习笔记(二)——交换函数(swap)
  7. BZOJ1001 狼抓兔子 终于过了!
  8. 游戏开发Camera之Cinematic Camera-深度
  9. AsyncHttpClient的连接池使用逻辑
  10. 柳传志与马云绸缪宏观经济“冬天影子”