2017-08-15 10 views
0

私のストレージキューに次のエラーが表示されます(BLOBではありません - 私のC++アプリケーションからAzureストレージにメッセージをプッシュすると、 :Azureキューのボディが大きすぎ、最大許容限度を超えています

リクエストボディが大きすぎ、最大許容値を超えています。

私は恐らくjsonを減らす必要があることを知っていますが、他に何か提案がありますか? (増加メッセージサイズのようにどこか?)

答えて

1

Azureストレージキュー内のメッセージの最大サイズある64キロバイト48キロバイト Base64エンコードを使用)、最新のAzureストレージサービスの制限文書などに基づいて以下。

これは設定できません。現時点では、Azureのサポートも要求に応じてサイズを増やすことはありません。

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

私は、例えば、あなたのJSONメッセージのサイズを小さくすることができ提案しますJSON minify

+2

もう1つ追加する:AzureはUTF-16エンコーディングを使用してデータを格納します(つまり、各文字を格納するために2バイトを使用します)ので、メッセージサイズは基本的に32KBに制限されます。 –

+0

こんにちは@GauravMantri、AzureストレージキューメッセージがUTF-16エンコーディングを使用していると言及している文書はありますか?ありがとうございます – juvchan

+0

私はどこかでそれを読んで覚えていますが、私はそれを見つけることができません。しかし、私はそれを自分で試してみましたが、サイズが32KBを超える文字列/バイト配列に対してこのエラーが発生しました。 –

0

他にも述べたように、Azureストレージキューのメッセージサイズ制限(64K)は厳しい制限です。

エンコード以外に、この制限を回避する最も一般的なパターンは、ではありません。キューメッセージにペイロードを格納します。 Blobストレージのようなものに格納し、メッセージタイプ&メタデータ(必要な場合)と、処理するペイロードを含むBLOBを指すURIだけを格納します。

このパターンに従い、ペイロードにBLOBストレージを使用することで、有効なペイロードサイズは4 TB以上になります。また、必要に応じてペイロードを保持する機能もあります(キューメッセージは処理後に削除されます)。

関連する問題