第 2-1 课:选择一个可扩展的上行数据处理方案

接下来的的几节课,我们会来设计和实现 Maque IotHub 的上行数据处理和存储的功能

接收上行数据

在《MQTT 协议快速入门》的讨论群里,问的一个比较多的一个问题就是:"服务端怎么接收客户端发送的数据呢?"

这里我想先做一个说明,在 MQTT 协议的架构里面,是没有"服务端"和"客户端"的概念的,只有"Broker"和"Client",所以 EMQ X 说自己是一个 MQTT Broker,而不是 MQTT 的 Server。而服务端和客户端,是我们在 MQTT 协议的基础上构建的 C/S 结构的平台或者业务系统里面的概念,所以我们需要做一些抽象,让这两组不太相干的逻辑实体能匹配起来。

在我们的架构里,IotHub Server 就是服务端,设备就是客户端,IotHub Server 有一个最基础的功能就是接收设备的数据并存储,那么怎么来实现呢?我们来看一下可能的几种方案。

Pure MQTT 的方案

这个方案使用 MQTT 协议框架内的实体来实现设备上行数据的接收功能。

像前面说的一样,MQTT 协议架构里没有"服务端"和"客户端",那么 IotHub Server 需要接收设备端的数据,它需要和设备一样,以 MQTT Client 的身份接入 EMQ X Broker,订阅相关的主题来获取数据:

  1. 设备端发布消息到特定主题,例如 "data/client/:DeviceName&#

你可能感兴趣的:(从,0,开始搭建,IoT,平台,IoT,MQTT,EMQ,物联网)