All Products
Search
Document Center

ApsaraMQ for RabbitMQ:Konsumsi terurut

Last Updated:Mar 08, 2026

Topik ini menjelaskan cara mengimplementasikan konsumsi terurut di ApsaraMQ for RabbitMQ, termasuk perbedaannya dengan RabbitMQ open source, cara mengonfigurasi fitur tersebut, serta batasan-batasannya.

Prinsip implementasi konsumsi terurut

Untuk mencapai konsumsi terurut di RabbitMQ, dua kondisi harus dipenuhi: penyimpanan terurut dan satu konsumen.

Implementasi RabbitMQ open source

  • Konsumen tunggal: RabbitMQ open source mendukung dua mode, yaitu Single Active Consumer dan Exclusive Consumer. Komunitas open source merekomendasikan mode Single Active Consumer.

  • Penyimpanan terurut: Di RabbitMQ open source, pesan dalam antrian yang sama dibaca dari dan ditulis ke satu node tunggal, sehingga memastikan pesan disimpan secara berurutan.

Implementasi di ApsaraMQ for RabbitMQ

  • Konsumen tunggal: ApsaraMQ for RabbitMQ mendukung mode Single Active Consumer yang direkomendasikan oleh komunitas open source.

  • Penyimpanan terurut: ApsaraMQ for RabbitMQ menggunakan arsitektur terdistribusi yang memisahkan penyimpanan dari komputasi. Pesan dalam satu antrian didistribusikan ke beberapa partisi di berbagai node. Namun, node komputasi membaca pesan dari partisi-partisi tersebut di node penyimpanan, melakukan pengurutan gabungan (merge sort), lalu mengirimkannya ke konsumen. Proses ini menghasilkan semantik konsumsi terurut yang setara dengan versi open source.

Implementasi konsumsi terurut dalam arsitektur terdistribusi dengan penyimpanan dan komputasi yang terpisah

image

Seperti yang ditunjukkan pada gambar sebelumnya, sebuah antrian dalam mode Single Active Consumer hanya memiliki satu koneksi aktif, sedangkan semua koneksi lainnya tidak aktif. Node komputasi yang menangani koneksi aktif tersebut menarik pesan dari seluruh node penyimpanan, mengurutkannya, lalu mengirimkannya ke konsumen.

Karena pengurutan pesan dilakukan di node komputasi, node tersebut sementara menyimpan beberapa pesan di cache. Jika koneksi aktif beralih (failover) ke node komputasi lain, pesan-pesan yang di-cache akan dimasukkan kembali ke antrian konsumsi.

Keuntungan ApsaraMQ for RabbitMQ

  • Konkurensi tinggi dan skalabilitas: ApsaraMQ for RabbitMQ menggunakan beberapa partisi untuk mendukung penulisan dengan konkurensi tinggi dan menyediakan kemampuan skalabilitas horizontal yang sangat baik.

  • Ketersediaan tinggi: ApsaraMQ for RabbitMQ menyediakan ketersediaan tinggi dengan memungkinkan beberapa konsumen terhubung ke berbagai node komputasi. Jika terjadi kegagalan pada konsumen atau node komputasi, sistem dapat segera beralih ke node yang sehat untuk memastikan kelangsungan layanan.

Cara mengaktifkan

Untuk mengaktifkan konsumsi terurut, konfigurasikan antrian agar menggunakan mode Single Active Consumer. Saat membuat antrian, atur parameter x-single-active-consumer ke true.

Penting

Saat mode ini diaktifkan, server mengurutkan pesan dalam antrian sebelum mengirimkannya ke konsumen. Proses ini dapat mengurangi laju konsumsi. Oleh karena itu, Anda harus mengevaluasi secara cermat apakah akan mengaktifkan fitur ini.

Batasan

Fitur ini hanya tersedia pada instans Edisi Enterprise, Platinum, dan Serverless.