简介
AWS IoT Core是什么?
先看下官方描述以及图示,
- AWS IoT 提供将您的物联网设备连接到其他设备和 AWS 云服务的云服务。
由上述可知,AWS IoT,Internet of Things,让设备接入网络后,即可进行与云端服务的通信,实现设备与云端服务的通信,或设备与设备之间的通信。那么其实现是基于什么的呢?答案是MQTT协议。
为什么用MQTT?
包括AWS IoT Core,阿里云等各大厂商(【1分钟速览!ioT服务厂商】) 大体都是基于MQTT协议进行的IoT服务实现。
为什么这些厂商会选择MQTT协议?(【Hello, ioT! 车企巨头在ioT中的实践】),
总结来讲,有2点
- 质量保障:MQTT协议中有明确的服务质量定义,基于此实现的服务,可以让不稳定网络环境下的数据传输,变的更加可靠。
- 场景符合:基于MQTT协议实现的IoT服务,不仅提供高可靠的通信服务,还有心跳机制、遗嘱消息、离线消息和安全管理等功能,非常契合物联网,数据回传,指令下发的场景。
典型图示
MQTT的基本模式是 发布/订阅模式,如上图,
- publish: 发布者指定消息发布的主题,将消息publish到MQTT Broker上(AWS等厂商提供的服务)。
- subscrib: 订阅者通过订阅相应的主题,向MQTT Broker注册对该主题的订阅,当有新的消息发布到该主题时,MQTT Broker会将消息发送给所有订阅了该主题的订阅者。
重要概念
由于IoT服务是基于MQTT协议的,在开始演示示例之前,先介绍下MQTT里面一些重要概念,以及在AWS IoT Core里面的一些细节。
服务质量保障QoS
MQTT设计了一套保证消息稳定传输的机制,包括消息应答、存储和重传。
在这套机制下,提供了三种不同层次QoS(Quality of Service):
- QoS0,At most once,至多一次;发送端只传一次,不保证消息一定送达到接收端。
- QoS1,At least once,至少一次;发送端至少发一次,确保接收端收到。
- QoS2,Exactly once,确保只有一次;确保接收端