One minute
Rocketmq Broker
BrokerController分析
主要的类和作用
- NettyRemotingServer: 网络协议处理
- NettyRequestProcessor及其子类: 负责请求的处理
- DefaultMessageStore: 存储层, 负责写入消息到CommitLog, 异步写入ConsummeQueue, 异步索引消息
- CommitLog: 消息数据的写入和读取. 所有的消息都写入一个文件里.
- ConsumeQueue: 消费者消息索引的写入和读取, ConsumeQueue对应着一个文件, 是 topic+queueId 维度的, 只有索引, 没有实际的数据.
- ReputMessageService: 负责从CommitLog中读取数据, 调用Dispatcher链进行处理, ConsummeQueue 和 IndexFile 的构建就是通过注册到Dispatcher链实现的
- MappedFile: 通过mapp方式实现的文件的读写
- HAService: 主从同步的处理
- ManyMessageTransfer/OneMessageTransfer/QueryMessageTransfer: 通过继承Netty FileRegion的方式实现zero copy
- BrokerOuterAPI: broker 和 namesrv 交互的组件
- ConsumerOffsetManager: offset的管理
特点
- 所有的topic的消息都是放在一个 CommitLog 里面的
- ConsumeQueue 的构建是异步进行的, 是 topic+queueId 维度的.
- 消费支持 zero copy.
- 可以自定义MessageStore的实现
57 Words
2019-03-11 21:52 +0800