博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
物联网服务端架构
阅读量:5266 次
发布时间:2019-06-14

本文共 1795 字,大约阅读时间需要 5 分钟。

物联网服务端架构

整体架构

物接入:物接入是全托管的云服务,可以在智能设备与云端之间建立安全的双向连接,并通过主流的物联网协议(如MQTT)通讯,实现从设备端到云端以及从云端到设备端的安全稳定的消息传输。

物接入(设备型):主要用于对接入云端的设备进行管理和操作。物管理需要与云的物接入服务配合使用,对接入云端的设备进行一站式设备管理,可应用于设备的层级管理、监测、遥控、固件升级和维护保养等各个场景。

物解析:在云端为用户提供工业协议解析服务。当云端收到设备端返回的原始数据后,结合用户提供的设备通讯地址表,物解析服务可将数据解析成直接可用于存储和分析的数据。

规则引擎:作为物联网平台的重要组件,用于将信息根据预先设置好的规则转发至云其它服务。用户可通过规则引擎设定消息处理规则,对规则匹配的消息采取相应的转发操作,如推送给手机APP等;也可以将设备消息无缝转发到时序数据库、Kafka和对象存储中进行存储。

时序数据库:用于管理时间序列数据的专业化数据库。区别于传统的关系型数据库,时序数据库针对时间序列数据的存储、查询和展现进行了专门的优化,从而获得极高的数据压缩能力、极优的查询性能,特别适用于物联网应用场景。

大数据平台:提供了完备的大数据托管服务、智能API、众多业务场景模板以及人脸识别、文字识别、语音识别等服务,帮助用户实现智能业务。

平台架构

通讯协议

MQTT

MQTT PUB/SUB

MQTT开源

单机版本

• Mosquitto

• Moquette

• Apollo

• RabbitMQ

分布式

• EMQTT

MQTT architecture

高可用

MQTT层堆栈

跨机器Router模型

Router性能优化(字典树)

Router性能优化(Cache)

数据一致性

• 支持同一client发布消息顺序性

• 保证每个订阅者收到来自同一个broker上发送到同一 个topic消息的有序性
• 不同Broker发送消息顺序取决于他们发送到这个 broker的时间决定的
• 不支持各个client之间消息全局有序  这样就需要选择一个master来分配每个消息的ID
• 对于MQTT大部分场景来说,没必要全局有序

数据一致范例

• C1 发送消息到 M1, M2, M3 主题 T2

• C2 发送消息到 M4, M5, M6 主题 T2
• M1必须在M2,M3之前到达T2
• M2必须在M3之前到达T2
• M4必须在M5,M6之前到达T2
• M5必须在M6之前到达T2
• T2收到的消息可能是C1和C2发送消息交织的结果

大数据并发处理架构

开发中可能出现的问题

1.采用REST API方式做authentication & Authorization

• 由于是短链接导致大量TIME_WAIT状态的TCP连接,消耗太多端口资源
• 采用RPC连接池极大降低短链接导致端口资源消耗,采用cache机制
2. 跨机器消息传递瓶颈问题
建议大规模数据订阅采用从kafka消费数据
• Broker直接将消息写入到Kafka,从kafka订阅数据

3.避免使用Zookeeper管理大量metadata以及watch

• 会导致zookeeper系统达到资源极限,比如最大watch的节点数太多会 导致session重建出现失败

应用场景

• 工业4.0

• 零售020

• 智慧物流

• 节能减排

• 智能硬件

• 车联网

------------------------------------------------------------------

今天先到这儿,希望对您技术领导力, 企业管理,物联网,  系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章:

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

作者:

出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

转载于:https://www.cnblogs.com/wintersun/p/10223554.html

你可能感兴趣的文章
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
2019春 软件工程实践 助教总结
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
java实现哈弗曼树
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>