Topik ini menjelaskan mengapa operasi BatchReceiveMessage dan BatchPeekMessage mengembalikan lebih sedikit pesan daripada jumlah pesan yang terlihat dalam sebuah antrian.
Layanan antrian dari Simple Message Queue (formerly MNS) menggunakan arsitektur tanpa server dan terdiri atas banyak node komputasi serta node data. Jumlah node tersebut dapat berkisar dari puluhan hingga ratusan, disesuaikan berdasarkan lalu lintas keseluruhan dan volume pesan di Wilayah tersebut. Pesan-pesan berurutan mungkin disimpan di node yang berbeda; misalnya, Pesan 1 berada di Node 1 dan Pesan 2 berada di Node 2.
BatchReceiveMessage
Saat Anda mengambil pesan menggunakan operasi BatchReceiveMessage, load balancing terlebih dahulu memilih sebuah node data, lalu mencoba mengambil hingga 'n' pesan dalam satu batch. Jika ditemukan pesan, pesan tersebut langsung dikembalikan kepada Anda. Jika tidak ada pesan yang ditemukan, load balancing memilih node data lain dan mengulangi operasi tersebut. Desain pengembalian cepat ini menjamin kinerja operasi. Selama Anda terus memanggil operasi BatchReceiveMessage, semua pesan pada akhirnya akan dikonsumsi.
Sebagai contoh, sebuah antrian memiliki 11 pesan. Anda memanggil operasi BatchReceiveMessage sekali untuk membaca maksimal 15 pesan. Namun, ke-11 pesan tersebut tersebar di beberapa node data. Operasi BatchReceiveMessage menemukan node mana pun yang memiliki pesan dan segera mengembalikannya, sehingga jumlah pesan yang dikembalikan mungkin kurang dari 11.
BatchPeekMessage
Operasi ini menggunakan mekanisme yang sama dengan BatchReceiveMessage. Perbedaan utamanya adalah sebagai berikut:
BatchPeekMessage: Memungkinkan konsumen melihat pesan dalam satu batch. Informasi yang dikembalikan tidak mencakupReceiptHandle.BatchReceiveMessage: Memungkinkan konsumen mengonsumsi pesan dari sebuah antrian dalam satu batch.