一.基于erlang语言:是一种支持高并发的语言

RabbitMQ的六种工作模式:
1.1 simple简单模式

  1. 消息产生着§将消息放入队列

  2. 消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)

1.2 work工作模式(资源的竞争)

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

  2. 应用场景:红包;大项目中的资源调度(任务分配系统不需知道哪一个任务执行系统在空闲,直接将任务扔到消息队列中,空闲的系统自动争抢)

1.3 publish/subscribe发布订阅(共享资源)

  1. X代表交换机rabbitMQ内部组件,erlang 消息产生者是代码完成,代码的执行效率不高,消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费

  2. 相关场景:邮件群发,群聊天,广播(广告)

1.4 routing路由模式

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

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

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

1.5 topic 主题模式(路由模式的一种)

  1. 星号井号代表通配符

  2. 星号代表多个单词,井号代表一个单词

  3. 路由功能添加模糊匹配

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

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

rabbitmq多个消费者监听一个队列_RabbitMQ的六种工作模式相关推荐

  1. rabbitmq几种工作模式_RabbitMQ的六种工作模式总结

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! 作者:侧身左睡 https://www.cnblogs.com/xyfer1018/p/11581511.ht ...

  2. java 监听队列_spring+activemq实战之配置监听多队列实现不同队列消息消费

    摘选:https://my.oschina.net/u/3613230/blog/1457227 摘要: 最近在项目开发中,需要用到activemq,用的时候,发现在同一个项目中point-to-po ...

  3. RabbitMQ简介及其六种工作模式

    本文参考自: https://blog.csdn.net/kavito/article/details/91403659 https://www.cnblogs.com/zpKang/p/135998 ...

  4. RabbitMQ的六种工作模式

    RabbitMQ的六种工作模式 1.work queues 工作队列 应用场景:对于任务过重或者任务较多情况使用工作队列可以提高任务处理速度 工作模式:一个生产者,多个消费者,生产者发送多个消息 处理 ...

  5. Kafka多个消费者监听消费同一个Topic主题

    多个消费者监听消费同一个Topic主题 一.需求介绍 二.@kafkaListener注解 三.代码实现 3.1 第一个消费者 3.2 第二个消费者 3.3 生产者 四.测试 一.需求介绍 有一个To ...

  6. python多进程关闭socket_用Python制作一个多进程UDP服务器,一个进程监听一个p

    我想用Python制作一个多进程UDP服务器,从一个类中为每个进程监听一个端口: processListener.py:import multiprocessing import socket cla ...

  7. java 多个监听_java中监听一个客户端怎么做?监听多个怎么做?

    随着时代的不断进步与发展,人们对于科学技术的使用也越来越普遍化.人们都开始自己学习编程语言以更好的适应时代的发展.今天就来为大家介绍一下,java中监听一个客户端怎么做?监听多个怎么做?一起来看看吧. ...

  8. 如何判断目标主机是否在监听一个UDP端口(阿里云二面)

    面试官:我问一个简单的问题,如何判断目标主机是否在监听一个UDP端口port? 我:给目标主机发送一个UDP报文(含目标port),如果收到回复,表示监听,否则表示没有监听. 面试官:有没有通用一点的 ...

  9. RabbitMQ六种工作模式:simple work publish routing topic rpc

    simple简单模式 消息产生着§将消息放入队列 消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者 ...

最新文章

  1. 001.Amoeba读写分离部署
  2. boost::python::enum_相关的测试程序
  3. java streamhandler_java中的Lamdba表达式和Stream
  4. 微信小程序隐藏菜单栏目下转发按钮的几个方法
  5. Linux系列-Red Hat5平台下的DHCP服务搭建
  6. Redis基础(二)——通用命令和配置
  7. 用python画糖葫芦_python学习记录六
  8. 梦记录:1204(梦到观世音菩萨像)
  9. 计算机图形学完整笔记(六):三维图形变换
  10. TIA Portal联合Process Simulate搞定SICAR虚拟调试实例步骤
  11. Linux系统下i350网卡固件更新说明
  12. 完善智慧办公建设,小熊U租获京东数千万元A+轮融资...
  13. html问号字符串,问号html
  14. php如何放照片,怎样在图片上加上自己的照片 在图片方框中嵌入另一张照片显示...
  15. tplink怎么进去_在TP-Link工作体验如何?
  16. 苹果6s最大屏幕尺寸_iPhone12来了,我决定给老苹果升级一下电池
  17. 计算机毕业设计ssm基于B_S的汽车售后服务管理系统e48c4系统+程序+源码+lw+远程部署
  18. 海外游戏广告应该怎么做
  19. 深度学习究竟是什么,举个例子解释一下
  20. it是什么?(详细解释)

热门文章

  1. Where is ABAP Netweaver HTTP 304 not modified set
  2. how to find all element type with type table of content
  3. SAP Spartacus的PWA支持
  4. SAP Marketing Cloud的技术架构
  5. 容器和容器镜像的区别,您真的了解吗
  6. 015. Object event handling debug - Parameter COM_IOITF_DEBUG
  7. ABAP git客户端的简单介绍
  8. Android 省份城市搜索,android - 非常不错的 城市省份的选择组件: citypicker
  9. 数据可视化|实验一 绘图基础语法和常用参数
  10. on duplicate key update不生效_为什么不把蚊子吸血原理应用于医院化验抽血?