前言
在rocketmq的文件中,除了commitLog文件,还有两个重要的文件,分别是indexFile文件和consumerQueue文件,这篇笔记主要记录这两个文件的数据是怎么写进去的
consumeQueue文件中对应topic下的一个queue,在consumeQueue文件中,存放了三部分数据:分别是当前消息在commitLog中的offset、以及消息的大小、tagCode信息
indexFile文件暂时没有看懂细节,只是从官网和网上的博客来看,在根据key进行快速查找msg信息时,会用到indexFile文件,关于indexFile文件的细节,暂时先空着,后面学习了之后,再补充
入口
在前面broker启动的那篇博客中,有讲到过,在启动过程中,有一个service,是用来同步这两个文件的,我们从这里开始看起
/**
* setReputFromOffset:是设置当前要从哪里开始同步消息信息到indexFile和consumerQueue文件
* 启动reputMessageService,更新consumerQueue文件
* 这里启动的异步线程,是为了监听commitLog文件,然后根据文件中写入的数据,更新consumerQueue和indexFiLe
*/