RocketMQ消息存储文件如何实现加载与恢复?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2393个文字,预计阅读时间需要10分钟。
目录+前言+StoreCheckPoint介绍+StoreCheckPoint时间戳更新机制+StoreCheckPoint刷盘源码+消息加载源码分析+CommitLog加载+ConsumeQueue加载+IndexFile加载+ConsumeQueue与IndexFile恢复+总结+前言+本文章+
目录
- 前言
- StoreCheckPoint介绍
- StoreCheckPoint时间戳更新时机
- StoreCheckPoint刷盘源码
- 消息加载源码分析
- CommitLog加载
- ConsumeQueue加载
- IndexFile加载
- ConsumeQueue与IndexFile恢复
- 总结
前言
前面文章我们介绍了Broker是如何将消息全量存储到CommitLog文件中,并异步生成dispatchRequest任务更新ConsumeQueue,IndexFile的过程以及ConsumeQueue和IndexFile的文件结构。由于是异步转发消息,就可能出现消息成功存储到CommitLog文件,转发请求任务执行失败,Broker宕机了,此时CommitLog和Index消息并未处理完,导致CommitLog与ConsumeQueue和IndexFile文件中的数据不一致。
本文共计2393个文字,预计阅读时间需要10分钟。
目录+前言+StoreCheckPoint介绍+StoreCheckPoint时间戳更新机制+StoreCheckPoint刷盘源码+消息加载源码分析+CommitLog加载+ConsumeQueue加载+IndexFile加载+ConsumeQueue与IndexFile恢复+总结+前言+本文章+
目录
- 前言
- StoreCheckPoint介绍
- StoreCheckPoint时间戳更新时机
- StoreCheckPoint刷盘源码
- 消息加载源码分析
- CommitLog加载
- ConsumeQueue加载
- IndexFile加载
- ConsumeQueue与IndexFile恢复
- 总结
前言
前面文章我们介绍了Broker是如何将消息全量存储到CommitLog文件中,并异步生成dispatchRequest任务更新ConsumeQueue,IndexFile的过程以及ConsumeQueue和IndexFile的文件结构。由于是异步转发消息,就可能出现消息成功存储到CommitLog文件,转发请求任务执行失败,Broker宕机了,此时CommitLog和Index消息并未处理完,导致CommitLog与ConsumeQueue和IndexFile文件中的数据不一致。

