RobustMQ 的源代码主要都在 src 目录中。 项目代码主入口再 src/cmd 中。
1. 整体目录
根目录主要关注: bin、config、docs、makefile、scripts、src、tests这几个文件和目录
├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── benches # 存放压测相关文件的目录 ├── bin # 存放启动服务的脚本文件的目录 ├── build.rs # Cargo 的build.rs文件 ├── config # 存放项目配置的目录 ├── docs # 存放文档目录 ├── example # 存放代码示例的目录 ├── makefile # 项目的 makefile 文件 ├── scripts # 存放项目需要的相关脚本文件的目录 ├── src # 存放 Rust 相关代码的源文件的目录 ├── target # 编译后生成的文件目录 └── tests # 存放项目测试用例相关文件的目录
2. 代码目录
代码目录主要关注:clients、cmd、common、journal-server、mqtt-bridge、mqtt-broker、placement-center、protocol、storage-adapter 等。
MQTT协议协议相关代码都在 mqtt- broker 中,Placement Center代码都在placement-center 中。其他的都是给这两个模块服务的。
项目主入口在 cmd 模块中,有mqtt-server、placement-center、journal-server三个模块,分别是三个组件的入口。所以代码可以从这里开始看。
配置、log相关的通用代码在common/base中
. ├── amqp-broker # AMAP 协议 Broker目录的源文件,暂没启用 │ ├── Cargo.toml │ ├── src │ └── tests ├── amqp-plugins # AMAP 协议 Broker 插件目录的源文件,暂没启用 │ ├── Cargo.toml │ ├── src │ └── tests ├── cli-command # RobustMQ 命令行工具cli的源文件,暂没启用 │ ├── Cargo.toml │ ├── src │ └── tests ├── clients # Placement Center服务的客户端的目录 │ ├── Cargo.toml │ ├── src │ └── tests ├── cmd # 项目启动的入口 │ ├── Cargo.toml │ ├── src │ └── tests ├── common # 存放通用代码和模块的目录 │ ├── base # 存放通用代码,比如日志、配置,工具类等 │ ├── metadata-struct # 存放多个项目都会用到的结构体 │ ├── raft-rocksdb # 存放Raft 和RocksDB的通用代码,暂未启用 │ ├── rocksdb-engine # 存放RocksDB Engine通用代码,暂未启用 │ └── third-driver # 存放三方驱动类,比如MySQL ├── journal-remote # Journal数据存放到远程的源文件,暂没启用 │ ├── Cargo.toml │ ├── src │ └── tests ├── journal-server # Journal Server 项目的代码源文件 │ ├── Cargo.toml │ ├── src │ └── tests ├── mqtt-bridge # MQTT 桥接功能的代码源文件 │ ├── elasticsearch │ ├── kafka │ └── redis ├── mqtt-broker # MQTT broker 模块的项目源代码 │ ├── Cargo.toml │ ├── src │ └── tests ├── placement-center # Placement Center 模块的项目源代码 │ ├── Cargo.toml │ ├── src │ └── tests ├── protocol # RobustMQ 项目所有协议解析相关的源代码 │ ├── Cargo.toml │ ├── src │ └── tests └── storage-adapter # Storage Adapter模块的项目源代码 ├── Cargo.toml ├── src └── tests