e2tox / blog

技术博客,点开Issues查看。看我心情,不定期更新。
28 stars 0 forks source link

物联网: Serverless, MQTT, Protobuf 物联网应用开发的基石 #10

Open e2tox opened 5 years ago

e2tox commented 5 years ago

5b0e0fdd79b10cc02e0d6945

什么是物联网?

简单来说,物联网就是把一切与人生活有关的物体或设备通过网络进行通讯和控制。比如蔬菜大棚的温度计全部联网后就不需要人一个一个的去查看温度,而是统一的在一个软件系统内进行控制。因此物联网的提出,将巨幅增加网络中设备的数量,对现有体系的控制系统来说是巨大的挑战,并且对网络宽带和容量提出了更高的要求。最典型的列子是大部分家庭的无线路由器在连接了10几个设备后会经常断网或无响应。在物联网情况下,这个设备的数字会增加到几百个,如果要支持这样规模的设备,家庭路由器将必须做出改变。

除了硬件部分需要改进之外,软件部分又会有什么变化呢?

物联网对通讯协议的要求

由于物联网设备往往计算能力和电力有限,必须使用最轻量级别的协议,并且需要能够使用服务端来控制客户端的协议。这个情况下使用 http协议就显得比较臃肿,并且由于http是同步的,在不可靠网络下会遇到很多挑战。于是IBM提出了使用 MQTT 来作为物联网的通讯协议。

物联网对数据传输的要求

目前网站API常用的数据结构是JSON,但是JSON相对Protobuf来说,描述同样内容的数据,JSON比Protobuf要占用更多的字节和使用更多的CPU时间来进行序列化和反序列化。因此在物联网设备上更多使用的是Protobuf来传输数据。

物联网对服务器的要求

由于物联网设备众多,并且数据往往是实时变化的,比如当前温度,湿度,位置。所以中心化的服务器将无法承载海量的设备链接和数据传输,必须使用边缘计算来筛选数据,只将关键数据发送到中心服务器,因此无服务器计算将承载物联网设备大部分的流量,比如 Lambda@Edge

结合Serverless,MQTT,Protobuf可以开发出目前来说最理想的物联网系统

祝大家编程愉快~