消息队列的功能特点

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

消息队列的功能特点

消息队列的核心

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

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

消息堆积

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

消息持久化

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

可靠投递

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

消息重复

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

严格有序

  • 消息队列中的消息既然是存储在队列中,则自然消息是严格有序的
目录
相关文章
|
10月前
|
消息中间件 网络协议 RocketMQ
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
70 0
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
|
10月前
|
存储 消息中间件 监控
消息队列和应用工具产品体系-ARMS 服务的产品功能
消息队列和应用工具产品体系-ARMS 服务的产品功能
224 0
|
15天前
|
消息中间件
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
15 0
|
10月前
|
消息中间件 弹性计算 网络安全
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
446 0
|
2月前
|
消息中间件 存储 弹性计算
消息队列RocketMQ版:基础消息收发功能体验
【2月更文挑战第1天】假期闲着无聊,随便体验一下。本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
|
10月前
|
消息中间件 弹性计算 网络安全
消息队列RocketMQ版:定时消息通知功能体验
本实验场景介绍消息队列RocketMQ版的定时(延时)消息收发功能,体验发送若干条自定义延迟触发的消息,观察消息是否按照预期的投递时间投递。
594 0
|
消息中间件 物联网 Java
物联网消息队列客户端-MQTT-基本功能实现
物联网消息队列客户端-MQTT-基本功能实现
286 0
|
消息中间件 存储 安全
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
1411 0
|
消息中间件 数据库
异步通知功能的消息队列
异步通知功能的消息队列
158 0
|
消息中间件 Java
消息队列的exclusive consumer功能是如何保证消息有序和防止脑裂的
一般来说,消息队列都会保证queue当中的消息的顺序。然而如果有多个consumer同时消费同一个queue,那么这时就不能保证的消息的顺序性。 有时候,消息的顺序是非常重要的,为了能顺序的消费消息,我们只能启动一个consumer来消费这个queue。
10482 0

热门文章

最新文章