在将消息从我的c ++应用程序推送到Azure存储时,我的存储队列(不是BLOB - 我知道其他人已经看到了这个blob)我收到以下错误:
请求正文太大,超出了允许的最大限制。
我知道我可能需要减少json,但还有其他建议吗? (如在某处增加消息大小?)
答案 0 :(得分:3)
基于最新Azure,Azure存储队列中的邮件的最大大小为 64KB ( 48 KB ,使用Base64编码时)存储服务限制文档如下。
它是不可配置的,目前Azure支持也不会根据请求增加大小。
https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#storage-limits
我建议你减少JSON消息的大小,例如JSON缩小
答案 1 :(得分:3)
正如其他人所说,Azure存储队列邮件大小限制(64K)是一个硬限制。
除了编码,压缩(缩小)等之外:解决此限制的最常见模式是不将有效负载存储在队列消息中;相反,将它存储在类似Blob存储的东西中,并且只存储消息类型&元数据(如果需要),以及指向包含要处理的有效负载的blob的URI。
通过遵循此模式,并使用blob存储为您的有效负载,您实际上有效负载大小为4+ TB。并且您还可以在需要时保留有效负载(而在处理后删除队列消息)。