RocketMQ使用兩種方式來保存消息:
同步刷盤:當消息生產者發送消息時,RocketMQ會立即將消息寫入磁盤,并且等待磁盤IO操作完成后再返回成功結果給生產者。這種方式可以保證消息在寫入磁盤后不會丟失,但是會影響消息的發送速度。
異步刷盤:當消息生產者發送消息時,RocketMQ會將消息寫入操作放在后臺線程進行,不會等待磁盤IO操作完成。這種方式可以提高消息的發送速度,但是會增加消息丟失的風險。
RocketMQ還提供了消息落盤策略配置,可以根據實際業務需求選擇合適的策略。默認情況下,RocketMQ使用同步刷盤方式保存消息。可以通過修改broker配置文件中的flushDiskType
參數來切換同步刷盤和異步刷盤方式。