MQTT学习笔记

MQTT概述

MQTT是一个C/S架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。

本协议运行在TCP/IP,也支持WebSocket、TLS,或其它提供了有序、可靠、双向连接的网络连接上。它有以下特点:

1. 使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦。

2. 消息传输不需要知道负载内容。

3. 提供三种等级的服务质量(QoS):

1)最多一次 ,尽操作环境所能提供的最大努力分发消息。消息可能会丢失。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久之后会再次发送。

2)至少一次 ,保证消息可以到达,但是可能会重复。

3)仅一次 ,保证消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。

4. 很小的传输消耗和协议数据交换,最大限度减少网络流量。

5. 异常连接断开发生时,能通知到相关各方。

MQTT控制报文的结构

* Fixed header 固定报头,所有控制报文都包含

* Variable header 可变报头,部分控制报文包含

* Payload 有效载荷,部分控制报文包含

控制报文的类型

服务质量QoS定义

通配符

原文发布于微信公众号 - oldriver编程老司机(bclsj-cn)

原文发表时间:2018-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

沃趣科技火线救援某公安系统核心业务数据

求助电话 只剩下键盘敲打声的办公室,被一个突如其来的电话打破了宁静。电话那头,是某公安客户的紧急求助。 案发现场 其核心数据库,由于存储突然断电,导致数据库实例...

3557
来自专栏性能与架构

LVS负载均衡的转发机制

LVS是Linux Virtual Server的简写,是国人贡献到LINUX内核的第一个重要模块,是负载均衡的主流技术 LVS是如何把用户请求转给应用服务器...

3888
来自专栏CSDN技术头条

创建一个分布式网络爬虫的故事

编者按:作者通过创建和扩展自己的分布式爬虫,介绍了一系列工具和架构, 包括分布式体系结构、扩展、爬虫礼仪、安全、调试工具、Python 中的多任务处理等。以下为...

2518
来自专栏韩伟的专栏

分布式本质论:高吞吐、高可用、可扩展

大量用户访问同一个互联网业务,所造成的问题并不简单。从表面上看,要能满足很多用户来自互联网的请求,最基本的需求就是所谓性能需求:用户反应网页打开很慢,或者网游中...

3K0
来自专栏我是攻城师

如何使用Jekyll+GitHub Pages搭建个人博客站点

4157
来自专栏程序你好

如何为你的移动应用建立RESTful API

782
来自专栏大闲人柴毛毛

架构高性能网站秘笈(一)——了解衡量网站性能的指标

服务器如何发送数据? 服务器程序将需要发送的数据写入该程序的内存空间中; 服务器程序通过操作系统的接口向内核发出系统调用; 系统内核将用户态内存空间中的数据复制...

7669
来自专栏IT技术精选文摘

Go语言构建千万级在线的高并发消息推送系统实践

3742
来自专栏python开发者

"过期不候"--具备生命周期的数据的技术实现方案

"过期不候"--具备生命周期的数据的技术实现方案 1   引言 本文可以作为之前的一个 原理性文章 对应的 技术实现部分 。 此处给出其上文的直达电梯: htt...

2285
来自专栏携程技术中心

干货 | 携程App网络服务通道治理和性能优化

编者:本文作者为携程无线开发总监陈浩然。陈浩然,计算机博士,2008年iOS SDK发布后,投身移动互联网。先后在外企、创业型和国内一线旅游公司从事无线App的...

4315

扫码关注云+社区

领取腾讯云代金券