生产环境MQTT消息响应缓慢的故障排查

在充电桩项目的生产环境中,遇到了MQTT消息响应缓慢的问题。排查过程包括检查服务器日志、模拟现场环境、使用 MQTT 客户端验证消息传递。发现因多个客户端使用相同clientid导致消息漏传,解决方法是关闭多余的消费端进程,恢复正常。此问题在不同场景下重复出现,初期误判为网络问题,实际是消息消费冲突。在大数据量场景下,相同clientid策略可用于分散流量。
摘要由CSDN通过智能技术生成

原始地址
  生产环境的充电桩项目一直运行平稳,用户在H5页面上操作,扫描充电桩,而后可以支付,进入对应的界面可以控制该充电桩的放电、停电。

具体的控制流程为,用户在页面通过HTTPS协议与服务器进行交互,服务器接收到请求后,组装参数,发送消息到mqtt服务器(RabbitMQ),而后充电桩的Mqtt客户端即可收到该条消息。充电桩对页面的消息反馈刚好是一个相反的过程。

该项目上线后,消息的发送到硬件响应平均时间基本在2s左右(视当地的4G网络信号)。但一天下午,小区的客户反馈,整个过程变得特别慢,下单后放电成功,但页面迟迟不会跳转到放电展示的界面,而且点击页面停电按钮,也不会生效。

首先,查看服务器上的H5模块的日志,发现但凡是传入该模块Mqtt消息的,服务器上都已经成功处理,没有延迟的情况。所以怀疑是当地充电桩硬件的信号问题(此前不久曾发生某小区大规模4G无信号、弱信号的情况)。为了保险,在办公室里调试并安装了一套硬件设备,模拟线上的情况,发现下发,响应很及时,没有出现延迟的情况。所以当即让现场人员检查,但现场人员经过十几分钟测试,反应4G信号没有问题。

没办法,只能再次多次的在办公室进行问题复现,现场也有人员进行配合测试。结果确实发现有消息漏传到服务器的情况。即,上传成功的消息,服务器都处理成功,没有上传成功的,服务器没有处理,页面只能处于等待状态并进入后续的等待处理流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值