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

MQTT消息单包最大64k,但是我们现在有超过64k的数据,有的都到90k了,是什么原因呢?

MQTT消息单包最大64k,但是我们现在有超过64k的数据,有的都到90k了,也能正常收发,目前几个月了 也没发现丢数据 ,是什么原因呢?

展开
收起
真的很搞笑 2023-12-25 09:42:14 1133 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    尽管MQTT协议本身的最大报文尺寸为268435456字节,也就是大约256MB,但在实际应用中往往由于资源受限的客户端和服务端,可能无法处理这一长度的报文。在具体的实现中,例如开源的EMQ X服务器,消息最大限制是64KB。然而,您当前的情况是能够正常接收和发送超过64KB的数据,这可能是因为某些特定的环境或配置下,系统对报文大小的限制进行了放宽。总的来说,虽然您的使用情况目前没有出现问题,但不保证在未来也会一直保持这种状态,因为过大的数据包可能会导致网络拥堵、传输效率降低等问题。因此,如果有可能的话,建议将数据拆分成较小的部分进行发送。

    2023-12-26 14:49:56
    赞同 1 展开评论 打赏
  • 即使你的消息超过了MQTT规定的单包最大64K限制,但在实际应用中仍然能够正常收发,可能的原因有:

    • 客户端或服务端实现了消息分片和重组功能,将大消息自动分割成多个小消息进行发送和接收。
    • 网络环境较好,没有出现数据包丢失或乱序的情况,使得大消息能够完整传输。
    • 你的MQTT服务提供商可能在后台放宽了消息大小限制,但未在文档中明确说明。
    2023-12-25 16:39:46
    赞同 1 展开评论 打赏

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

相关产品

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

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载