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

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

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

展开
收起
真的很搞笑 2023-12-25 09:42:14 726 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 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

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