RocketMQ的源码如上,由多个maven工程组成。 异步
多个maven工程之间的依赖关系如上图所示,从上面咱们能够看出rocketmq-remoting是核心模块。 maven
该模块是通用模块,类图就不须要画了,它主要是一些通用的数据模型、枚举和常量定义等,比较简单。 spa
该模块是一个远程通信模块,抽象出了一个基于client和server的双向通信通用组件,二者通信支持同步和异步两种通信方式。 netty
该模块默认提供了一个基于netty-all-4.0.25.Final的双向通信实现。 orm
namesrv是RocketMQ的简单的注册中心服务。 server
它存储了mq运行期的临时信息。主要包括这些: rem
Topic列表, 同步
Topic对应的BrokerName列表, 源码
BrokerName包含的brokerId和brokerAddress列表等。 cli
Cluster及BrokerName列表。
broker存活信息列表。
broker对应的过滤服务列表。