Apache Kafka Nedir?
İngilizce: Apache Kafka
Apache Kafka, yüksek hacimli gerçek zamanlı veri akışlarını işlemek için tasarlanmış, dağıtık log tabanlı mesajlaşma platformudur.
Apache Kafka Nedir?
Apache Kafka, olayları sıraya koyup kısa süreli aktarmaktan daha fazlasını yapan, dağıtık bir event streaming platformudur. Mesajlar topic adı verilen akışlara yazılır; tüketiciler bu akışları kendi hızlarında okuyarak sipariş, stok, log veya sensör verisi gibi olayları işler.
Kafka’nın temelinde broker, topic, partition, producer ve consumer kavramları bulunur. Producer mesajı belirli bir topic’e yazar, topic partition’lara bölünerek paralel işlenebilir, broker’lar veriyi çoğaltır ve consumer grupları hangi offset’e kadar okuduklarını takip eder. Bu yapı hem yüksek hacim hem de olay geçmişini belirli bir süre saklama ihtiyacı için uygundur.
İş Senaryoları
- Sipariş oluşturuldu, ödeme alındı, kargo çıktı gibi olayların sistemler arasında taşınması
- Veritabanı değişikliklerinin başka sistemlere aktarılması
- Log, metrik ve kullanıcı davranışı akışlarının gerçek zamanlı işlenmesi
- Mikroservisler arasında gevşek bağlı iletişim kurulması
Kafka basit bir kuyruk yerine işletilmesi gereken bir altyapıdır: şema yönetimi, partition tasarımı, yeniden deneme, idempotency ve dead-letter akışları baştan planlanmalıdır. Daha küçük ihtiyaçlarda klasik mesaj kuyruğu, olay odaklı tasarımda event-driven ve hatalı kayıt yönetiminde dead-letter queue kavramları önemlidir.
İlgili Terimler
Data pipeline, veriyi kaynaktan alıp temizleyen, dönüştüren ve raporlama ya da analitik için hedef sisteme taşıyan otomatik akıştır.
Dead Letter QueueDead letter queue, işlenemeyen mesajları ana kuyruktan ayırarak hata incelemesi, yeniden deneme ve veri kaybını önlemeye yardım eder.
Olay Güdümlü OtomasyonOlay güdümlü otomasyon, kullanıcı davranışı, sistem kaydı veya entegrasyon mesajı oluştuğunda iş akışını anında başlatan yaklaşımdır.
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.
MQTTMQTT, IoT cihazlarının düşük bant genişliğiyle broker üzerinden konu bazlı yayın-abone mesajlaşması yapmasını sağlayan hafif protokoldür.
Yayınla-Abone Ol (Pub/Sub)Pub/Sub, yayıncıların olayları kanallara gönderdiği ve abonelerin ilgilendikleri mesajları aldığı iletişim modelidir.
RabbitMQRabbitMQ, üretici ve tüketici uygulamalar arasında AMQP tabanlı kuyruklar ve exchange'ler kullanarak mesajları güvenilir biçimde ileten broker'dır.