321茄子 2023-10-09 10:43 采纳率: 0%
浏览 21

mqtt 丢失消息问题

请问大家有没有这个遇到过这种问题,mqtt一个客户端每间隔5分钟会向1075个主题各发送一条消息,发送消息是0秒的时候一起发送,都是在1秒内完成1075条消息的发送,我这边通过通配符订阅了1075个发布主题去接收消息,但每次只能收到1050个左右的消息,好像是丢了一些消息,首先主题是没有配错,因为发现过一些主题有时能收到消息,有时收不到消息,而发送的客户端是发送过的,emqx消息流入统计也是能对的上发送客户端发送的消息数量,请问是怎么回事呢?
#客户端发送数量:

img

emqx 消息流入看板:

img

我的代码

    @Override
    public void messageArrived(String topic, MqttMessage message) {
       
        try {
            if (topic.indexOf("dev/monitor/") != -1){
                // 主动上报
                TalIotMonitorHis monitorHis = new TalIotMonitorHis();
                monitorHis.setIotTopic(topic);
                monitorHis.setIotMsg(message.toString());
               TalIotGateway iotGateway = topicHand(topic);
               if (iotGateway!=null){
                   monitorHis.setGatewayId(iotGateway.getGatewayId());
               }
                monitorHisService.insertTalIotMonitorHis(monitorHis);
                if (iotGateway!=null && iotGateway.getProtocolType()!=null && iotGateway.getProtocolType().equals("0")){
                    analysisToolKit.talentKJsonDataHandler(iotGateway, com.alibaba.fastjson2.JSONObject.parseObject(message.toString()));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

入库数量:

img

img

  • 写回答

2条回答 默认 最新

  • 以免我忘记 2023-10-09 12:00
    关注

    1有可能是数据库写入速度跟不上,可以搞一个缓存,先接收后存储。
    2有可能是粘包了,两个数据被系统认为是一个。
    没有用过mqtt,仅供参考。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月9日

悬赏问题

  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?