开发者社区 > 云原生 > 云消息队列 > 正文

你好,有个问题想咨询一下。接了MQTT的异步事件通知,昨天在测试时发现有几次OFFLINE没有监听?

你好,有个问题想咨询一下。接了MQTT的异步事件通知,昨天在测试时发现有几次OFFLINE没有监听到,能不能帮忙排查一下?

展开
收起
真的很搞笑 2023-05-30 13:45:08 117 0
3 条回答
写回答
取消 提交回答
  • CSDN博客专家,51CTO博主专家,多知名企业认证讲师&签约作者&培训讲师,特邀作者等,华为云专家,资深测试开发专家,金牌面试官,职场面试培训及规划师。

    【回答】 首先,保证你的网络是通的,即:没有处于离线状态;

    其次,按照以下方法排查:

    1、检查设备的网络连接状态:如果设备离线时网络连接不稳定,则可能无法及时接收到通知。因此,你可以检查一下设备离线时的网络连接状态,看看是否存在网络问题。

    2、检查设备的离线保护机制:MQTT设备通常都有离线保护机制,以确保在设备离线时不会消息过多,导致设备存储空间不足。你可以检查一下设备是否启用了离线保护机制,以及离线保护机制的具体设置情况。

    3、检查MQTT消息的发送频率:如果你的MQTT设备接收到的异步事件通知过于频繁,则可能会对设备的性能产生负面影响。因此,你可以检查一下设备接收到的异步事件通知的发送频率,看看是否存在问题。

    2023-05-30 16:38:46
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。
    1. 确认客户端和Broker的网络连接是否稳定。网络断连会导致事件丢失。
    2. 检查客户端的will消息功能是否正常。当客户端离线时,Broker应发布客户端的遗愿will消息。如果will消息没有配置或不工作,则离线事件会丢失。
    3. 确认客户端的离线事件重连功能是否启用。如果启用,离线事件可能在重连时被重复接收,这会造成丢失的假象。可以适当调整重连参数。
    4. Broker的消息丢失和服务质量QoS级别是否正确配置。较低的QoS等级会增加消息丢失的可能。
    5. there可能存在其他客户端或系统对消息总线进行订阅,这会导致部分消息被其他订阅者消费,造成事件丢失的假象。可以检查其他 Potential 用户。
    6. 检查客户端和Broker的日志,看是否记录了连接断开、会话丢失(session lost)的日志条目。这可以进一步确认和分析事件丢失的原因。
    7. 在测试过程中,可以适当降低发送频率或消息数量,减小网络和服务压力,稳定运行环境。过大的压力也会增加事件丢失的风险。
    2023-05-30 14:19:39
    赞同 展开评论 打赏
  • 可以按照以下方式排查下哈:

    检查订阅是否正确:确保您的MQTT客户端代码中正确订阅了OFFLINE事件主题。检查订阅代码是否存在错误,如主题名称拼写错误、订阅主题路径错误等。

    检查连接状态:确保您的MQTT客户端与MQTT Broker之间的连接状态良好。可以通过查看MQTT客户端的连接状态或日志来确认连接是否正常建立和保持。

    查看MQTT Broker配置:检查MQTT Broker的配置,确认是否存在相关设置或限制导致OFFLINE事件无法正常触发和发送。例如,查看MQTT Broker的Keep Alive设置、最大连接数限制等。

    检查网络环境:检查网络环境是否正常。确保MQTT客户端与MQTT Broker之间的网络连接畅通,没有网络故障或阻塞。

    检查消息传递质量(QoS)设置:确认您的MQTT客户端和MQTT Broker之间的消息传递质量设置是否正确。如果OFFLINE事件的QoS设置不正确,可能会导致消息传递失败或延迟。

    查看日志和错误信息:检查MQTT客户端的日志和错误信息,查看是否有相关的警告或错误提示。这些信息可能提供有关为什么OFFLINE事件没有被监听到的线索。

    2023-05-30 13:53:34
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载