MQTT消息单包最大64k,但是我们现在有超过64k的数据,有的都到90k了,也能正常收发,目前几个月了 也没发现丢数据 ,是什么原因呢?
尽管MQTT协议本身的最大报文尺寸为268435456字节,也就是大约256MB,但在实际应用中往往由于资源受限的客户端和服务端,可能无法处理这一长度的报文。在具体的实现中,例如开源的EMQ X服务器,消息最大限制是64KB。然而,您当前的情况是能够正常接收和发送超过64KB的数据,这可能是因为某些特定的环境或配置下,系统对报文大小的限制进行了放宽。总的来说,虽然您的使用情况目前没有出现问题,但不保证在未来也会一直保持这种状态,因为过大的数据包可能会导致网络拥堵、传输效率降低等问题。因此,如果有可能的话,建议将数据拆分成较小的部分进行发送。
即使你的消息超过了MQTT规定的单包最大64K限制,但在实际应用中仍然能够正常收发,可能的原因有:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/