跳到主要内容

概览

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

项目状态

YedMQ 的 GitHub 仓库现已正式开放。项目仍在持续开发中,暂时还不建议直接用于生产环境。

当前已经具备的能力

  • MQTT v3.1.1 与 MQTT 5.0 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 5.0 支持是保守的首版实现。增强认证、Topic Alias 和 Subscription Identifier 暂未实现。
  • 插件运行时目前是进程模型,不支持动态库加载。
  • 生成的 OpenAPI 页面才是请求与响应细节的权威 API 参考。

建议继续阅读