本文水一下,主要做个记录,详细说明直接看官方文档。
官方设计文档:
https://github.com/apache/rocketmq/blob/master/docs/cn/design.md
一. 消息存储
rocket的服务端broker的存储,包括如下几个部分:
- CommitLog:消息主体以及元数据的存储主体,存储Producer端写入的消息主体内容,消息内容不是定长的。单个文件大小默认1G ,文件名长度为20位,左边补零,剩余为起始偏移量,比如00000000000000000000代表了第一个文件,起始偏移量为0,文件大小为1G=1073741824;当第一个文件写满了,第二个文件为00000000001073741824,起始偏移量为1073741824,以此类推。消息主要是顺序写入日志文件,当文件满了,写入下一个文件;
- ConsumeQueue:消息消费队列
- IndexFile:IndexFile(索引文件)提供了一种可以通过key或时间区间来查询消息的方法。
二. 通信机制
直接看官方文档吧~