• 单例模式MQTT服务为什么会重复收到消息


    一开始,我写的MQTT并是不单例模式,用到申请,用完销毁。

    后来有一次需要转发300个设备的消息,cpu直接100%了,然后改为单例模式,这里顺便插一句,对方鉴权用的设备ID做用户名,然后对方收的永远只有第一个设备的数据(一开始没发现是第一个),于是这个问题断断续续绕了快一周(主要是大家手上都有事,不一定都有空)。

    所以这里其实是记录两个问题,第一个就是 单例模式的MQTT消息丢失,只有少部分接收成功,很有可能是鉴权导致的。

    第二个MQTT为什么会收到重复的数据,是因为习惯了之前的写法,在单例模式的时候,每写一个发布,就顺便写一个接收在那,忘记了事件会叠加,然后收到数据后,有几个地方绑了接收事件,就重复几遍数据。

    正确的姿势是,初始化的时候,声明一个接收,然后就不管了,需要发布的地方直接发布,不用管接收

    原谅我日志越来越粗糙,实在是没有空

  • 相关阅读:
    sqlserver 保留2位小数的写法
    Kettle 数据预览 乱码
    finereport 数据分析预览 居中 参数分割 自动查询
    Unable to locate value meta plugin of type (id)
    mysql8.0
    MySQL 搭建MHA高可用架构
    Java性能调优工具
    helm 部署etcd
    阿里云pv 使用
    ldconfig 引起的事故
  • 原文地址:https://www.cnblogs.com/bamboo-zhang/p/12177404.html
Copyright © 2020-2023  润新知