mqtt学习笔记(一)
以解决问题方式逐步学习探索
- mqtt使用场景
- mqtt可能缺点
- mqtt学习疑问探索
- 1、mqtt主题发布过的历史消息,全新连接的client能消费到吗?
- 2、mqtt的client掉线如何重连,重连后订阅的topic配置还在不?
- 3、mqtt的client掉线重连后,如何保证掉线期间的消息能被消费到?
- 4、mqtt客户端订阅的消息能保证按序消费吗?
- 5、mqtt客户端能订阅自己发布的主题消息吗?
- 6、mqtt设置QoS=2还有必要在业务端判重吗?
- 7、mqtt协议服务端支持的最大连接数?
- 8、mqtt服务器控制台?
- 9、mqtt中的普通消息、保留消息、遗嘱消息区别?
- 10、消息默认是否过期,能否设置过期时间?
- 11、支持延迟发布?
- 12、用户属性?
- 13、共享订阅?
- 14、排它订阅?
- 15、自动订阅?
- 16、主题通配符?
mqtt使用场景
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,特别适用于资源受限的设备(内存小)和网络环境较差(低带宽、降低网络流量成本)的场景。适用于物联网(IoT)设备之间的通信,常用于发布/订阅模式的消息传输。
mqtt可能缺点
不适合大数据量传输、缺乏复杂的事务处理、消息顺序不保证、依赖中间代理
mqtt学习疑问探索
1、mqtt主题发布过的历史消息,全新连接的client能消费到吗?
针对普通消息不能,只能消费新发布的普通消息;
保留消息(retained messages)例外,有些设备上线要知道最新的设备状态等
2、mqtt的client掉线如何重连,重连后订阅的topic配置还在不?
可以配置成自动连接或手动连接。
连接后,订阅的topic配置不存在了,确实需要重新订阅之前的主题
3、mqtt的client掉线重连后,如何保证掉线期间的消息能被消费到?
可以设置会话不被清空,会话清空的话,就消费不到掉线期间产生的消息了。
参考方法setCleanSession(true or false)
4、mqtt客户端订阅的消息能保证按序消费吗?
得考虑是否支持QoS2配置、能否按序生产、能否按序消费
5、mqtt客户端能订阅自己发布的主题消息吗?
可以
6、mqtt设置QoS=2还有必要在业务端判重吗?
保守、严谨来说,业务侧还是很有必要进行判重。
主要是因为消息消费后,在最后的确认机制未成功反馈结果时(极端情况下手动确认时,网络异常、系统故障等),消息还是可能被重复进行消费
7、mqtt协议服务端支持的最大连接数?
具体看选择的mqtt协议中间件类型、服务器配置、压测等情况…
8、mqtt服务器控制台?
看具体使用的mqtt协议中间件
9、mqtt中的普通消息、保留消息、遗嘱消息区别?
保留消息可以在新客户端订阅时,推送;
遗嘱消息是客户端连接时指定的消息,可以在broker监测离线时,推送告知给其他订阅的客户端
10、消息默认是否过期,能否设置过期时间?
发布后broker存储,默认不过期,普通消费消费后自动删;
可以设置过期时间,过期不消费会被清掉,不会再推送消费
11、支持延迟发布?
支持,即可提前发布消息在broker服务端留存,达到一定的延迟时间,再推送到订阅的客户端去消费
12、用户属性?
可以在发送消息时,指定用户属性(有点类似于设置http接口的请求头参数)
13、共享订阅?
mqtt5.0支持,即共享订阅后,同一主题的多个客户端可以负载均衡处理消息。
在普通的订阅中,我们每发布一条消息,所有匹配的订阅端都会收到该消息。当某个订阅端的消费速度无法跟上消息的生产速度时,我们没有办法将其中一部分消息分流到其他订阅端中来分担压力。这使订阅端容易成为整个消息系统的性能瓶颈。
14、排它订阅?
一个主题当前仅能存在一个订阅者,在当前订阅者未取消订阅前,其他订阅者都将无法订阅该主题。
15、自动订阅?
自动订阅能够给 EMQX 设置多个规则,在设备成功连接后按照规则为其订阅指定主题,不需要额外发起订阅。
16、主题通配符?
支持通配符规则设置,主要用于客户端一次订阅多个主题
相关文章:
mqtt学习笔记(一)
以解决问题方式逐步学习探索 mqtt使用场景mqtt可能缺点mqtt学习疑问探索1、mqtt主题发布过的历史消息,全新连接的client能消费到吗?2、mqtt的client掉线如何重连,重连后订阅的topic配置还在不?3、mqtt的client掉线重连后ÿ…...
Kafka Eagle 安装教程
目录 前言 一、安装前的准备 1. 系统要求 2. 安装 JDK 3. 安装 Kafka 和 Zookeeper 4. MySQL 环境准备 二、下载并安装 Kafka Eagle 三、配置 Kafka Eagle 1. 编辑配置文件 2. 配置 Kafka 和 Zookeeper 信息 四、启动 Kafka Eagle 五、访问 Kafka Eagle 六、测试功…...
Ajax 获取进度和中断请求
HTML加入一些内容方便看效果和做交互: <div><p>当前传输进度:<span id"progress">0%</span></p><button id"send">发送</button><button id"btn">中断</button> …...
实验5:网络设备发现、管理和维护
实验5:网络设备发现、管理和维护 实验目的及要求: 通过实验,掌握Cisco 路由器和交换机的IOS配置管理。自动从NTP服务器获取时间信息。能够利用TFTP服务器实现路由器和交换机配置文件的备份和恢复。同时验证CDP协议和LLDP协议的网络参数。完…...
kafka 生产经验——数据积压(消费者如何提高吞吐量)
bit --> byte --> kb -->mb -->gb --> tb --> pb --> eb -> zb -->yb...
对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)介绍
对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)介绍 对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)是一种基于密码的身份验证方法,用于安全地交换密钥…...
Ajax 与 Vue 框架应用点——随笔谈
老式 在老式的技术中,一个网页通常由前端工程师直接使用 HTML、CSS、JavaScript 编写而成 这种方式的优点很明显:简单粗暴,方便工程师以简单的思维完成工作 当然,缺点也很明显,包括但不限于: 直接原生开发…...
The Internals of PostgreSQL 翻译版 持续更新...
为了方便自己快速学习,整理了翻译版本,目前翻译的还不完善,后续会边学习边完善。 文档用于自己快速参考,会持续修正,能力有限,无法确保正确!!! 《The Internals of PostgreSQL 》 不是 《 PostgreSQL14 Internals 》…...
redis 原理篇 31 redis内存回收 内存淘汰策略
哦哦, 内存满了咋搞 就算过期key 删除,还是不够用, 这种问题没办法,只能了解一下啥解决方案了, 内存是有限的,一直存,肯定会满,这时,咋处理? 首先ÿ…...
微信小程序——实现二维码扫描功能(含代码)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
【go从零单排】HTTP客户端和服务端
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,net/http 包提供了强大的 HTTP 客户端和服务器功能。 &…...
Android 配置默认输入法
1.背景 最近有个国内的项目,预制了输入法apk,但是无法调出软键盘。原因是没有配置默认输入法,本文主要记录下如何配置默认输入法。 2.代码设置 设置默认输入法需要配置Settings.Secure.ENABLED_INPUT_METHODS和Settings.Secure.DEFAULT_IN…...
交易术语汇总(Technical Trading Dictionary)
Arbitrage (套利) --- 一种利用交易所之间的差价获利的方法。 Accumulation (累积) --- 在一种资产中建立头寸的过程。 Ask/Bid (询价/竞价) --- 卖出订单是询价(Ask),买入订单是出价(Bid)。 ATH(历史最高价) --- All-time high 全时高。 Bearish MS…...
【Docker】Docker基础及docker-compose
一、Docker下载 更新yum包 yum update 安装需要的软件包( yum-util 提供yum-config-manager功能,后两个是devicemapper驱动依赖) yum install -y yum-utils device-mapper-persistent-data lvm2 设置stable镜像仓库(使用阿里…...
从零开始的 Hugging Face 项目:我的首个在线 SQL 查询工具之旅20241111
从零开始的 Hugging Face 项目:我的首个在线 SQL 查询工具之旅 作为一名 AI 初学者,我最近完成了一个意义非凡的项目:在 Hugging Face Spaces 上构建了一个简单却实用的在线 SQL 查询工具。这个项目不仅让我了解了 Hugging Face 平台的核心功…...
让AI为你发声!Windows电脑快速部署ChatTTS文本转语音神器
文章目录 前言1. 下载运行ChatTTS模型2. 安装Cpolar工具3. 实现公网访问4. 配置ChatTTS固定公网地址 前言 嘿,朋友们!今天我们来聊聊如何在Windows系统上快速搭建ChatTTS,一个超酷的开源文本转语音项目。更棒的是,我们还可以用Cp…...
【AI换脸整合包及教程】FaceFusion 3.0.0:AI换脸技术的革新之旅
在人工智能技术的飞速发展中,AI换脸技术成为了近年来备受瞩目的焦点之一。FaceFusion 3.0.0,作为这一领域的最新力作,不仅继承了前代产品的优点,还在功能和用户体验上进行了全面升级和优化,为用户带来了前所未有的换脸…...
更新对象或数组的值的方法
一、数组的映射或更新 map(): 用于创建一个新数组,数组中的每个元素是对原数组元素执行函数后的结果。 const arr [1, 2, 3]; const newArr arr.map(item > item * 2); // [2, 4, 6]forEach(): 用于遍历数组,对每个元素执行操作,但不返…...
Java线程池浅谈(创建线程池及线程池任务处理)
1-认识线程池 什么是线程池? 线程池就是一个可以复用线程的技术。 不使用线程池的问题 比方说淘宝,不使用线程池,现在有一亿个线程同时进来,CPU就爆了。用户每发起一个请求,后台就需要创建一个新线程来处理…...
Dockerfile的使用
简介 制作docker镜像可以通过修改容器的方式,也通过通过Dockerfile文件的方式,下面通过Dockerfile文件的例子进行说明。 Dockerfile文件 FROM openjdk:8-alpine#ENV http_proxy http://127.0.0.1:7890 #ENV https_proxy http://127.0.0.1:7890#ENV TZ…...
华硕笔记本终极性能优化方案:G-Helper轻量级控制工具完全指南
华硕笔记本终极性能优化方案:G-Helper轻量级控制工具完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenb…...
地质建模革命:如何使用GemPy在10分钟内构建专业3D地质模型 [特殊字符]
地质建模革命:如何使用GemPy在10分钟内构建专业3D地质模型 🚀 【免费下载链接】gempy GemPy is an open-source, Python-based 3-D structural geological modeling software, which allows the implicit (i.e. automatic) creation of complex geologic…...
113、MPC:非线性MPC与实时优化
113、MPC:非线性MPC与实时优化 从一次电机堵转说起 去年调试一个四足机器人单腿的力控,用的线性MPC,模型是简单的质量-弹簧-阻尼。空载跑得挺好,一上负载,电机堵转,电流直接爆表。查了半天,发现是关节摩擦力矩的非线性项在MPC的线性化模型里被忽略了——线性MPC把摩擦…...
2026年AI应用最容易被低估的一层
2026年AI应用最容易被低估的一层不是模型 而是向量引擎 很多人最近都有一个感觉。 AI 好像突然从会聊天,变成了会干活。 以前我们问 AI 一个问题,它回答一段文字。 现在我们希望 AI 搜资料,读文件,整理表格,调用工具&a…...
Windows 11系统优化终极指南:用Win11Debloat一键清理系统垃圾,提升电脑性能
Windows 11系统优化终极指南:用Win11Debloat一键清理系统垃圾,提升电脑性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various ot…...
Perplexity习语查询响应延迟超800ms?3个冷启动配置错误正在 silently 毁掉你的语言生产力
更多请点击: https://kaifayun.com 第一章:Perplexity习语查询功能概览 Perplexity 的习语查询功能专为语言学习者与内容创作者设计,支持对英语中高频、多义、文化负载型习语进行上下文感知的精准解析。该功能不仅返回标准释义,还…...
终极指南:如何在Android设备上离线使用Zwift骑行模拟平台
终极指南:如何在Android设备上离线使用Zwift骑行模拟平台 【免费下载链接】zwift-offline Use Zwift offline 项目地址: https://gitcode.com/gh_mirrors/zw/zwift-offline 你是否曾梦想在无需网络连接的情况下享受专业的Zwift虚拟骑行体验?现在&…...
java中的进程的详细解析
JavaEE 初阶(进程) 一、操作系统 操作系统是计算机中的一个重要软件。 操作系统是一个搞管理的软件: 管理各种硬件设备给各种应用程序提供一个稳定的运行环境, 这些应用程序在运行中,即使有一个应用程序发生bug崩溃了&…...
智慧树刷课插件:如何用自动化工具解放你的学习时间
智慧树刷课插件:如何用自动化工具解放你的学习时间 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 你是否曾经花费大量时间在智慧树平台上手动点击视频、处…...
独角数卡支付系统:如何构建高可用的自动售货支付解决方案
独角数卡支付系统:如何构建高可用的自动售货支付解决方案 【免费下载链接】dujiaoka 🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉 项目地址: https://g…...
