快速开始
本页用于从源码启动一个单节点 YedMQ 实例。
警告
YedMQ 仍在持续开发中,目前还不建议直接承载生产负载。
前置条件
- Rust 1.75 或更高版本
protoc- OpenSSL 开发头文件,Ubuntu/Debian 下对应包名为
libssl-dev - 可选:
mosquitto_pub与mosquitto_sub,用于快速验证
如果你使用 Ubuntu/Debian,可以先安装常见的系统依赖:
sudo apt-get update
sudo apt-get install -y protobuf-compiler pkg-config libssl-dev
如果你在 Windows 下编译,请先安装以下依赖:
protoc- LLVM/Clang
这个工作区里的部分原生依赖要求编译时能够找到 Clang。PowerShell 下常见的设置方式如下:
$env:LIBCLANG_PATH = "C:\Program Files\LLVM\bin"
$env:PATH = "$env:LIBCLANG_PATH;$env:PATH"
如果 protoc.exe 所在目录还没有加入 PATH,也需要在编译前一并加入。
1. 克隆并编译
git clone https://github.com/designershao/YedMQ.git
cd YedMQ
cargo build --release -p yedmq
2. 创建本地配置文件
cp yedmq.toml.example yedmq.toml
启动前建议先检查监听器、API 认证、集群和插件相关配置。
仓库自带的示例配置默认是收紧的:
- MQTT 客户端访问默认拒绝,除非认证或 ACL 插件明确放行
- 管理 API 默认只绑定在
127.0.0.1 - 不会自动创建任何管理 API 用户
如果只是本机快速验证、且暂时没有接入认证插件,可以临时改成:
[plugin]
default_authorize_result = true
default_authenticate_result = true
这个兜底只适合本地 smoke test。共享环境或生产环境应保持默认拒绝,并改为安装真实的认证或 ACL 插件。仓库里也提供了一个随仓示例插件 example_plugins/acl_file 可供参考。
3. 启动 Broker
RUST_LOG=info ./target/release/yedmq
YedMQ 默认从当前工作目录读取 ./yedmq.toml,因此最简单的方式是在项目根目录下启动该二进制。
4. 验证 MQTT 连通性
请在开启上面的本地临时兜底,或安装好认证插件之后,再执行这一步。
先打开一个终端:
mosquitto_sub -h 127.0.0.1 -p 1883 -t test/topic
再打开另一个终端:
mosquitto_pub -h 127.0.0.1 -p 1883 -t test/topic -m "hello yedmq"
5. 验证管理 API
示例配置默认不会创建 REST API 用户,先至少添加一个:
[listener.api.auth]
users = [{ username = "admin", password = "replace_me" }]
然后再调用接口:
curl -u admin:replace_me http://127.0.0.1:3456/api/v1/system_info