记录一次MQTT慢订阅优化

embedded/2025/3/3 5:31:50/

场景:收不到设备数据,MQTT监控,发现真实数据确实没有,监听2个小时,获取大量慢订阅信息

优化方式
通配符匹配加速​
优化订阅主题匹配算法,实现多级哈希索引结构。例如将home/+/status拆分为固定层级匹配,相比传统遍历方式可提升3-5倍匹配速度。在Java实现中可结合Trie树结构,利用ConcurrentHashMap实现线程安全的主题节点管理。

连接池化与参数动态调整​

使用HikariCP等连接池管理MQTT客户端,预设最小保持连接数(建议≥5),动态扩容上限根据CPU核心数×2设定
实现心跳间隔动态调节算法:基础心跳60秒,当连续2次心跳超时后自动缩短至30秒,网络恢复后逐步回退


http://www.ppmy.cn/embedded/169532.html

相关文章

南京来可电子CAN总线数据记录仪在汽车售后服务站的应用

南京来可电子CAN总线数据记录仪在汽车售后服务站的应用 南京来可电子(LaiCore)作为国内领先的车载数据采集设备供应商,其CAN总线数据记录仪凭借高精度、多协议兼容性及智能化功能,在汽车售后服务站中发挥重要作用。以下是其核心应…

微服务学习(5):消息转换器由JDK序列化——JSON序列化

在企业应用中,将消息转换器从JDK序列化改为JSON序列化提升了系统间通信的效率与安全性。JSON作为轻量级数据交换格式,增强了跨平台兼容性,简化了开发与维护。相比JDK序列化,JSON序列化减少了潜在的安全风险,提供了更紧…

【JS】ES模块与CommonJS的区别

ES 模块与 CommonJS 的对比 特性CommonJSES 模块导入方式const module require(‘module’)import module from ‘module’;导出方式module.exports value;export default value;加载方式同步加载异步加载作用域每个模块都有自己的作用域使用 import 和 export 共享作用域适…

通过Nginx负载均衡+Keepalived实现业务高可用

通过Nginx负载均衡和Keepalived可以实现业务的高可用,以下是详细的实现步骤: 环境准备 假设我们有3台服务器,IP地址分别为: 服务器1(Nginx Keepalived 主节点):192.168.1.100服务器2&#x…

Imagination通过最新的D系列GPU IP将效率提升至新高度

Imagination DXTP GPU IP在加速移动设备和其他电力受限设备上的 图形和计算工作负载时,能够延长电池续航时间。 近日,Imagination Technologies(“Imagination”)宣布推出其最新的GPU IP——Imagination DXTP,该产品…

鸿蒙中连接手机可能遇到的问题

连接权限问题:手机开启了严格的权限管理机制,若未授予鸿蒙设备连接所需的权限,如蓝牙连接时未开启蓝牙权限,或者 USB 连接时未允许设备进行调试、文件传输等操作,就会导致连接失败。例如,当使用鸿蒙平板通过…

LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法

什么是LLM的结构化输出能力? 在一些工业级LLM应用或比较复杂的LLM应用编排环节,我们需要用LLM的输出作为下一环节的输入,而这个过程往往对LLM输出的格式有一定要求,比如JSON、XML、YAML、CSV、Markdown 表格和HTML 等比较常见的格…

JavaScript知识点4

1.解释一下这段JavaScript代码 var fruits ["Apple", "Orange", "Apple", "Mango"]; var a fruits.indexOf("Apple",-1); console.log("index"a); 输出的a值为-1,indexOf的第二个参数是-1&#xf…