开发者社区 > 云原生 > 云消息队列 > 正文

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

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

展开
收起
fuxixi 2022-12-04 15:02:01 236 0
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.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载