最近公司要求将所有的ActiveMQ迁移到RocketMQ,阅读了RocketMQ的官方文档和部分源码,将自己的了解记录一下。
众所周知,RocketMQ分为四个部分,nameServer,broker,producer,consumer。
nameServer是注册中心,负责服务发现,路由信息存储和变更,broker负责存储消息,producer发送消息,consumer消费消息。
本次主要说明broker如何存储和查询消息
broker主要使用三个文件来存储消息,commitLog,consumerQueue,IndexFile
1.commitLog文件
commitLog文件存储消息的几乎所有信息,存储位置如下图
直观来看,commitLog文件使用上图目录结构,存储位置:${ ROCKET_HOME}/store/commitlog/${fileName}