Kullanım durumları ve gerçek zamanlı örneklerle Kafka

May 09 2023
Apache Kafka, yüksek hacimli verileri gerçek zamanlı olarak işlemek için tasarlanmış açık kaynaklı bir dağıtılmış akış platformudur ve bu da onu gerçek zamanlı veri boru hatları, akış uygulamaları ve olay güdümlü mimariler oluşturmak için ideal bir platform haline getirir. Kullanım Durumları: Gerçek Zamanlı Veri Kanalları Kafka'nın en yaygın kullanım durumlarından biri, gerçek zamanlı veri boru hatları oluşturmaktır.

Apache Kafka, yüksek hacimli verileri gerçek zamanlı olarak işlemek için tasarlanmış açık kaynaklı bir dağıtılmış akış platformudur ve bu da onu gerçek zamanlı veri boru hatları, akış uygulamaları ve olay güdümlü mimariler oluşturmak için ideal bir platform haline getirir.

Kullanım Durumları:

Gerçek Zamanlı Veri Ardışık Düzenleri

Kafka'nın en yaygın kullanım durumlarından biri, gerçek zamanlı veri boru hatları oluşturmaktır. Örneğin, Kafka sensörlerden, günlük dosyalarından, sosyal medya platformlarından ve diğer kaynaklardan veri toplamak ve bunları veri ambarlarına, makine öğrenimi platformlarına ve diğer hedeflere aktarmak için kullanılabilir.

Mesajlaşma Sistemleri

Kafka , uygulamalar ve hizmetler arasında hızlı ve verimli mesaj iletimi sağlayan bir mesajlaşma sistemi olarak da kullanılabilir. Örneğin, Kafka sohbet uygulamalarını, e-posta sistemlerini ve diğer gerçek zamanlı iletişim sistemlerini güçlendirmek için kullanılabilir.

Akış İşleme

Kafka'nın Apache Flink ve Apache Spark Streaming gibi akış işleme çerçevelerine verdiği destek, gerçek zamanlı veri işleme ve analizine olanak tanır. Örneğin, Kafka, gerçek zamanlı dolandırıcılık tespit sistemleri, gerçek zamanlı öneri motorları ve gerçek zamanlı duygu analizi sistemleri oluşturmak için kullanılabilir.

Olaya Yönelik Mimari

Kafka'nın olaya dayalı mimari desteği, onu karmaşık, olaya dayalı uygulamalar oluşturmak için ideal bir seçim haline getirir. Kafka ile olaylar gerçek zamanlı olarak üretilebilir, tüketilebilir ve işlenebilir. Örneğin, Kafka , olaya dayalı mikro hizmetler mimarileri, IoT platformları ve diğer olaya dayalı sistemler oluşturmak için kullanılabilir.

Günlük Toplama

Kafka, günlük toplama için de kullanılabilir ve birden çok kaynaktan günlüklerin toplanmasına, depolanmasına ve analizine olanak tanır. Örneğin, Kafka web sunucularından, veritabanlarından ve diğer sistemlerden günlükleri toplamak ve analiz etmek için kullanılabilir.

Kafka'nın temel bileşenleri

Kafka Konusu:

  • Konu, üreticiler tarafından iletilerin yayınlandığı ve tüketiciler tarafından iletilerin tüketildiği bir veri akışı için mantıksal bir addır.
  • Bir Kafka konusu, bir Kafka kümesinde depolanan bir veya daha fazla bölüme ayrılmıştır.

Aracı, bir veya daha fazla Kafka bölümünü depolayan ve yöneten tek bir Kafka sunucusu örneğidir. Bir Kafka kümesi, Kafka konularının depolanmasını ve işlenmesini yönetmek için birlikte çalışan bir veya daha fazla aracıdan oluşur.

Üretici ve Tüketici:

Üretici bir kafka konusuna veri üretir. Üreticiler konulara paralel olarak veri yazabilir ve Kafka, verilerin bölümler arasında eşit olarak dağıtılmasını sağlar.
Tüketici, bir veya daha fazla Kafka konusundan veri tüketir. Tüketiciler konulara abone olur ve bölümlerden veri okur. Kafka, bir gruptan yalnızca bir tüketicinin herhangi bir zamanda bir bölümden veri almasını sağlar.

bölümler:

  • Kafka konuları, değiştirilemez bir sırayla (değiştirilemez) mesajlar içeren bir dizi bölüme ayrılmıştır.
  • Bir bölümdeki her mesaj, benzersiz ofseti ile atanır ve tanımlanır.
  • Bir konunun birden çok bölüm günlüğü de olabilir. Bu, birden çok tüketicinin bir konudan paralel olarak okumasına olanak tanır.

Bölümlerdeki mesajların her birine benzersiz (bölüm başına) ve ofset adı verilen sıralı bir kimlik atanır.

Tüketici Grubu:

Tüketici grubu, Kafka konularından veri tüketmek için birlikte çalışan bir veya daha fazla tüketici grubudur.

çoğaltma:

Çoğaltma, verilerin birden çok kopyasını oluşturma işlemidir. Çoğaltma, bir aracı (düğüm) başarısız olursa veya kullanılamaz hale gelirse, o aracıda depolanan verilerin, aynı verilerin bir kopyasına sahip olan diğer aracılardan kurtarılabilmesini sağlar.

Kafka API'leri

Kafka'nın dört temel API'si vardır:

Yapımcı API'si, bir uygulamanın bir veya daha fazla Kafka konusuna bir kayıt akışı yayınlamasına izin verir.

Tüketici API'si, bir uygulamanın bir veya daha fazla konuya abone olmasına ve kayıt akışını işlemesine izin verir.

Akışlar API'si , bir uygulamanın, bir veya daha fazla konudan bir girdi akışı tüketerek ve bir veya daha fazla çıktı konusuna bir çıktı akışı üreterek, girdi akışlarını etkili bir şekilde çıktı akışlarına dönüştürerek bir akış işlemcisi olarak hareket etmesine olanak tanır.

Bağlayıcı API, Kafka konularını mevcut uygulamalara veya veri sistemlerine bağlayan yeniden kullanılabilir üreticiler veya tüketiciler oluşturmaya ve çalıştırmaya olanak tanır. Örneğin, ilişkisel bir veritabanına yönelik bir bağlayıcı, bir tablodaki her değişikliği yakalayabilir.

Gerçek Dünya Örnekleri

  1. LinkedIn: LinkedIn, gerçek zamanlı kullanıcı etkinliği verilerini işlemek ve yayınlamak için Kafka'yı kullanır. Platform günde 2 trilyondan fazla mesaj üretiyor ve Kafka, gerçek zamanlı işleme ve analize izin vererek bu devasa miktardaki verinin yönetilmesine yardımcı oluyor.
  2. Uber: Uber, gerçek zamanlı veri akışlarını yönetmek için Kafka'yı kullanır. Kafka, Uber'in gerçek zamanlı konum verileri, yolculuk verileri ve ödeme verileri dahil olmak üzere şirketin sürücü ve yolcu uygulamaları tarafından oluşturulan veri akışını yönetmesine yardımcı olur.
  3. Netflix: Netflix, veri boru hatlarını yönetmek ve mikro hizmetleri arasında veri akışı sağlamak için Kafka'yı kullanır. Kafka, Netflix'in farklı hizmetler arasındaki veri akışını yönetmesine yardımcı olarak her hizmetin, kullanıcılarına sorunsuz bir akış deneyimi sağlamak için ihtiyaç duyduğu verilere erişmesini sağlar.
  4. Airbnb: Airbnb, olaya dayalı mimarisini güçlendirmek için Kafka'yı kullanıyor. Kafka, Airbnb'nin kullanıcıları ve hizmetleri tarafından oluşturulan olay akışını yönetmesine yardımcı olarak kişiselleştirilmiş öneriler ve sorunsuz bir kullanıcı deneyimi sunmasına olanak tanır.
  5. Twitter: Twitter, gerçek zamanlı sosyal medya verilerini yönetmek için Kafka'yı kullanır. Kafka, Twitter'ın kullanıcıları tarafından oluşturulan büyük miktarda veriyi yönetmesine yardımcı olarak, reklamverenlerine ve ortaklarına gerçek zamanlı içgörüler ve analizler sağlamasına olanak tanır.

Spring Boot ile Spring Security rol tabanlı erişim

JWT ile Bahar Güvenliği Kimlik Doğrulaması ve Yetkilendirmesi

Bahar AOP öğreticisi

Bahar Önyükleme Günlüğü Eğitimi

Spring Boot'da Merkezi Yapılandırma

İlkbahar Önyüklemesinde Özel Doğrulamalar

javinpaul Domenico Nicoli Trey Huffine Mehmet Arsl Mehmet Özkaya Eğitim Ekibi