RocketMQ源码分析——项目结构和类设计
RocketMQ源码分析——项目结构和类设计
杨武兵 发表于2年前
RocketMQ源码分析——项目结构和类设计
  • 发表于 2年前
  • 阅读 1056
  • 收藏 8
  • 点赞 1
  • 评论 0
摘要: RocketMQ是阿里巴巴开源的消息中间件,它从kafka学习而来,值得我们研究,通过研究该项目源码,让我们对于消息中间件的开发有了更深入的了解。

项目结构

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

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



rocketmq-common

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

rocketmq-remoting

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

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


rocketmq-namesrv

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

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

Topic列表,

Topic对应的BrokerName列表,

BrokerName包含的brokerId和brokerAddress列表等。

Cluster及BrokerName列表。

broker存活信息列表。

broker对应的过滤服务列表。




rocketmq-broker



rocketmq-store



共有 人打赏支持
杨武兵
粉丝 193
博文 56
码字总数 123254
作品 1
×
杨武兵
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: