Apache Kafka Nedir?

Merhabalar,

Bu gün size kısaca Apache Kafkadan bahsedeceğim. Nedir bu kafkanın olayını durumuna kısaca bakacak olursak;

Büyük verileri etkin bir şekilde kullanabilmemiz için iki önemli faktör vardır. Bunların birincisi verileri toplamak, ikincisi ise toplandığımız verileri analiz etmektir.

Kısaca Kafka, büyük veriler ile çalışabilen, ölçeklenebilir, dağıtık sistemlere uygun, anlık toplanan veriyi hızla ve hatasız bir biçimde aktarabilen bir mesajlaşma sistemidir.

Mesajlaşma sistemi: Verileri bir uygulamadan diğerine aktarmakla sorumlu olan sistemdir. Bu sayede uygulamalar verinin nasıl geldiği ile ilgilenmek yerine tüm konsantresini veriye ve yapması gereken işe verebilirler çünkü verilerin sisteme doğru gelip gelmediği ile mesajlaşma sistemleri ilgilenir. Dağıtık mimarili bir yapıda verinin kaynaktan hedefe aktarılmasında önemli olan ilk koşul verinin güvenilirliğidir. Veri kaynaktan hedefe aktarılırken her hangi bir bozulmaya uğramaması için mesaj kuyrukları (message queuing) kavramı kullanılır. Mesaj kuyrukları sayesinde aktarılacak veri bir sıraya alınır ve o sıraya göre aktarılırlar.

İki tür mesajlaşma kalıbı mevcuttur bunlar, Point to Point (Noktadan Noktaya) ve Publish-Subscribe (Yayın-Abone) ‘dır.

Point to Point: Mesajlar bir sıralanarak bir kuyruk oluşturur, kuyruktaki mesajlar sıra ile tüketici veya tüketiciler tarafından istenebilir. Ancak bir mesaj yalnızca bir tüketici tarafından tüketilebilir ve tüketildikten sonra kuyruktan silinir. Bu durum kuyruktaki tüm mesajlar için geçerlidir.

Publish-Subscribe: Yayınlama-abone olma sisteminde, mesajlar bir konuyla kalıcıdır. Noktadan noktaya sistemin aksine, tüketiciler bir veya daha fazla konuya abone olabilir ve o konudaki tüm mesajları tüketebilir. Yayınla-Abone olma sisteminde, mesaj üreticilerine yayıncılar, mesaj tüketicilere aboneler denir.

Kafka büyük veriyi idare edebilen ve bir uç noktadan diğerine mesajlar iletmenizi sağlayan dağıtık sistemlere uygun çalışabilen ve Publish-Subscribe (Yayın-Abone) yöntemini kullanan bir mesajlaşma sistemidir.
Kafka çevrimdışı ve çevrimiçi mesaj tüketimine uygundur. Kafka iletileri diskte kalıcıdır ve veri kaybını önlemek için küme içinde çoğaltılmıştır.

Kafka’nın Yararları neler?

Dağıtık, bölünmüş, çoğaltılmış ve hata toleransı yüksek olan bir araç olduğu için oldukça güvenilirdir.
Kafka mesajlaşma sistemi, işten vazgeçmeden kolayca ölçeklenir.
Kafka, mesajları diskte tutar.
Oldukça hızlıdır sıfır kesinti ve sıfır veri kaybını garanti eder dolayısıyla dayanıklılık özelliği vardır.
Ve tabi en önemlisi performans etkisidir. Kafka, publish-subscribe mesaj sistemi ile yüksek verimlilik sağlar. Bir çok terabyte seviyesinde ileti depolansa dahi yüksek performansını korur.

Kafka’yı nerelerde kullanabiliriz?

  • Apache Kafka, genellikle operasyonel veriler için kullanılmakta. (Doğrudan rakiplere, bir şirketin emek istatistiklerine, tedarikçilere, muhasebe verilerine ve ihtiyaç duyulan kaynakların projeksiyonuna ilişkin bilgiler, operasyonel verilere dahil edilebilir.)
    Bu, operasyonel verilerin merkezi olarak gönderilmesini sağlamak için dağıtılmış uygulamalardan istatistiklerin toplanmasını içerir.
  • Diğer bir kullanım alanı ise, log toplama ile ilgilidir. Birden çok hizmetten log toplamak ve bunları birden çok kişi için standart bir biçimde kullanılabilir kılmak için kullanılabilir.
  • Kafkanın ayrıca Spark Streaming ile birlikte de kullanılabilir, Spark Streaminig, verileri okur, işler, işlenmiş verileri yeni bir konuyla kullanıcıların ve uygulamaların kullanımına açar.
    Stream Processing (Akış işleme) bağlamında Kafka’nın dayanıklılığı büyük avantaj sağlar.