MQTT简介之三(4) MQTT协议 QOS 服务质量等级

2024-03-01 18:10

本文主要是介绍MQTT简介之三(4) MQTT协议 QOS 服务质量等级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、QOS 等级详解

QOS=0,最多分发一次,就是快递小哥将包裹(PUBLISH报文)直接扔在你家门口,不管你是否确认签收      ----------------- 没有重发

QOS=1,至少分发一次,就是快递小哥会将同样的包裹(PUBLISH报文)多次来你家门口,至少有一次确认签收(PUBACK报文 ) -------------只要包裹没有被确认签收就会不断重发,因此订阅端会多次收到数据,要有幂等性的处理

QOS=2,只分发一次,就是快递小哥会将包裹(PUBLISH报文)来你家门口,你在家确认签收(PUBREC报文),然后包裹站点还会给你打电话问是否收到包裹(PUBREL),你需要再次确认签收(PUBCOMP)-------也就是必须要连贯的两次签收才算完成,要不然就会不断的重发。

对于快递小哥,等级1和等级2的区别,等级一需要一次确认签收,而等级二需要两次确认签收。

 

2、为什么一般MQTT的broker不支持等级2 例如阿里,百度,腾讯都不支持

 等级2要求是只发一次,很难实现,但是等级1至少分发一次服务端比较容易实现。

等级2对于服务器的开销很大

3、等级1的使用方法

大多数的服务器就算支持等级1,因为至少分发一次,比如订阅端一直不签收会导致服务端出现一直循环重发,服务端为了避免开销会限制重发次数,因此项目中一般也不使用等级1,不能将自己的命运交给服务端

如果服务器靠谱可以选择等级1,只是订阅端要处理好幂等性

4、使用等级0,等级0的使用方法

 

 

这篇关于MQTT简介之三(4) MQTT协议 QOS 服务质量等级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763332

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2