记一次mqtt断开连接的线上问题

使用的mqtt服务器:emqx,
使用的客户端连接:vertx,
日志大小有900M,我是用PilotEdit Lite打开的。

查看日志,发现有358条线程堵塞的异常
image.png

查看具体信息,发现堵塞时间越来越长,从几秒到30多秒;
而我的mqttclient和 emqx服务器的心跳是30秒, 堵塞造成心跳没法维持,连接断开。
记一次mqtt断开连接的线上问题_第1张图片

查看阻塞位置代码:
记一次mqtt断开连接的线上问题_第2张图片

坑爹,发现之前的人写了个死循环
如果序号都递增,不会有问题
如果序号有间隔,如已存在两条记录,编号001、003、那么新插入第三条时,期望编码为003,但是003已存在,循环里没有递增编号,就会死循环。

你可能感兴趣的:(javamqtt)