All Products
Search
Document Center

ApsaraMQ for RabbitMQ:Antrian eksklusif

Last Updated:Jun 28, 2025

Jika Anda ingin sebuah antrian hanya terlihat oleh Anda sendiri, Anda dapat menggunakan fitur antrian eksklusif yang disediakan oleh ApsaraMQ for RabbitMQ untuk mendeklarasikan antrian tertentu sebagai eksklusif.

Apa itu antrian eksklusif?

Antrian eksklusif memiliki karakteristik berikut:

  • Antrian eksklusif hanya terlihat oleh saluran dalam koneksi pertama di mana Anda mendeklarasikan antrian tersebut sebagai eksklusif.

    Setelah sebuah antrian dideklarasikan eksklusif dalam satu koneksi, Anda tidak dapat mendeklarasikan antrian eksklusif dengan nama yang sama di koneksi lainnya. Saluran di koneksi lainnya juga tidak dapat mengakses antrian eksklusif tersebut.

  • Antrian eksklusif secara otomatis dihapus jika koneksi dari antrian tersebut ditutup.

    Bahkan jika Anda menyetel parameter durable ke true pada klien untuk mendeklarasikan antrian eksklusif sebagai persisten, antrian tersebut akan tetap dihapus dan data di dalam antrian dibersihkan jika koneksi dari antrian tersebut ditutup.

Skenario umum

Antrian eksklusif cocok untuk skenario di mana produsen dan konsumen berada dalam proses yang sama dan tidak sensitif terhadap kehilangan data.

Risiko

Antrian eksklusif dihapus dan data di dalam antrian dibersihkan jika koneksi dari antrian tersebut secara tidak sengaja ditutup dalam salah satu skenario berikut:

  • Pemanggilan metode Close() oleh klien.

  • Pembaruan atau restart abnormal Broker.

  • Timeout detak jantung koneksi.

  • Kesalahan lainnya seperti pembatasan.

Berhati-hatilah saat menggunakan antrian eksklusif.

Cara mendeklarasikan antrian eksklusif

Anda dapat menggunakan metode channel.queueDeclare dan menyetel parameter exclusive ke true untuk mendeklarasikan antrian eksklusif dalam program klien.

Kode contoh berikut memberikan ilustrasi tentang cara mendeklarasikan antrian eksklusif dalam Java:

/**
* queue: nama antrian. 
* durable: menentukan apakah antrian akan dipertahankan. 
* exclusive: menentukan apakah antrian bersifat eksklusif. 
* autoDelete: menentukan apakah antrian akan dihapus secara otomatis. 
* arguments: parameter lainnya. 
*/
channel.queueDeclare("queueName", true, true, false, null);