RocketMQ使用两种方式来保存消息:
同步刷盘:当消息生产者发送消息时,RocketMQ会立即将消息写入磁盘,并且等待磁盘IO操作完成后再返回成功结果给生产者。这种方式可以保证消息在写入磁盘后不会丢失,但是会影响消息的发送速度。
异步刷盘:当消息生产者发送消息时,RocketMQ会将消息写入操作放在后台线程进行,不会等待磁盘IO操作完成。这种方式可以提高消息的发送速度,但是会增加消息丢失的风险。
RocketMQ还提供了消息落盘策略配置,可以根据实际业务需求选择合适的策略。默认情况下,RocketMQ使用同步刷盘方式保存消息。可以通过修改broker配置文件中的flushDiskType
参数来切换同步刷盘和异步刷盘方式。