Öncelik kuyrukları, adından da anlaşılacağı gibi, daha yüksek önceliğe sahip mesajların tüketilmesine öncelik verir.
RabbitMQ öncelik kuyrukları için dikkat edilmesi gereken noktalar:
- Öncelik kuyrukları, yetersiz tüketici olduğunda ve tüketim zamanında gerçekleştirilemediğinde yalnızca etkilidir.
- Öncelik kuyrukları, sadece RabbitMQ sürümü 3.5'ten sonra desteklenmektedir.
RabbitMQ Öncelik Kuyruklarını Kullanma Adımları
- Kuyruğun maksimum önceliğini ayarlayın.
- Mesajın önceliğini ayarlayın.
Kuyruğun Maksimum Önceliğini Ayarlama
Kuyruğu bildirirken, kuyruğun maksimum önceliğini kuyruk özelliği (x-max-priority) aracılığıyla ayarlayın. Öncelik için maksimum değer 255'tir ve önerilen değer 1 ile 10 arasında bir değer belirtmektir. Golang'da Ayarlama:
// Kuyruk özellikleri
props := make(map[string]interface{})
// Kuyruğun maksimum önceliğini belirle
props["x-max-priority"] = 10
// Kuyruğu tanımla
q, err := ch.QueueDeclare(
"tizi365.hello", // Kuyruk adı
true, // Kalıcı kuyruk
false, // Kullanılmadığında sil
false, // Özel
false, // Bekleme yapma
props, // Kuyruk özelliklerini ayarla
)
İpucu: Diğer dillerdeki ayarlama yöntemi benzerdir.
Mesaj Önceliğini Ayarlama
Golang'da Ayarlama:
err = ch.Publish(
"tizi365", // Değişim
"", // Yönlendirme anahtarı
false,
false,
amqp.Publishing{
Priority:5, // Mesaj önceliğini belirle
DeliveryMode:2, // Mesaj teslim modu, kalıcı için 2, kalıcı olmayan için 1
ContentType: "text/plain",
Body: []byte(body),
})