跳到主要内容

概览

YedMQ 是一个用 Rust 编写的分布式 MQTT Broker,面向现代 IoT 与设备消息场景。当前实现重点在 MQTT v3.1.1、多租户隔离、基于 Raft 的集群,以及进程隔离的插件运行时。

项目状态

YedMQ 仍在持续开发中,GitHub 仓库目前仍是 private 状态,暂时还不建议直接用于生产环境。

当前已经具备的能力

  • MQTT v3.1.1 Broker 能力,包括 QoS 0、1、2,保留消息,遗嘱消息和持久会话
  • TCP、TLS、WebSocket 和 WSS 监听器
  • 按租户隔离的消息路由、会话处理和 REST 操作
  • 通过 Raft 管理 topic、session actor map 与 session state 的集群状态
  • 用于认证、鉴权、消息发布处理和事件类扩展的进程化插件
  • 覆盖插件、客户端、主题、保留消息、系统信息和集群管理的 REST API

架构一览

YedMQ 当前可以粗分为以下几个运行组件:

  • broker:监听器、路由、会话、REST API 与集群协调逻辑
  • mqtt:MQTT 协议实现
  • plugin_host:插件发现、生命周期管理、IPC 和 hook 分发
  • plugin_protocol:Broker 与插件共享的 Protobuf 协议定义

当前边界

  • 当前协议目标是 MQTT v3.1.1,MQTT v5.0 仍在路线图中。
  • 插件运行时目前是进程模型,不支持动态库加载。
  • 生成的 OpenAPI 页面才是请求与响应细节的权威 API 参考。

建议继续阅读