Simple Message Queue (SMQ, sebelumnya MNS) menyediakan API untuk mengirim dan menerima pesan dalam batch. Hal ini mengurangi biaya karena API dapat menangani lebih banyak permintaan per detik (QPS) dengan lebih sedikit permintaan.
Kirim pesan secara batch
API BatchSendMessage dapat mengirim hingga 16 pesan sekaligus, dengan total ukuran tidak melebihi 64 KB.
Secara default, pesan di-enkode menggunakan Base64. Pesan yang di-enkode Base64 lebih besar daripada isi pesan aslinya. Oleh karena itu, total ukuran pesan asli tidak boleh melebihi 47 KB.
Sebagai alternatif, Anda dapat menjalankan perintah berikut untuk mengirim isi pesan asli:
message.setMessageBody("message_body", Message.MessageBodyType.RAW_STRING);Untuk mengirim pesan yang lebih besar dari 64 KB, lihat Transmisikan pesan berukuran besar.
Terima pesan secara batch
API BatchReceiveMessage dapat menerima hingga 16 pesan sekaligus. Namun, dalam beberapa kasus, jumlah pesan yang diterima lebih kecil daripada jumlah pesan yang tersedia meskipun batas maksimum belum tercapai.
Misalkan 10 pesan (m1, m2, m3, m4, m5, m6, m7, m8, m9, dan m10) dikirim secara berurutan. Saat Anda memanggil API BatchReceiveMessage untuk pertama kalinya, Anda hanya menerima lima pesan (m2, m4, m6, m8, dan m10). Kemudian, saat Anda memanggil API BatchReceiveMessage untuk kedua kalinya, Anda menerima lima pesan lainnya (m1, m3, m5, m7, dan m9).
Hal ini disebabkan oleh SMQ yang menyimpan data pada beberapa node, tetapi setiap operasi batch hanya menerima data dari satu node saja, bukan di seluruh node. Oleh karena itu, pesan yang diterima dalam setiap batch ditentukan oleh node penyimpanan dan mungkin tidak berurutan.