跳到主要内容

快速开始

本页用于从源码启动一个单节点 YedMQ 实例。

警告

YedMQ 仍在持续开发中,目前还不建议直接承载生产负载。

前置条件

  • Rust 1.75 或更高版本
  • protoc
  • OpenSSL 开发头文件,Ubuntu/Debian 下对应包名为 libssl-dev
  • 可选:mosquitto_pubmosquitto_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

下一步