请问RocketMQ消息写入到内存就转发到消费队列还是要刷盘到磁盘才转发到消费队列呢?

请问RocketMQ消息写入到内存就转发到消费队列还是要刷盘到磁盘才转发到消费队列呢?

展开
收起
fuxixi 2022-12-04 15:02:01 272 分享 版权
1 条回答
写回答
取消 提交回答
  • RocketMQ将消息写入到内存缓冲区之后,会将消息立即转发到消费队列。它并不会将消息先刷盘到磁盘再转发到消费队列。

    RocketMQ有一个消息的提交流程:当生产者向Broker发送消息时,Broker会将消息先写入到内存缓冲区中。然后,Broker会立即将消息转发到消费队列,同时将消息的元数据(例如消息的偏移量、主题、队列等)写入到commit log日志文件中。在这个过程中,消息是不会先刷盘到磁盘再转发到消费队列的。

    但是,RocketMQ在将消息写入到内存缓冲区之后,会对缓冲区进行定期的刷盘操作,将消息从内存缓冲区

    刷盘到磁盘,以便在Broker重启或者意外停机的情况下,可以从磁盘恢复数据。但是这个过程并不会影响消息转发到消费队列的速度。

    2023-01-08 08:21:45
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理