一、MQTT
实现一对多通信(发布或订阅型协议)
由中介(broker)、发布者(publisher)与订阅者(subscriber)构成
(1)订阅者连接中介,向中介订阅主题A
(2)发布者连接中介,发布主题A
(3)中介把主题A转发给订阅者
订阅者持续连接中介,发布者1:N订阅者,在物联网中,设备相当于发布者,服务器相当于订阅者
订阅者和发布者只需要知道中介的地址
发布/订阅的主题采用分层结构,例如:
/sensor/temperature/# 等同于 以/sensor/temperature/开头的所有主题
/sensor/+/room1 等同于 以/sensor/ 开头 以/room1结尾的所有主题
二、QoS
Quality of Service 服务质量:网络安全机制,解决网络堵塞和网络延迟
在“发布者与中介之间”与“中介与订阅者之间”都存在QoS,在MQTT协议中存在三个等级的QoS
(1)QoS 0 (at most once)最多发一次:遵循TCP/IP “尽力服务”原则(best effort)
网络发生堵塞时,不管用户或者应用,马上丢包,减少业务量 所以不保证消息到达
(2)QoS 1 (at least once )至少发一次
发布者将主题A发送给中介,中介收到主题后,给发布者发送PUBACK,然后中介将主题A发送给订阅者
若在一定时间之内发布者没有收到PUBACK,则会再次向中介发送该主题
(3)QoS 2(exactly once)精确发送一次
发布者发送主题给中介,中介返回PUBREC,发送者发送PUBREL给中介,中介返回PUBCOMP,后中介将主题发送给订阅者。
QoS 1+QoS 2 :避免收到重复的消息
人们通常采用QoS 0 ,减少网络负担
三、retrain
订阅者只能接收到订阅之后发布的消息,发布者若发布了带有retrain标志的消息,则中介会将消息传递给订阅该主题的订阅者,并将带有retrain标志最新的消息存储下来,若有新的订阅者出现,则会立即接收到带有retrain标志的最新消息。
四、数据格式
文本数据格式:以XML、Json为主,XML易读,但是Json数据量相对较小
图像、音频:二进制——>MessagePack
五、批处理与流处理
1、批处理:将需要处理的数据存储起来,定期处理
(1)分布式处理平台 hadoop
拥有 MapReduce机制 与 分布式文件系统 HDFS
MapReduce机制能够高效地处理数据,由map、shuffle与reduce三部分构成
map将数据进行分类,shuffle将不同节点、种类相同的数据归类,reduce将分类好的数据整合到一起
分布式文件系统能够将数据分割存入多个磁盘
(2)分布式处理平台Spark
RDD弹性分布数据集 :能够把数据放在内存上进行处理,RDD使用过的内存不能够写入,所以要在新的内存上展开处理结果
2、流处理:不保存数据,实时进行处理
六、数据库
关系型数据库RDB 在对于图像与音频等二进制数据的保存,一般将图像存在文件夹,将图像的数据路径存在RDB。
数据库把数据存储在硬盘,所以经常要对磁盘进行访问,所以处理速度较慢。
键值存储(NoSQL的一种)
(1)数据保存在内存:高速保存数据,但软件停止运行,数据丢失,因此多作为缓存
(2)数据保存在硬盘:存取速度慢
Redis:通常将数据存储在内存,随时可以讲数据保存到硬盘
文档行数据库(NoSQL的一种)
以结构化文档的格式保存数据(如XMl或Json) MongDB——Json格式
c/c++开发分享杂七杂八的物联网学习地址:https://blog.csdn.net/cutebaboon/article/details/108560795
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/597595.html