RocketMQ 刷盘机制|学习笔记

简介: 快速学习 RocketMQ 刷盘机制

开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段)RocketMQ 刷盘机制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/704/detail/12450


RocketMQ 刷盘机制

 

内容介绍:

一、刷盘机制

二、消息刷盘的配置

 

一、刷盘机制

image.pngRocketMQ 将消息存储到磁盘上面,断电后 rocketMQ 不至于消息丢失。同时消息可以超过内存的限制,内存拿小米来讲一般较小,QMQ 将消息存储到磁盘上面,具体要怎么存储?一般来说有两种刷盘机制同步跟异步,那么同步和异步具体是什么意思?对于同步来讲,消息发送到 MQ 之后, MQ 会将消息写到内存中,再去通知刷盘的线程,将 memory 中的消息刷到磁盘当中。这时的 MQ 并没有对磁盘做出响应,因为刷盘没有完成,它会唤醒之前堵塞的线程,让它对生产者做一个响应,这种方式就叫做同步刷盘。进过分析发现同步刷盘,生产者得到 MQ 响应是在写完磁盘之后。异步刷盘就是生产者发送消息到 MQ , MQ 将消息写到内存当中,没有完成刷盘直接对客户做出响应,此时它会开辟另外一个线程对磁盘当中写,该过程为异步刷盘。若想要使用这两种刷盘方式该如何做?

image.png

 

二、消息刷盘的配置

两种刷盘的机制都是通过配置完成的,具体操作即打开 broker 配置文件,寻找 flushdisktype ,这里面有两个选项,一个是 sync 同步刷盘,一个是 async 异步刷盘,这就是两种刷盘机制。将机制说完之后,来比较一下二者的特点?同步刷盘保证消息的同步性即生产者得到响应之后,消息一定会存入到磁盘当中。异步刷盘不一定,它给予响应和刷盘是同时进行的,能够提高消息的吞吐量。也就是说异步刷盘的效率要高于同步刷盘,不需要存储到磁盘再发送到 broker ,直接存入内存就可继续发送给 MQ 。在真实企业当中,到底该选择哪个?从安全性和性能方面进行取舍。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 存储 监控
|
消息中间件 存储 负载均衡
一文读懂RocketMQ的高可用机制——消息发送高可用
一文读懂RocketMQ的高可用机制——消息发送高可用
634 1
|
消息中间件 负载均衡 Java
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息消费长轮训机制体系的原理分析
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息消费长轮训机制体系的原理分析
224 0
|
10月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
223 3
|
消息中间件 存储 安全
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息顺序消费和并发消费机制体系的原理分析
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息顺序消费和并发消费机制体系的原理分析
413 0
|
消息中间件 JavaScript RocketMQ
消息队列 MQ使用问题之过期删除机制的触发条件是什么
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
消息队列 MQ使用问题之过期删除机制的触发条件是什么
|
消息中间件 Java Maven
消息中间件系列教程(12) -RabbitMQ-消息确认机制
消息中间件系列教程(12) -RabbitMQ-消息确认机制
135 0
|
消息中间件 RocketMQ
RocketMQ - 消费者进度保存机制
RocketMQ - 消费者进度保存机制
199 0
|
消息中间件 RocketMQ
RocketMQ - 消费者Rebalance机制
RocketMQ - 消费者Rebalance机制
237 0