Azure队列主体太大,超过了最大允许限制

use*_*324 5 azure azure-storage azure-storage-queues

将消息从我的c ++应用程序推送到Azure存储时,我的存储队列出现以下错误(不是BLOB-我知道其他人已经看到了blob):

请求正文太大,超过了最大允许限制。

我知道我可能需要将json缩小,但是还有其他建议吗?(如增加某处的消息大小?)

juv*_*han 5

根据最新的 Azure 存储服务限制文档,Azure 存储队列中消息的最大大小64KB(使用 Base64 编码时为48KB),如下所示。

它是不可配置的,目前 Azure 支持也不会根据要求增加大小。

https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#storage-limits

我会建议您减少 JSON 消息的大小,例如 JSON minify

  • 再补充一点:由于 Azure 使用 UTF-16 编码来存储数据(即使用 2 个字节来存储每个字符可以这么说),消息大小基本上限制为 32KB。 (2认同)

Dav*_*gon 5

正如其他人所述,Azure存储队列消息大小限制(64K)是一个硬限制。

除了编码,压缩(最小化)等以外,要解决此限制,最常见的模式是将有效负载存储在队列消息中。而是将其存储在类似Blob的存储中,并且仅存储消息类型和元数据(如果需要),以及指向包含要处理的有效负载的Blob的URI。

通过遵循此模式,并为有效负载使用Blob存储,您可以有效地将有效负载大小设置为4 TB以上。而且,如果需要,您还可以保留有效负载(而处理后队列消息将被删除)。