RabbitMq消息模型-队列消息

队列消息分为2种:

  • 基本模型(SimpleQueue)、工作模型(WorkQueue)

队列消息特点:

  1. 消息不会丢失 并且 有先进先出的顺序。
  2. 消息接收是有顺序的,不是随机的,仅有一个消费者能拿到数据,而且不同消费者拿不到同一份数据。

基本模型: SimpleQueue

在上图的模型中,有以下几个概念:

  • P:为生产者,也就是要发送消息的程序
  • C:为消费者:消息的接受者,会一直等待消息到来。
  • queue:为消息队列,为上图中间红色部分。类似为一个邮箱,可以缓存消息,生产者向其中投递消息,消费者从其中取出消息。

适用场景:基本模型适用于 消息存取 数量不多,频率不高。

工作模型: WorkQueue

WorkQueue简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息

弊端:

当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。那么这时就可以用WorkQueue模型,多个消费者共同处理消息,处理消息的速度就能大大提高了。

工作模型它默认分配模式是 平均分配给每个消费者,并没有考虑到消费者的处理能力。这样显然是有问题的。有的消费者性能高,有的消费者性能低。如果两个消费者都消费同样的消息,那么就会造成一个消费的快些一个消费的慢些,因为性能高的消费者它的消费能力要强些,性能低的消费者消费能力要弱些。

当然默认的平均分配模式也可以在消费者的配置文件中更改为能者多劳模式,能力强的多干点,能力弱的少干点。

适用场景:工作模型适用于 消息存取 数量多,频率高。

相关推荐
2501_933329552 分钟前
企业舆情处置技术实践:基于AI的智能监测与申诉系统架构解析
人工智能·分布式·架构·系统架构
爱丽_4 小时前
Redis 分布式锁:SET NX、过期时间、续租、可重入、Redlock 与坑
数据库·redis·分布式
ok_hahaha7 小时前
java从头开始-黑马点评-分布式锁-redis实现基础版
java·redis·分布式
传感器与混合集成电路7 小时前
法珀干涉与光栅补偿:井下压力温度一体化光纤监测技术
分布式
@insist1238 小时前
数据库系统工程师-分布式数据库与数据仓库核心考点及应用体系
数据库·数据仓库·分布式·软考·数据库系统工程师·软件水平考试
XDHCOM9 小时前
TP5框架Redis分布式缓存实战,解决高并发场景下的数据一致性问题
redis·分布式·缓存
Fzuim9 小时前
从CLI到分布式智能体:重新理解AI Agent的演进路径与工程现实
人工智能·分布式·ai·agent·agentic
_院长大人_12 小时前
Spring Boot 3.3 + Atomikos 分布式事务日志路径配置踩坑记录
spring boot·分布式·后端
Data 实验室12 小时前
TaskPyro “小龙虾版本”专业爬虫管理平台来了:AI+分布式+IM 机器人,一套搞定企业级爬虫调度
人工智能·分布式·爬虫
想你依然心痛12 小时前
HarmonyOS 5.0教育行业解决方案:基于分布式能力的沉浸式智慧课堂系统
分布式·wpf·harmonyos