RocketMQ - 5 源码模块分析

rocketMQ采用maven父子项目拆分的项目构造,3.2.6版本有9个主要模块,还有一些其他模块。4.3最新版本总共有18个目录
这里写图片描述

common:通用的枚举、基类方法、或者数据结构,包名有admin、consumer、filter、hook、message
remoting:使用netty4的客户端、服务端,使用fastjson序列化,自定义二进制协议
srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖
store:消息存储,索引存储,consumerLog,commitLog等
client:客户端,包含consumer和producer,消息发送和接收的过程
filter:消息过滤器
broker:对consumer和producer来说是服务端,接受producer发来的消息并存储,consumer拉取消息
tools:命令行工具
namesrv: NameServer,类似服务注册中心,broker在这里注册。这里保存着消息的TopicName,队列等运行的meta信息。consumer和producer在这里找到broker地址
example:示例说明,对于学习RocketMQ的使用官方给出的示例
logging:日志保存,打印。涉及到关于日志操作的相关信息
target:使用maven进行编译项目得到的目标相关信息
distribution:使用maven进行编译项目后该目录下会有新的东西,可从中获取rocketmq的二进制jar包,里面也包含了rocketmq部署上线的一些配置,shell命令。
test:
style:
openmessageing:包括建立行业指南和消息传递,流媒体规范,为财务,电子商务,物联网和大数据领域提供通用框架。设计原则是分布式异构环境中面向云,简单,灵活和独立于语言的原则。符合这些规范将有可能在所有主要平台和操作系统上开发异构消息传递应用程序。
logappender: RocketMQ logappender提供了log4j appender,log4j2 appender和logback appender,用于使用。关于该模块可以查看http://rocketmq.apache.org/docs/logappender-example/
dev
着重注意:common,remoting,srvutil,store,client,filter,broker,tools,namesrv。其他目录只是附属。有些目录还在学习过程中,暂且不知道他应用于那一块。

猜你喜欢

转载自blog.csdn.net/qq_32020035/article/details/82079598