Mesaj kuyruğu (RabbitMQ, Kafka) ne zaman kullanılır?
Cevap
Mesaj kuyruğu, servisleri birbirinden ayırır ve işleri asenkron hale getirir.
- Yavaş işleri arka plana almak: e-posta gönderimi, görsel işleme, rapor üretimi
- Ani yükleri sönümlemek: üretici hızlı, tüketici kendi hızında çalışır
- Servisleri gevşek bağlamak: sipariş servisi, faturalama ve stok servislerini doğrudan çağırmaz, olay yayınlar
RabbitMQ klasik bir mesaj aracısıdır; yönlendirme kuralları güçlüdür, tüketilen mesaj kuyruktan silinir. Kafka dağıtık bir log'dur; mesajlar saklanır, birden çok tüketici grubu aynı akışı farklı hızlarda okuyabilir ve geçmişe dönük yeniden işleyebilir.
Dikkat edilmesi gerekenler: en az bir kez teslim (at-least-once) nedeniyle tüketiciler idempotent olmalı, işlenemeyen mesajlar için dead-letter kuyruğu kurulmalı.
İlgili Sistem Tasarımı soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.