RabbitMQ Serisi #6 — Gelişmiş Kuyruk Yönetimi

Cenker Kumlucalı
2 min readAug 22, 2023

--

Merhaba değerli okuyucular! RabbitMQ serisinin bu yeni bölümünde, kuyrukların gelişmiş yönetimi üzerinde duracağız. Bu yazıda, kuyrukların yaşam döngüsü, önceliklendirme, özel argümanlar ve tüketici yönlendirme gibi konulara dalmaya hazır olun.

1. Kuyruğun Yaşam Döngüsü

Bir kuyruk oluşturduğumuzda, aslında RabbitMQ üzerinde kalıcı bir yapı oluşturuyoruz. Ancak, kimi zaman bu kuyruğun yaşam döngüsü üzerinde daha fazla kontrol sahibi olmamız gerekebilir.

Kuyruk Süresi Sonu (TTL)

Kuyruklara bir “x-expires” argümanı ekleyerek, kuyruğun ne kadar süre sonra otomatik olarak silineceğini belirleyebiliriz.

var arguments = new Dictionary<string, object>();
arguments.Add("x-expires", 60000); // 1 dakika

channel.QueueDeclare("my-temporary-queue", false, false, false, arguments);

2. Mesaj Önceliklendirme

Kuyrukları oluştururken x-max-priority argümanını kullanarak belirli bir öncelik seviyesi tanımlayabiliriz.

var arguments = new Dictionary<string, object>();
arguments.Add("x-max-priority", 10);

channel.QueueDeclare("priority-queue", false, false, false, arguments);

3. Özel Argümanlar ve Eklentiler

RabbitMQ, özel argümanları destekleyerek kuyrukların özelliklerini genişletmemize olanak tanır. Örneğin, x-dead-letter-exchange argümanı ile ölü mektup takasını (Dead Letter Exchange) tanımlayabiliriz.

4. Tüketici Yönlendirme

Tüketici sayısı arttığında, belirli tüketicilere nasıl mesajlar yönlendirileceğini kontrol etmek önemlidir. Bu, x-single-active-consumer argümanıyla sağlanabilir.

5. Geri Basınç Kontrolü

Tüketicilerin çok fazla mesajı nasıl işleyeceğine dair bir geri basınç stratejisi tanımlamamız gerekebilir. Bu, basic.qos metoduyla gerçekleştirilir.

channel.BasicQos(0, 1, false);

Sonuç

Bu bölümde, RabbitMQ’nun sunduğu gelişmiş kuyruk yönetimi özelliklerini ele aldık. Bu özellikler, ölçeklenebilir ve esnek mesajlaşma sistemleri oluşturmanın anahtarıdır. İleri bölümlerde, daha derin konulara dalmaya ve RabbitMQ’nun zengin özelliklerini keşfetmeye devam edeceğiz. O zamana kadar, herkese iyi kodlamalar! 🚀

--

--

No responses yet