Ö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ı

  1. Kuyruğun maksimum önceliğini ayarlayın.
  2. 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),
	})