ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

rocketmq 刷盘机制 与同步机制区别

2026/10/3 8:15:01 拓冰建站 浏览量
rocketmq 刷盘机制 与同步机制区别

RocketMQ 刷盘机制与同步机制的区别

RocketMQ 的刷盘机制和同步机制是两个不同层面的概念,分别处理不同的问题:

刷盘机制 (Flush Mechanism)

作用:解决消息从内存持久化到磁盘的问题

流程:内存(PageCache) → 磁盘文件

两种模式:

  1. 同步刷盘 (SYNC_FLUSH)

    • 消息写入内存后,立即调用fsync强制刷盘

    • 确保消息写入磁盘后才返回成功响应

    • 可靠性高,但性能较低

  2. 异步刷盘 (ASYNC_FLUSH)

    • 消息写入内存后立即返回成功

    • 由后台线程定期(默认500ms)批量刷盘

    • 性能高,但极端情况下可能丢失少量未刷盘的消息

同步机制 (Replication Mechanism)

作用:解决主从Broker之间的数据同步问题

流程:主Broker → 从Broker

两种模式:

  1. 同步复制 (SYNC_MASTER)

    • 主节点等待从节点存储成功后才返回写入成功

    • 保证主从数据强一致

    • 性能较低,但可靠性高

  2. 异步复制 (ASYNC_MASTER)

    • 主节点写入成功后立即返回,不等待从节点

    • 性能高,但主从数据有短暂不一致可能

关键区别

维度刷盘机制同步机制
作用范围单机内部(内存到磁盘)主从Broker之间
主要目的数据持久化数据冗余和高可用
影响层面存储层复制层
配置参数flushDiskTypebrokerRole

实际生产环境中,通常会根据业务需求组合使用这两种机制的不同模式,例如:

  • 高可靠性场景:同步刷盘+同步复制

  • 高性能场景:异步刷盘+异步复制

  • 平衡场景:同步刷盘+异步复制 或 异步刷盘+同步复制