全部产品
Search
文档中心

ApsaraMQ for RabbitMQ:Konsumsi Berurutan

更新时间:Oct 29, 2025

Topik ini menjelaskan implementasi konsumsi berurutan dalam ApsaraMQ for RabbitMQ. Topik ini juga mencakup perbedaan dari RabbitMQ open source, cara mengonfigurasi fitur tersebut, serta batasannya.

Cara kerja konsumsi berurutan pesan

Untuk mencapai konsumsi berurutan di RabbitMQ, dua kondisi harus dipenuhi: penyimpanan berurutan dan konsumen tunggal.

Implementasi RabbitMQ open source

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

  • Penyimpanan berurutan: Di RabbitMQ open source, pesan dalam antrian yang sama dibaca dan ditulis pada node tunggal. Hal ini secara inheren memastikan bahwa pesan disimpan secara berurutan.

Implementasikan konsumsi berurutan di ApsaraMQ for RabbitMQ

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

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

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

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

Dalam hal ini, node komputasi sementara menyimpan cache beberapa pesan karena pesan diurutkan di node komputasi. Ketika konsumen aktif mencoba mendapatkan pesan dari beberapa node komputasi, pesan yang di-cache dimasukkan kembali ke antrian.

Manfaat ApsaraMQ for RabbitMQ

  • Konkurensi Tinggi dan Skalabilitas: ApsaraMQ for RabbitMQ memastikan bahwa data ditulis dengan konkurensi tinggi dalam sistem multi-partisi. ApsaraMQ for RabbitMQ juga memberikan kemampuan skala keluar yang sangat baik.

  • Ketersediaan Tinggi: ApsaraMQ for RabbitMQ memungkinkan beberapa konsumen terhubung ke beberapa node komputasi untuk ketersediaan tinggi. Jika salah satu konsumen atau node komputasi gagal, sistem dapat dengan cepat beralih layanan ke node lain.

Metode konfigurasi

Untuk mengaktifkan konsumsi berurutan, Anda dapat mengonfigurasi antrian untuk menggunakan mode Single Active Consumer. Saat membuat antrian, atur parameter x-single-active-consumer menjadi true.

Penting

Setelah mengaktifkan mode konsumen aktif tunggal, broker akan mengirimkan pesan kepada konsumen setelah mengurutkan pesan. Ini dapat mengurangi laju konsumsi pesan. Kami menyarankan Anda mengevaluasi apakah mode konsumen aktif tunggal diperlukan sebelum mengaktifkan mode tersebut.