目录
Mmap(Memory Mapped Files)内存映射技术 && madvise
RocketMQ中消息存储和读取的实现方式
消息生产与消息消费相互分离。
- Producer端发送消息最终写入的是CommitLog,RocketMQ的CommitLog文件采用混合型存储(所有的Topic下的消息队列共用同一个CommitLog的日志数据文件),并通过建立类似索引文件ConsumeQueue的方式来区分不同Topic下面的不同MessageQueue的消息。同时为消费消息起到一定的缓冲作用
- Consumer端先从ConsumeQueue即消息逻辑队列中读取持久化消息的起始物理位置偏移量offset、大小size和消息Tag的HashCode值,随后再从CommitLog中进行读取待拉取消费消息的真正实体内容部分;
RocketMQ存储架构的优缺点
优