跟我学RocketMQ之消息持久化原理与Mmap
大家好,跟我学RocketMQ系列并没有结束。随着笔者对RocketMQ的学习与感悟不断深入,我们的旅程也在继续。
本文我将带领读者朋友们一睹RocketMQ实现高性能消息存储的原理,以及它背后的核心Mmap的风采。
RocketMQ消息持久化(消息不丢失)原理
在之前的文章中我们已经得知,broker通过调用以下代码实现消息持久化
putMessageResult = this.brokerController.getMessageStore().putMessage(msgInner);
我们先不深入putMessage方法的内部实现,单说它背后的原理:CommitLog的顺序写入机制。
CommitLog顺序写,其实就是一个WAL,即write ahead log。