1. 主页
  2. 文档
  3. RobustMQ Tutorial CN
  4. 贡献指南
  5. 代码结构

代码结构

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