Antrian prioritas, seperti namanya, memberikan prioritas kepada pesan dengan prioritas yang lebih tinggi untuk dikonsumsi.
Hal-hal yang perlu diperhatikan untuk Antrian Prioritas RabbitMQ:
- Antrian prioritas hanya berlaku ketika ada jumlah konsumen yang tidak mencukupi dan konsumsi tidak dapat dilakukan dengan tepat waktu.
- Antrian prioritas hanya didukung setelah versi RabbitMQ 3.5.
Langkah-langkah Menggunakan Antrian Prioritas RabbitMQ
- Tetapkan prioritas maksimum dari antrian.
- Tetapkan prioritas dari pesan.
Tetapkan Prioritas Maksimum dari Antrian
Saar mendeklarasikan antrian, tetapkan prioritas maksimum dari antrian melalui properti antrian (x-max-priority). Nilai maksimum untuk prioritas adalah 255, dan disarankan untuk menetapkannya antara 1 dan 10. Penetapan pada Golang:
// Properti antrian
props := make(map[string]interface{})
// Tetapkan prioritas maksimum dari antrian
props["x-max-priority"] = 10
// Mendeklarasikan antrian
q, err := ch.QueueDeclare(
"tizi365.hello", // Nama antrian
true, // Antrian tahan lama
false, // Hapus ketika tidak digunakan
false, // Eksklusif
false, // Tidak menunggu
props, // Tetapkan properti antrian
)
Tip: Metode pengaturan dalam bahasa pemrograman lainnya serupa.
Tetapkan Prioritas Pesan
Penetapan pada Golang:
err = ch.Publish(
"tizi365", // Pertukaran
"", // Kunci routing
false,
false,
amqp.Publishing{
Priority:5, // Tetapkan prioritas pesan
DeliveryMode:2, // Mode pengiriman pesan, 1 untuk tidak persisten, 2 untuk persisten
ContentType: "text/plain",
Body: []byte(body),
})