すべてのプロダクト
Search
ドキュメントセンター

:バッチで管理されるメッセージの最大数と最大サイズとは?

最終更新日:Jan 13, 2025

Simple Message Queue(SMQ、旧称 MNS)は、メッセージをバッチで送受信するための API を提供します。 これにより、API が 1 秒あたりのクエリ数(QPS)を多く処理し、リクエスト数を減らすことができるため、コストが削減されます。

メッセージのバッチ送信

BatchSendMessage API は、一度に最大 16 件のメッセージを送信でき、合計サイズは 64 KB を超えることはできません。

  • デフォルトでは、メッセージは Base64 でエンコードされます。 Base64 でエンコードされたメッセージ本文は、元のメッセージ本文よりも大きくなります。 そのため、元のメッセージの合計サイズは 47 KB を超えることはできません。

  • または、次のコマンドを実行して元のメッセージ本文を送信することもできます。

    message.setMessageBody("message_body", Message.MessageBodyType.RAW_STRING); // 元のメッセージ本文を送信する
  • 64 KB を超えるメッセージを送信するには、特大メッセージの送信を参照してください。

メッセージのバッチ受信

BatchReceiveMessage API は、一度に最大 16 件のメッセージを受信できます。 ただし、場合によっては、上限に達していなくても、受信メッセージの数が使用可能なメッセージの数よりも少なくなります。

10 件のメッセージ(m1、m2、m3、m4、m5、m6、m7、m8、m9、m10)が順番に送信されるとします。 BatchReceiveMessage API を初めて呼び出すと、5 つのメッセージ(m2、m4、m6、m8、m10)のみが受信されます。 次に、BatchReceiveMessage API を 2 回目に呼び出すと、残りの 5 つのメッセージ(m1、m3、m5、m7、m9)が受信されます。

これは、SMQ が複数のノードにデータを格納しますが、各バッチ操作はノード全体ではなく単一のノードからのみデータを受信するためです。 そのため、各バッチで受信されるメッセージはストレージノードによって決定され、順番通りではない場合があります。