技术架构

最近更新时间:2024-12-27 14:25:13

我的收藏

MQTT 组件与部署架构


Pub Client:表示客户端应用或设备,通过 Client ID 唯一标识,可以发布或订阅消息。
MQTT Proxy:服务端计算组件,负责 MQTT 协议处理,连接会话管理,认证鉴权,无状态可以快速扩缩容。
NameSrv:命名发现服务,负责按 Topic 路由寻址和 Broker 心跳注册。
RocketMQ Broker:服务端存储消息的组件,负责消息收发,存储,消息模型,可以横向扩展。

MQTT 实现原理与架构


发布消息流程
发布客户端向 Proxy 建立连接,成功后发布 MQTT 消息,Proxy 将消息解析转换后写入到 RocketMQ Broker 中持久化。
消息存储
Broker 接收消息以后,将消息首先持久到 Commitlog 数据文件中,再根据主题分别建立两个索引,一级主题索引用来做事件通知,多级主题索引用户维护消费进度。
订阅消息流程
订阅客户端向 Proxy 建立连接并指定订阅的主题表达式,Proxy 会如果 session 维护每个连接,当有新消息到达时,通过 notify 模块,广播通知匹配的 session 立即 pop 消息,并且通过 cache 模块,减少重复提取,提升性能和消息实时性。