RocketMQ源码分析——项目结构和类设计

项目结构

RocketMQ源码分析——项目结构和类设计_第1张图片

RocketMQ的源码如上,由多个maven工程组成。

RocketMQ源码分析——项目结构和类设计_第2张图片

多个maven工程之间的依赖关系如上图所示,从上面我们可以看出rocketmq-remoting是核心模块。



rocketmq-common

该模块是通用模块,类图就不需要画了,它主要是一些通用的数据模型、枚举和常量定义等,比较简单。

rocketmq-remoting

该模块是一个远程通讯模块,抽象出了一个基于client和server的双向通讯通用组件,两者通讯支持同步和异步两种通讯方式。

该模块默认提供了一个基于netty-all-4.0.25.Final的双向通讯实现。


RocketMQ源码分析——项目结构和类设计_第3张图片

rocketmq-namesrv

namesrv是RocketMQ的简单的注册中心服务。

它存储了mq运行期的临时信息。主要包括这些:

Topic列表,

Topic对应的BrokerName列表,

BrokerName包含的brokerId和brokerAddress列表等。

Cluster及BrokerName列表。

broker存活信息列表。

broker对应的过滤服务列表。


RocketMQ源码分析——项目结构和类设计_第4张图片



rocketmq-broker



rocketmq-store

RocketMQ源码分析——项目结构和类设计_第5张图片



你可能感兴趣的:(RocketMQ源码分析——项目结构和类设计)