前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MQTT,物联网圈的 HTTP,万物互联第一步

MQTT,物联网圈的 HTTP,万物互联第一步

作者头像
用户1737318
发布2019-11-19 13:15:18
1.1K0
发布2019-11-19 13:15:18
举报
文章被收录于专栏:人工智能头条人工智能头条
物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本。

物联网本身也是 AI 和区块链应用很好的落地场景之一,各大云服务商也在纷纷上架物联网平台和服务。

在 AI 和区块链的热潮过去之后,物联网很有可能成为下一个风口,在风口到来之前,提前进行一些知识储备,是很有必要的。

纵观人工智能的发展路线我们可以看到,人工智能近年来之所以能够突飞猛进。

第一个原因是硬件的发展,使得深度学习神经网络的学习时间迅速缩短;

第二就是数据,在我们这个大数据的时代,获取大量数据的成本已经很低了。

再来说物联网,像传感器、智能家电、可穿戴设备等,每天也都在产生着巨量的数据,这也是反馈给深度学习良好的训练数据。

同时,学习的结果又可以再应用到物联网的终端,形成一个良性的循环。举个例子:

从交通探头我们可以采集到大量的交通实时图片,经过处理之后,喂给神经网络,比如 SSD。 SSD 学会在图片中标注出人和汽车的位置,然后再把模型部署到探头端,探头就可以利用深度学习的接口,来实时地分析人流和车流情况了。

所以我认为物联网是 AI 落地的一个非常好的应用场景,随着 AI 的迅速发展,物联网这个同样在很多年前就提出的理论和技术,也会迎来新的春天。

如果想入门物联网,学习和了解 MQTT 协议是非常必要的,它解决了物联网中的一个最基础的问题,设备和设备之间,设备和云端服务之间,是怎么通讯的。

MQTT 之于物联网,就好像 HTTP 之于 Web 那么重要。目前基本所有开放云平台比如阿里云、腾讯云、青云等都支持 MQTT 的接入。

MQTT 是什么?

MQTT,全称为 Message Queue Telemetry Transport。在 1999 年,由 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 为了一个通过卫星网络连接输油管道的项目开发的。

之后 IBM 一直将 MQTT 作为一个内部协议在其产品中使用,直到 2010 年,IBM 公开发布了 MQTT 3.1 版本。在 2014 年,MQTT 协议正式成为了 OASIS(结构化信息标准促进组织)的标准协议。

随着多年的发展,MQTT 协议的重点也不再只是嵌入式系统,而是更广泛的物联网(Internet of Things)世界了。

MQTT 的优点

为了满足低电量消耗和低网络带宽的需求,MQTT 协议在设计之初就包含了以下一些特点:

1. 实现简单

2. 提供数据传输的 QoS

3. 轻量、占用带宽低

4. 可传输任意类型的数据

5. 可保持的会话(session)

MQTT 协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通讯保障。

而它的应用范围也不仅如此,在移动互联网领域也大有作为:很多 Android App 的推送功能,都是基于 MQTT 实现的,也有一些 IM 的实现,是基于 MQTT 的。

MQTT 为什么如此轻量且灵活?

MQTT 发布和订阅模型 简单来说是因为 MQTT 协议有以下特性:

  • 基于 TCP 协议的应用层协议;
  • 采用 C/S 架构;
  • 使用订阅/发布模式,将消息的发送方和接受方解耦;
  • 提供 3 种消息的 QoS(Quality of Service): 至多一次,最少一次,只有一次;
  • 收发消息都是异步的,发送方不需要等待接收方应答。

虽然 MQTT 协议名称有 Message Queue 两个词,但是它并不是一个像 RabbitMQ 那样的一个消息队列,这是初学者最容易搞混的一个问题。MQTT 跟传统的消息队列相比,有以下一些区别:

1. 在传统消息队列中,在发送消息之前,必须先创建相应的队列;在 MQTT 中,不需要预先创建要发布的主题(可订阅的 Topic);

2. 在传统消息队列中,未被消费的消息总是会被保存在某个队列中,直到有一个消费者将其消费;在 MQTT 中,如果发布一个没有被任何客户端订阅的消息,这个消息将被直接扔掉;

3. 在传统消息队列中,一个消息只能被一个客户端获取,在 MQTT 中,一个消息可以被多个订阅者获取,MQTT 协议也不支持指定消息被单一的客户端获取。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能头条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MQTT 是什么?
  • MQTT 的优点
  • MQTT 为什么如此轻量且灵活?
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档