消息队列的功能特点

简介: 消息队列的功能特点.

消息队列的功能特点

消息队列的核心

  • 消息:指传递的数据
  • 队列:指存储消息的数据结构,管理着消息的进入和退出
  • 一个基础的消息队列是这样的:
  • Broker(消息处理中心):负责消息的接受、存储、转发
  • Producer(生产者):消息生产者,产生消息,推送给Broker
  • Consumer(消费者):从Broker获取消息,并进行一定的处理

说完消息队列的基础模型,接下来就得说说消息队列所存在的问题,以及解决方案

消息堆积

  • 消息堆积是指Consumer消费消息的速度赶不上Producer生产消息的速度,进一步导致系统的Broker的资源积压无法释放。
  • 解决方案一般分为当Broker积压到达阈值时,直接拒绝;不在进入处理中心,防止系统资源耗尽,导致消息队列不可用。
  • 当然,如果消息队列对消息的可靠性有要求不能直接拒绝,可以采用备用的消息队列提升处理的性能。

消息持久化

  • 消息持久化是指对消息进行物理存储,防止在服务宕机的情况下,消息丢失的情况,常用的策略有磁盘,数据库,分布式文件系统

可靠投递

  • 可靠投递是指,不允许发生消息丢失的情况
  • 消息丢失可能发生在如下时间:
  • Producer->Broker(超时重发,ACK确认,如TCP)
  • Broker->Consumer(Consumer执行完message后,手动commit;参考数据库事务)
  • Broker对消息的持久化(提高刷盘的频率)

消息重复

  • 为了解决消息的可靠投递,会使用重发机制;有可能导致消息重复消费(消息在持久化时,对消息进行唯一值判断;或者进行SET集合修正数据)

严格有序

  • 消息队列中的消息既然是存储在队列中,则自然消息是严格有序的
目录
相关文章
|
消息中间件 网络协议 RocketMQ
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
|
存储 消息中间件 监控
消息队列和应用工具产品体系-ARMS 服务的产品功能
消息队列和应用工具产品体系-ARMS 服务的产品功能
|
4月前
|
消息中间件 API 开发工具
消息队列 MQ使用问题之如何开启RabbitMQ的MQTT功能
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5月前
|
消息中间件
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
42 0
|
消息中间件 弹性计算 网络安全
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
|
6月前
|
消息中间件 存储 弹性计算
消息队列RocketMQ版:基础消息收发功能体验
【2月更文挑战第1天】假期闲着无聊,随便体验一下。本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
|
消息中间件 弹性计算 网络安全
消息队列RocketMQ版:定时消息通知功能体验
本实验场景介绍消息队列RocketMQ版的定时(延时)消息收发功能,体验发送若干条自定义延迟触发的消息,观察消息是否按照预期的投递时间投递。
|
消息中间件 物联网 Java
物联网消息队列客户端-MQTT-基本功能实现
物联网消息队列客户端-MQTT-基本功能实现
329 0
|
消息中间件 存储 安全
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
1938 0
|
消息中间件 数据库
异步通知功能的消息队列
异步通知功能的消息队列
173 0