Apache Kafka Eğitimi: Giriş, Kavramlar, İş Akışı, Araçlar, Uygulamalar

Yayınlanan: 2020-03-10

İçindekiler

Tanıtım

Bir mesajlaşma sistemi olarak Kafka'nın artan popülaritesi ile birçok şirket, sağlam bir Kafka becerileri bilgisine sahip profesyoneller talep ediyor ve bu noktada bir Apache Kafka Eğitimi kullanışlı oluyor. Veri toplama ve analiz için bir mesajlaşma sistemine ihtiyaç duyan Büyük Veri alanında muazzam miktarda veri kullanılmaktadır.

Kafka, gelişmiş aktarım hızı, doğal bölümleme ve çoğaltma ve yerleşik hata toleransı ile geleneksel mesaj aracısının verimli bir şekilde değiştirilmesidir ve onu büyük ölçekte mesaj işleme uygulamaları için uygun hale getirir. Bir Apache Kafka Eğitimi arıyorsanız , bu makale tam size göre.

Bu Apache Kafka Eğitiminin önemli çıkarımları

  • Mesajlaşma sistemleri kavramı
  • Apache Kafka'ya kısa bir giriş
  • Kafka kümesi ve Kafka mimarisi ile ilgili kavramlar
  • Kafka mesajlaşma iş akışının kısa açıklaması
  • Önemli Kafka araçlarına genel bakış
  • Apache Kafka vakalarını ve uygulamalarını kullanın

Ayrıca şunu da öğrenin: Yeni Başlayanlar İçin Apache Spark Akış Eğitimi

Mesajlaşma sistemlerine kısa bir genel bakış

Bir mesajlaşma sisteminin ana işlevi, bir uygulamadan diğerine veri aktarımına izin vermektir; sistem, uygulamaların veri paylaşımı ve iletimi sürecinde duraklamadan sadece veriye odaklanmasını sağlar. İki tür mesajlaşma sistemi vardır:

1. Noktadan noktaya mesajlaşma sistemi

Bu sistemde mesajları üretenlere gönderen, tüketenlere alıcı denir. Bu etki alanında, mesajlar, kuyruk olarak bilinen bir hedef aracılığıyla değiştirilir; gönderenler veya üreticiler kuyruğa mesajları üretir ve mesajlar kuyruktan alıcılar tarafından tüketilir.

Kaynak

2. Yayınla-abone ol mesajlaşma sistemi

Bu sistemde mesajları üretenlere yayıncı, tüketenlere abone denir. Ancak, bu etki alanında mesajlar, konu olarak bilinen bir hedef aracılığıyla değiştirilir. Bir yayıncı, bir konuya yönelik mesajlar üretir ve bir konuya abone olan aboneler, konudan gelen mesajları tüketir. Bu sistem mesajların yayınlanmasına izin verir (birden fazla aboneye sahip olmak ve her biri belirli bir konuda yayınlanan mesajların bir kopyasını alır).

Kaynak

Apache Kafka – bir giriş

Apache Kafka, bir yayınla-abone ol (pub-sub) mesajlaşma sistemine dayanmaktadır. Pub-sub mesajlaşma sisteminde, yayıncılar mesajların üreticisi, aboneler ise mesajların tüketicisidir. Bu sistemde tüketiciler abone olunan konu(lar)ın tüm mesajlarını tüketebilir. Pub-sub mesajlaşma sisteminin bu prensibi Apache Kafka'da kullanılmaktadır.

Buna ek olarak, Apache Kafka dağıtılmış mesajlaşma kavramını kullanır, bu sayede mesajlaşma sistemi ve uygulamalar arasında senkronize olmayan bir mesaj kuyruğu vardır. Büyük hacimli verileri işleyebilen güçlü bir sıra ile Kafka, mesajları bir uç noktadan diğerine iletmenize olanak tanır ve hem çevrimiçi hem de çevrimdışı mesaj tüketimine uygundur. Güvenilirliği, ölçeklenebilirliği, dayanıklılığı ve yüksek verim performansını birleştiren Apache Kafka, gerçek dünyadaki büyük ölçekli veri sistemlerinin birimleri arasında entegrasyon ve iletişim için idealdir.

Ayrıca okuyun: Büyük Veri Projesi Fikirleri

Kaynak

Apache Kafka kümeleri kavramı

Kaynak

  1. Kafka zookeeper : Bir kümedeki aracılar, zookeepers tarafından koordine edilir ve yönetilir. Zookeeper, üreticilere ve tüketicilere Kafka sistemindeki yeni bir komisyoncunun varlığı veya bir komisyoncunun başarısızlığı hakkında ve ayrıca tüketicileri ofset değeri hakkında bilgilendirir. Üreticiler ve tüketiciler, hayvan bakıcısından alım yapmak için faaliyetlerini başka bir komisyoncu ile koordine eder.
  2. Kafka aracısı: Kafka aracıları, hayvan bakıcılarının yardımıyla Kafka kümelerinde yayınlanan verilerin korunmasından sorumlu sistemlerdir. Bir aracı, her konu için sıfır veya daha fazla bölüme sahip olabilir.
  3. Kafka yapımcısı: Bir veya birden fazla Kafka konusundaki mesajlar, yapımcı tarafından yayınlanır ve komisyoncu onayı beklenmeden komisyonculara iletilir.
  4. Kafka tüketicisi: Tüketiciler aracılardan veri alır ve bir veya daha fazla konudan önceden yayınlanmış iletileri tüketir, aracıya baytların tüketilmeye hazır bir arabelleğine sahip olmak için eşzamanlı olmayan bir çekme isteği gönderir ve ardından geri sarmak veya atlamak için bir ofset değeri sağlar herhangi bir bölme noktası

Kafka mimarisinin temel kavramları

  1. Topics : Üreticiler tarafından mesajların yayınlandığı ve tüketiciler tarafından mesajların alındığı mantıklı bir kanaldır. Konular çoğaltılabilir (kopyalanabilir) ve bölümlenebilir (bölünebilir). Belirli bir konu hakkında, her konu benzersiz adıyla tanımlanabilen belirli bir mesaj türü yayınlanır.
  2. Konu bölümleri: Kafka kümesinde konular bölümlere ayrılır ve aracılar arasında çoğaltılır. Bir üretici, yayınlanan bir mesaja bir anahtar ekleyebilir ve aynı anahtara sahip mesajlar aynı bölümde olabilir. Bir bölümdeki her iletiye ofset adı verilen artımlı bir kimlik atanır ve bu kimlikler yalnızca bölüm içinde geçerlidir ve bir konudaki bölümler arasında hiçbir değeri yoktur.
  3. Lider ve replika: Her Kafka brokerinin her bölümle birlikte, konunun lideri veya bir replikası (yedeği) olan birkaç bölümü vardır. Lider sadece bir konuyu okuyup yazmaktan değil, aynı zamanda replikaları yeni verilerle güncellemekten de sorumludur. Her durumda lider başarısız olursa, kopya yeni lider olarak devralabilir.

Apache Kafka'nın Mimarisi


Kaynak

Birden fazla aracıya sahip bir Kafka'ya Kafka kümesi denir. Bu Apache Kafka Eğitiminde çekirdek API'lerden dördü tartışılacaktır :

  1. Üretici API'si: Kafka üretici API'si, bir uygulama tarafından bir veya birkaç Kafka konusuna bir kayıt akışının yayınlanmasına izin verir.
  2. Tüketici API'si: Tüketici API'si, bir uygulamanın bir veya daha fazla konuda üretilen kayıtların sürekli akışını işlemesine izin verir.
  3. Akışlar API'si: Akışlar API'si, bir uygulamanın bir veya birkaç konudan bir giriş akışı kullanmasına ve bir veya daha fazla çıkış konusuna bir çıkış akışı oluşturmasına izin vererek, uygulamanın bir akış işlemcisi olarak hareket etmesine izin verir. Bu, giriş akışlarını çıkış akışlarına verimli bir şekilde değiştirir.
  4. Bağlayıcı API'si: Bağlayıcı API'si , yeniden kullanılabilir üreticilerin ve tüketicilerin oluşturulmasına ve çalıştırılmasına olanak tanır, böylece Kafka konuları ile mevcut veri sistemleri veya uygulamaları arasında bir bağlantı sağlar.

Yayıncı-abone mesajlaşma alanının iş akışı

  1. Kafka yapımcıları belirli aralıklarla bir konuya mesaj gönderir.
  2. Kafka aracıları, mesajları belirli bir konu için yapılandırılmış bölümlerde saklayarak bölümler içinde eşit dağıtımını sağlar.
  3. Belirli bir konuya abone olmak Kafka tüketicileri tarafından yapılır. Tüketici bir konuya abone olduğunda, konunun mevcut konumu tüketiciye sunulur ve konu hayvan bakıcısı topluluğuna kaydedilir.
  4. Tüketici, düzenli aralıklarla Kafka'dan yeni mesajlar talep eder.
  5. Kafka, mesajları üreticilerden alır almaz tüketicilere iletir.
  6. Tüketici mesajı alır ve işler.
  7. Kafka komisyoncusu, mesaj işlenir işlenmez bir onay alır.
  8. Onay alındıktan sonra, ofset yeni değere yükseltilir.
  9. Akış, tüketici talebi durdurana kadar tekrar eder.
  10. Tüketici, istediği zaman bir ofseti atlayabilir veya geri sarabilir ve sonraki mesajları uygun şekilde okuyabilir.

Kuyruk mesajlaşma sisteminin iş akışı

Bir kuyruk mesajlaşma sisteminde, aynı grup kimliğine sahip birkaç tüketici bir konuya abone olabilir. Tek bir grup olarak kabul edilirler ve mesajları paylaşırlar. Sistemin iş akışı şu şekildedir:

  1. Kafka yapımcıları belirli aralıklarla bir konuya mesaj gönderir.
  2. Kafka aracıları, mesajları belirli bir konu için yapılandırılmış bölümlerde saklayarak bölümler içinde eşit dağıtımını sağlar.
  3. Tek bir tüketici belirli bir konuya abone olur.
  4. Yeni bir tüketici aynı konuya abone olana kadar Kafka, tek tüketici ile etkileşime girer.
  5. Yeni tüketicilerin gelmesiyle birlikte veriler iki tüketici arasında paylaşılır. Paylaşım, o konu için yapılandırılmış bölümlerin sayısı tüketici sayısına eşit olana kadar tekrarlanır.
  6. Tüketici sayısı yapılandırılmış bölümlerin sayısını aştığında yeni bir tüketici daha fazla mesaj almaz. Bu durum, her tüketicinin en az bir taksit hakkına sahip olması ve hiçbir bölmenin boş olmaması durumunda yeni tüketicilerin beklemesi durumundan kaynaklanmaktadır.

Apache Kafka'da 2 önemli araç

Daha sonra, bu Apache Kafka Eğitiminde , “org.apache.kafka.tools.* altında paketlenmiş Kafka araçlarını tartışacağız .

1. Çoğaltma Araçları

Daha yüksek kullanılabilirlik ve daha fazla dayanıklılık sağlayan üst düzey bir tasarım aracıdır.

  • Konu Oluştur aracı: Bu araç, çoğaltma faktörü ve varsayılan sayıda bölüm içeren bir konu oluşturmak için kullanılır ve bir çoğaltma ataması gerçekleştirmek için Kafka'nın varsayılan şemasını kullanır.
  • Konu Listeleme aracı: Belirli bir konu listesi için bilgiler bu araç tarafından listelenir. Bölüm, konu adı, lider, replikalar ve isr gibi alanlar bu araç tarafından görüntülenir.
  • Bölüm Ekleme aracı: Bu araç tarafından belirli bir konu için daha fazla bölüm eklenebilir. Ayrıca, eklenen bölümlerin kopyalarının manuel olarak atanmasını da gerçekleştirir.

2. Sistem araçları

Run sınıfı komut dosyası, sistem araçlarını Kafka'da çalıştırmak için kullanılabilir. Sözdizimi:

  • Mirror Maker: Bu aracın kullanımı, bir Kafka kümesini diğerine aynalamaktır.
  • Kafka Geçiş aracı: Bu araç, bir Kafka aracısının bir sürümden diğerine geçirilmesine yardımcı olur.
  • Tüketici Ofset Denetleyicisi: Bu araç, belirli konu kümesi için Kafka konusunu, günlük boyutunu, ofseti, bölümleri, tüketici grubunu ve sahibini görüntüler.

Ayrıca Okuyun: Apache Domuz Eğitimi

Apache Kafka'nın en iyi 4 kullanım örneği

Bu Apache Kafka Eğitiminde Apache Kafka'nın bazı önemli kullanım örneklerini tartışalım:

  1. Akış işleme: Kafka'nın güçlü dayanıklılık özelliği, akış işleme alanında kullanılmasına izin verir. Bu durumda, veriler bir konudan okunur, işlenir ve işlenen veriler daha sonra uygulamalar ve kullanıcılar için kullanılabilir hale getirmek için yeni bir konuya yazılır.
  2. Metrikler: Kafka, verilerin operasyonel olarak izlenmesi için sıklıkla kullanılır. İstatistikler, merkezi bir operasyonel veri beslemesi yapmak için dağıtılmış uygulamalardan toplanır.
  3. Web sitesi etkinliğini izleme: BigQuery ve Google gibi veri ambarları, web sitelerindeki etkinlikleri izlemek için Kafka'yı kullanır. Aramalar, sayfa görünümleri veya diğer kullanıcı eylemleri gibi site etkinlikleri, merkezi konulara yayınlanır ve gerçek zamanlı işleme, çevrimdışı analiz ve gösterge tabloları için erişilebilir hale getirilir.
  4. Günlük toplama: Kafka kullanarak, günlükler birçok hizmetten toplanabilir ve birçok tüketiciye standart bir biçimde sunulabilir.

Apache Kafka'nın En İyi 5 Uygulaması

Kafka tarafından desteklenen en iyi endüstriyel uygulamalardan bazıları şunlardır:

  1. Uber: Kabin uygulaması muazzam gerçek zamanlı işlemeye ihtiyaç duyar ve devasa veri hacmini yönetir. Denetim, ETA hesaplamaları ve sürücü ve müşteri eşleştirme gibi önemli süreçler Kafka Streams temel alınarak modellenmiştir.
  2. Netflix: İsteğe bağlı internet akış platformu Netflix, olayların işlenmesi ve gerçek zamanlı izleme için Kafka metriklerini kullanır.
  3. LinkedIn: LinkedIn, 100.000 konu, 7 milyon bölüm ve 4000'den fazla broker ile her gün 7 trilyon mesajı yönetir. Apache Kafka, LinkedIn'de kullanıcı etkinliği izleme, izleme ve izleme için kullanılır.
  4. Tinder: Bu popüler flört uygulaması, diğerlerinin yanı sıra içerik denetleme, öneriler, kullanıcı saat dilimini güncelleme, bildirimler ve kullanıcı aktivasyonu gibi çeşitli işlemler için Kafka Akışlarını kullanır.
  5. Pinterest: Aylık milyarlarca iğne ve fikir aramasıyla Pinterest, birçok işlem için Kafka'dan yararlandı. Kafka Akışları, içeriklerin dizine eklenmesi, istenmeyen postaların tespiti, öneriler ve gerçek zamanlı reklamların bütçelerinin hesaplanması için kullanılır.

Çözüm

Bu Apache Kafka Eğitiminde , Apache Kafka'nın temel kavramlarını, Kafka'daki mimari ve kümeyi, Kafka iş akışını, Kafka araçlarını ve Kafka'nın bazı uygulamalarını tartıştık. Apache Kafka, bu Apache Kafka Eğitiminde örneklendiği gibi, dayanıklılık, ölçeklenebilirlik, hata toleransı, güvenilirlik, genişletilebilirlik, çoğaltma ve yüksek verim gibi en iyi bazı endüstriyel uygulamalarda erişilebilir olmasını sağlayan en iyi özelliklerden bazılarına sahiptir .

Büyük Veri hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 7+ vaka çalışması ve proje sağlayan, 14 programlama dili ve aracını kapsayan, pratik uygulamalı Büyük Veride Yazılım Geliştirme Uzmanlığı programında PG Diplomamıza göz atın çalıştaylar, en iyi firmalarla 400 saatten fazla titiz öğrenim ve işe yerleştirme yardımı.

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Veriye Dayalı Teknolojik Devrime Öncülük Edin

IIIT Bangalore'den Büyük Veride Gelişmiş Sertifika Programı