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…...
3类被90%开发者忽略的农田图像噪声——基于ISO 17202-2标准的Python去噪实战手册
第一章:农田图像噪声的认知革命与ISO 17202-2标准全景解读传统农业视觉系统长期将图像噪声视为需“压制”的干扰项,而ISO 17202-2:2023《农业遥感图像质量评估—第2部分:噪声建模与语义敏感性分级》首次确立噪声作为农田场景的**可解释性特征…...
3步搞定!Jable视频下载终极指南:免费Chrome插件+本地工具完整教程
3步搞定!Jable视频下载终极指南:免费Chrome插件本地工具完整教程 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download Jable视频下载工具是一款专为普通用户设计的免费开源解决方…...
OpenClaw:四大使用挑战与破局思路
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
Poppler Windows版技术架构深度解析:跨平台PDF处理的零配置解决方案
Poppler Windows版技术架构深度解析:跨平台PDF处理的零配置解决方案 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows Windows环境下PDF处…...
别再只会docker push了!Harbor镜像上传的5个隐藏技巧与实战避坑指南
Harbor镜像上传实战:5个高阶技巧与避坑指南 当你在凌晨三点被CI/CD流水线的失败通知惊醒,发现又是镜像上传问题导致整个发布流程卡住时,就会明白掌握Harbor的进阶用法有多重要。作为企业级容器镜像仓库,Harbor远比简单的docker pu…...
17 种 RAG 优化策略
RAG 完整解析 本文适合小白入门,全程用「公司员工手册查病假」为统一实例,清晰讲解 RAG 是什么、工作流程,以及 17 种 RAG 优化策略(含标准英文术语),所有内容可直接复制用于分享,实例均精确到具…...
快速验证控制逻辑:用快马平台十分钟搭建pid算法仿真原型
今天想和大家分享一个快速验证PID控制算法的小技巧。作为一名自动化工程师,经常需要调试各种控制参数,传统方法要搭建物理实验环境或者用MATLAB仿真,都很费时。最近发现用InsCode(快马)平台可以十分钟就做出一个可交互的PID仿真原型ÿ…...
mmsegmentation训练策略调优全攻略:从学习率预热到迭代次数计算
mmsegmentation训练策略调优实战:从参数配置到显存优化 在图像分割领域,mmsegmentation框架因其模块化设计和丰富的预训练模型而广受欢迎。但真正决定模型性能上限的,往往是那些容易被忽视的训练策略细节。本文将带您深入AdamW优化器的参数微…...
ai辅助stm32开发,向快马描述需求即可获得精准的f103c8t6引脚配置代码
最近在做一个基于STM32F103C8T6的小项目,需要用到UART、I2C、PWM、ADC和GPIO等多种外设。作为嵌入式开发新手,最头疼的就是引脚分配和初始化代码的编写。好在发现了InsCode(快马)平台的AI辅助开发功能,用自然语言描述需求就能得到专业的代码解…...
当multisim遇见ai助手:快马平台如何智能分析与优化你的电路设计
作为一名电子设计爱好者,最近在InsCode(快马)平台尝试了一个特别有意思的项目——用AI辅助优化Multisim电路设计。整个过程就像有个专业的电子工程师在旁边实时指导,分享下我的实践心得: 直流工作点智能诊断 输入一个简单的晶体管放大电路后&…...
