首页 > 其他分享 >【IT老齐045】RabbitMQ六种队列模式

【IT老齐045】RabbitMQ六种队列模式

时间:2024-03-18 14:47:30浏览次数:22  
标签:订阅 消费者 队列 模式 老齐 交换机 RabbitMQ 045 消息

【IT老齐045】RabbitMQ六种队列模式

前情提要

  • Producer:生产者,消息的提供者
  • Consumer:消费者,消息的使用者
  • Broker:MQ服务器,管理队列、消息及相关信息
  • Message:消息,程序间的通信的数据
  • Queue:队列,消息存放的容器,消息先进先出
  • Exchange:交换机,用于分发消息

工作模式

简单模式

1710681233279

工作队列

  • 本讲将创建一个工作队列(Work Queue),它会发送一些耗时的任务给多个工作者(Worker)。
  • 在多个消息的情况下,Work Queue会将消息分派给不同的消费者,每个消费者都会接收到不同的消息,并且可以根据处理消息的速度来接收消息的数量,进而让消费者程序发挥最大性能。
  • Work Queue特别适合在集群环境中做异步处理,能最大程序发挥每一台服务器的性能。

1710681255009

应用

1710681336314

发布订阅

  • 发布/订阅模式中,生产者不再直接与队列绑定,而是将数据发送至"交换机Exchange"
  • 交换机Exchange用于将数据按某种规则送入与之绑定的队列,进而供消费者使用。
  • 发布/订阅模式中,交换机将无差别的将所有消息送入与之绑定的队列,所有消费者拿到的消息完全相同。

1710681394182

应用

  • 发布订阅模式因为所有消费者获得相同的消息,所以特别适合“数据提供商与应用商“
  • 例如:中国气象局提供“天气预报”送入交换机,网易、新浪、百度搜狐等门户接入通过队列绑定到该交换机,自动获取气象局推送的气象数据。

路由模式

  • 路由(Routing)模式是在发布订阅模式基础上的变种。
  • 发布订阅模式是无条件将所有消息分发给所有消费者队列。
  • 路由模式则是Exchange根据Routing Key有条件的将数据筛选后发给消费者队列。

1710682590580

主题模式

1710682753317

RPC远程通信

1710682847307

标签:订阅,消费者,队列,模式,老齐,交换机,RabbitMQ,045,消息
From: https://www.cnblogs.com/faetbwac/p/18080342

相关文章

  • 【IT老齐047】避坑UUID主键
    【IT老齐047】避坑UUID主键场景财政部金财工程平台在代理行日终结算时,经常出现磁盘的IO异常,导致经常出现高延迟对比发现在大量数据新增时磁盘IO居高不下,多次测试后发现是UUID主键在搞鬼UUID基于时间的UUID能保证不同设备UUID是唯一的在同一设备上生成UUID可能重复DC......
  • 【IT老齐046】RabbitMQ队列解决消息积压问题
    【IT老齐046】RabbitMQ队列解决消息积压问题场景每天上午10点,全国2万多名客户经理集中录入上一日JK单据到BorrowSale系统,峰值能达到500单/s。但信审系统任务重,最多只支持到60单/s,每日会导致大量消息积压解决方案工作队列RabbitMQ改为工作队列模式,将消息送给9个信审系统实......
  • 【IT老齐048】Kafka高性能原因
    【IT老齐048】Kafka高性能磁盘顺序读写定期批量删除指定数据页缓存Kafka避免使用JVM,直接使用操作系统的页缓存特性提高处理速度,进而避免了JVMGC带来的性能损耗。Kafka采用字节紧密存储,避免产生对象,这样可以进一步提高空间利用率零拷贝批量操作......
  • window7系统 rabbitmq服务启动不了
    问题描述:解决方案:1.检查win7是否是sp1版本桌面计算机鼠标右键属性,打开系统属性窗口,如下图所示:2.如果不是,下载windows6.1-kb976932-x64补丁安装,安装完成后重启电脑3.电脑重启后,下载vcredist_x64或者vcredist_x86软件安装(根据系统32位还是64位,下载不同的安装包安装),安装完成......
  • 自学rabbitmq入门到精通
    交换机的fault(发布与订阅模式)因为消息是由生产者发送给excahnge,exchange发送给队列,然后由队列发送给消费者的。展示使用图形化界面使用fanout模式。创建交换机然后创建三个队列,绑定对应的交换机,发现给交换机发送消息给队列,3个队列同都收到了消息direct模式 相对......
  • RabbitMq 集成到 SpringBoot
    1.最低配置使用1.添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.2.RELEASE</version></dependency><dependency>&......
  • RabbitMQ入门
    RabbitMq入门目录RabbitMq入门1.MQ1.1同步调用1.2异步调用1.3MQ技术选型2.RabbitMQ2.1安装2.2收发消息(交换机、队列)2.3数据隔离2.3.1用户管理2.3.2VirtualHost3.SpringAMQP3.1创建项目3.2快速入门3.2.1消息发送3.2.2消息接收3.2.3总结3.3WorkQueues模型3.3.1消费者消息推送限制3......
  • Python实现http接口请求数据后,往RabbitMQ里面插入数据
    python实现http接口请求数据服务后,往RABBITmq里面插入数据importtimeimportrequestsimportpikaimportdatetimebase_url='https://www.okx.com'api_url='/api/v5/market/history-mark-price-candles'#时间颗粒度[1m/3m/5m/15m/30m/1H/2H/4H]time_unit=[......
  • yii2+rabbitmq实现队列(windows)
    1.安装Erlang官方网站,https://erlang.org/download/otp_versions_tree.html,选择和rabbitmq适配的2.安装RabbitMQ官方网站,windows:https://www.rabbitmq.com/docs/install-windows3.安装下载的Erlang和RabbitMQ 碰到的问题:1.开启rabbitmq服务时dos窗口一闪而逝,看了服务进程......
  • 开源.NET8.0小项目伪微服务框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)
    1、前言为什么说是伪微服务框架,常见微服务框架可能还包括服务容错、服务间的通信、服务追踪和监控、服务注册和发现等等,而我这里为了在使用中的更简单,将很多东西进行了简化或者省略了。年前到现在在开发一个新的小项目,刚好项目最初的很多功能是比较通用的,所以就想着将这些功能......