RabbitMQ Nedir?
İngilizce: RabbitMQ
RabbitMQ, üretici ve tüketici uygulamalar arasında AMQP tabanlı kuyruklar ve exchange'ler kullanarak mesajları güvenilir biçimde ileten broker'dır.
RabbitMQ Nedir?
RabbitMQ, uygulamalar arasında mesaj taşıyan açık kaynaklı mesaj broker’ıdır. Bir servis işi doğrudan diğer servise yaptırmak yerine mesajı RabbitMQ’ya gönderir; tüketici servis uygun olduğunda mesajı kuyruktan alıp işler.
RabbitMQ’nun merkezinde exchange, queue ve binding kavramları vardır. Üretici mesajı exchange’e yollar. Exchange, routing key ve binding kurallarına göre mesajı bir veya birden fazla kuyruğa yönlendirir. Tüketici mesajı başarılı işlediğinde acknowledgment gönderir; işlenemeyen mesajlar yeniden denenebilir veya dead-letter kuyruğuna alınabilir.
Ne Zaman Kullanılır?
- E-posta, SMS, fatura üretimi veya görsel işleme gibi arka plan işleri
- Sipariş sonrası stok, muhasebe ve kargo işlemlerini ayırma
- Geçici yoğunlukta istekleri kuyruklayarak servisleri koruma
- Retry ve dead-letter akışlarıyla hatalı işleri izleme
İş Dünyasında Kullanımı
RabbitMQ, güvenilir görev dağıtımı ve esnek yönlendirme gereken sistemlerde kullanışlıdır. Apache Kafka daha çok yüksek hacimli olay akışı ve uzun süreli event log senaryolarında öne çıkar; RabbitMQ ise iş kuyruğu, routing ve acknowledgment odaklı akışlarda daha sade olabilir.
Mesaj kuyruğu mimarisini doğru tasarlamak, Kafka veya RabbitMQ seçiminden önce işin teslim garantisi, sıralama ve tekrar deneme ihtiyaçlarını netleştirmeyi gerektirir.
İlgili Terimler
Celery, Python uygulamalarında e-posta, rapor, entegrasyon gibi uzun işleri kuyrukta asenkron çalıştıran görev sistemidir.
Apache KafkaApache Kafka, yüksek hacimli gerçek zamanlı veri akışlarını işlemek için tasarlanmış, dağıtık log tabanlı mesajlaşma platformudur.
Mesaj KuyruğuMesaj kuyruğu, servislerin birbirini beklemeden çalışması için mesajları sıraya alıp tüketicilere güvenilir biçimde iletir.
Mesaj Aracısı (Message Broker)Mesaj aracısı, servisler arasında olay ve görevleri kuyruklayıp yönlendiren, üreticiyle tüketiciyi ayıran ara katmandır.