咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

IoT架构探讨

协议选择

HTTP:client-server模式,如资源访问和数据上传,暂不支持数据下行
COAP:client-server模式,如资源访问和数据上传,暂不支持数据下行
MQTT:M2M模式,如智能灯和手机App通信,支持数据下行,如推送。

如果不是特别小(性能资源有限)的设备,都建议采用HTTP进行资源访问通讯,如果资源允许,加上SSL肯定是比较好的。

COAP是基于UDP的,我理解是迷你版的HTTP,它的协议设计也参考了HTTP,占用资源很小,适合资源有限的小型嵌入式设备。

现在基本需要双向通讯的设备,特别是要推送消息,都采用MQTT协议了。

MQTT数据采集

MQTT做数据采集服务器的问题,服务端软件作为订阅者,订阅某个主题,本身这样接收数据没有问题,但是数据并发大时,只有一个订阅者单线程是否能顶得住?另外并发特别高,就是通过消息队列服务器缓冲压力(如kafka,rabbitmq,RocketMQ等)

服务端订阅消息

数据采集的存储

日志类的数据,TSDB存储方便做可视化分析。

IoT设备的数据采集,日志类的应该采用TSDB时序数据库。
设备将原始数据通过 MQTT 协议发送到订阅者,转发到消息队列,继而写入到 TSDB 中存储。前端的监控系统和大数据处理系统会利用 TSDB 的数据查询和计算分析能力进行业务监控和分析结果的实时展现。

TSDB时序数据库的选择

OpenTSDB是可扩展的分布式时序数据库,底层依赖HBase。作为基于通用存储开发的时序数据库典型代表,起步比较早,在时序市场的认可度相对较高。阿里云智能TSDB高度兼容OpenTSDB协议,采用自研的索引,数据模型,流式聚合等技术手段提供更强大的时序能力。

TSDB For InfluxDB®是一款专门处理高写入和查询负载的时序数据库,无需外部依赖,用于存储大规模的时序数据并进行实时分析,包括来自DevOps监控、应用指标和IoT传感器上的数据。