
您好,blade-broker 我配置了mqtt接收数据限制read-buffer-size不起作用,一直是默认的8KB,设备发送超过8KB的mqtt数据包,物联网就接收不到了
一、该问题的重现步骤是什么?
1. sssss
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
read-buffer-size 不是包长限制哦(它是解包申请的内存大小,大包会多次申请),下面那个 10M 才是,你没收到数据跟这个配置是没关系的。这配置也不建议改(内存消耗会变大),就用默认的就行,除非消息都是特别大的。
你可以先用 mqttx 订阅这个 topic 看看到底是数据丢了还是数据解析出错。
你的数据是发送到 内置的 blade topic 上了还是自定义的?kafka 里面有数据没?
我们排查了一下,你这个 8k 的问题是因为 TDSql 的 getDeviceLoggerSTableSql,生成日志表的时候,消息默认最大长度是 8k,你可以先手动调整一下,后续版本我们会评估下,不过 td 最大只支持每行 16k 的长度,你这个得有 2~300k了,gzip 之后都会超,要么就得用 blob

mqttx 可以接收到消息,发送的topic是内置的,但是物联网平台中设备日志里面没有存储,没有使用kafka,我部署的是springboot版本的,我这边网关盒子会通过mqtt发送2000-3000多个物模型,经过我测试,一次发送306个物模型,会有日志,超过这个数量就不会有日志,306个物模型正好接近8kb,不知道什么原因
把你的物模型导出成json配置,然后再把你上报给mqtt的完整报文(json格式)连带导出的物模型配置一起发我们邮箱 bladejava@qq.com,我们后续也安排排查下,可能是tdengine的日志表的字段默认8k,超过后就无法写入了。
扫一扫访问 Blade技术社区 移动端