客户端收不到broker心跳包断开连接且无法重连

不会,MQTT 是有飞行窗口的,具体可以看下 飞行窗口和消息队列 这篇文档。

好的。谢谢

qos2消耗有点大,必须可到达是不是用qos1就行了,单线程肯定不行的,消息处理异步多线程处理就好了

qos1和qos2两者的性能差异在哪里?
qos1可能会存在消息重复的情况。
现在已经调整了方案,接收消息和处理消息使用不同的线程去处理,接收消息线程将接收的消息转发到kafka,处理消息的线程去kafka拿消息进行处理。客户端部署了两个节点,这样应该很大程度增大了客户端的消费能力