En İyi 11 Kafka Mülakat Soruları ve Cevapları [Yeni Başlayanlar İçin]
Yayınlanan: 2021-02-222011'de piyasaya sürülmesinden bu yana geçen dokuz yıl içinde Kafka, teknolojik alanda veri işleme için en değerli araçlardan biri olarak kendini kanıtladı. Airbnb, Goldman Sachs, Netflix, LinkedIn, Microsoft, Target ve The New York Times, Kafka üzerine kurulmuş şirketlerden sadece birkaçıdır.
Ama Kafka nedir? Bunun basit cevabı şu olabilir: Bir Uber sürücüsünün potansiyel bir yolcuyla eşleşmesine veya LinkedIn'in milyonlarca gerçek zamanlı analitik veya öngörülebilir hizmet gerçekleştirmesine yardımcı olan şeydir. Kısacası Apache, LinkedIn tarafından 2011'de oluşturulmuş, yüksek düzeyde ölçeklenebilir, açık kaynaklı, hataya dayanıklı, dağıtılmış bir olay akışı platformudur. Abone olabileceğiniz ve daha sonra bir dizi akış uygulamasında yayınlanabilecek bir taahhüt günlüğü kullanır.
Düşük gecikme süresi, veri entegrasyonu ve yüksek verim, artan popülaritesine o kadar katkıda bulunur ki, Kafka'daki bir uzmanlık, bir adayın özgeçmişine parlak bir katkı olarak kabul edilir ve içinde sertifikalı bir kalifikasyona sahip profesyoneller bugün yüksek talep görmektedir. Bu aynı zamanda Kafka merkezli iş fırsatlarında da bir artışa neden oldu.
Bu yazıda, bir sonraki görüşme seansınızda ortaya çıkma olasılığı en yüksek olan Kafka mülakat soruları ve cevaplarının bir listesini derledik. Mülakata gitmeden önce bilginizi tazelemek için bunlara bakmak isteyebilirsiniz. İşte başlıyoruz!
En İyi 11 Kafka Mülakat Soruları ve Cevapları
1. Apache Kafka nedir?
Kafka, Apache Software Foundation tarafından oluşturulmuş ücretsiz, açık kaynaklı bir veri işleme aracıdır. Scala ve Java ile yazılmıştır ve akış verilerini işlemek için tasarlanmış dağıtılmış, gerçek zamanlı bir veri deposudur. İyi bir donanım üzerinde çalışan yüksek bir verim sunar.
Binlerce veri kaynağı aynı anda sürekli olarak veri kayıtları gönderdiğinde, akış verileri üretilir. Bu akış verilerini işlemek için, bir akış platformunun, kesintisiz veri akışını işlerken bu verileri hem sıralı hem de aşamalı olarak işlemesi gerekir.
Kafka, bu gelen veri akışını alır ve verileri işleyen ve sistemden sisteme taşıyan akışlı veri boru hatları oluşturur.
Kafka'nın İşlevleri :
- Veri kayıtlarının akışlarını yayınlamaktan ve bunlara abone olmaktan sorumludur.
- Veri akışlarının oluşturuldukları sıraya göre etkin bir şekilde depolanmasını sağlar
- Gerçek zamanlı gün işleme ile ilgilenir
Kafka'nın Kullanım Alanları :
- Veri entegrasyonu
- Gerçek zamanlı analitik
- Gerçek zamanlı depolama
- Mesaj komisyoncusu çözümü
- Dolandırıcılık tespiti
- Hisse senedi ticareti
2. Neden Kafka Kullanıyoruz?
Apache Kafka, akış verilerini tüm akış uygulamaları için kullanılabilir hale getiren merkezi sinir sistemi görevi görür (akış verilerini kullanan bir uygulamaya akış uygulaması denir). Bunu, kullanması gereken farklı sistemler arasında verilerin işlenmesinden ve aktarılmasından sorumlu olan gerçek zamanlı veri boru hatları oluşturarak yapar.
Kafka, iletişimi işleyerek ve aracılık ederek iki uygulama arasında bir mesaj komisyoncu sistemi olarak hareket eder.
Mesajlaşma, işleme, depolama, taşıma, entegrasyon ve gerçek zamanlı verilerin analizini içeren çok çeşitli kullanım alanlarına sahiptir.
3. Apache Kafka'nın temel özellikleri nelerdir?
Kafka'nın göze çarpan özellikleri şunları içerir:
1. Dayanıklılık – Kafka, daha sonra diske yazılan sunucular arasında veri bölümlerinin dağıtımı ve çoğaltılması için kesintisiz destek sağlar. Bu, sunucuların başarısız olma olasılığını azaltır, verileri kalıcı ve hatalara karşı toleranslı hale getirir ve dayanıklılığını artırır.
2. Ölçeklenebilirlik – Kafka, tek bir sunucunun kapasitesinin ötesinde, onu yüksek düzeyde ölçeklenebilir kılan birçok sunucu arasında bozulabilir ve değiştirilebilir. Kafka'nın veri bölümlerinin bundan dolayı kesinti süresi yoktur.
3. Sıfır Veri Kaybı – Uygun destek ve doğru konfigürasyonlarla veri kaybı sıfıra indirilebilir.
4. Hız – Veri akışlarının ayrıştırılması nedeniyle son derece düşük gecikme olduğundan, Apache Kafka çok hızlıdır. Hepsi gerçek zamanlı harici akış uygulamaları olan Apache Spark, Apache Apex, Apache Flink, Apache Storm vb. ile kullanılır.
5. Yüksek Verim ve Çoğaltma – Kafka, birden çok aboneye erişim sağlamak için birden çok sunucu arasında çoğaltılan milyonlarca mesajı destekleme kapasitesine sahiptir.
4. Kafka Nasıl Çalışır?
Kafka, iki mesajlaşma modelini birleştirerek, böylece onları kuyruğa alarak ve birçok tüketici örneğine erişilebilmesi için bunları yayınlayarak ve bunlara abone olarak çalışır.
Kuyruğa alma, verilerin işlenmesine ve birden çok tüketici sunucusuna dağıtılmasına izin vererek ölçeklenebilirliği destekler. Ancak, bu sıralar çoklu abone olmaya uygun değildir. İşte burada yayınlama ve abone olma yaklaşımı devreye girer. Ancak, her mesaj örneği daha sonra her aboneye gönderileceğinden, bu yaklaşım verilerin birden fazla işlem arasında dağıtılması için kullanılamaz.
Bu nedenle Kafka, iki yaklaşımı birleştirmek için veri bölümlerini kullanır. Her bir günlüğün, bir dizi veri kaydının, birden çok aboneye hitap etmek için daha küçük bölümlere (bölümlere) ayrıldığı bölümlenmiş bir günlük modeli kullanır.
Bu, farklı abonelerin aynı konuya erişmesini sağlar ve her aboneye bir bölüm sağlandığı için konuyu ölçeklenebilir hale getirir.
Kafka'nın bölümlenmiş günlük modeli de tekrar oynatılabilir ve farklı uygulamaların veri akışlarından okumaya devam ederken bağımsız olarak çalışmasına izin verir.
5. Kafka'nın Başlıca Dört Bileşeni Nelerdir?
Kafka'nın dört bileşeni vardır. Onlar:
- Başlık
- Üretici
- Komisyoncu
- Tüketici
Konular, aynı türden ileti akışlarıdır.
Üreticiler, belirli bir konuya mesaj yayınlayabilir.
Aracılar, üreticiler tarafından yayınlanan mesaj akışlarının depolandığı sunuculardır.
Tüketiciler, konulara abone olan ve aracılar tarafından depolanan verilere erişen abonelerdir.
6. Kafka'nın Kaç API'si Var?
Kafka'nın beş ana API'si vardır:
– Yapımcı API'si: belirli bir konuya mesaj veya kayıt akışı yayınlamaktan sorumludur.
– Tüketici API'si: Üreticiler tarafından yayınlanan mesajları çeken konuların aboneleri olarak bilinir.
– Akışlar API'si: uygulamaların akışları işlemesine izin verir; bu, herhangi bir konunun giriş akışının işlenmesini ve bir çıkış akışına dönüştürülmesini içerir. Bu çıktı akışı daha sonra farklı çıktı konularına gönderilebilir.
– Bağlayıcı API: mevcut Kafka konularına farklı uygulamaların eklenmesini sağlamak için bir otomatikleştirme sistemi görevi görür.
– Yönetici API'si: Aracılar ve diğer birkaç Kafka nesnesi gibi Kafka konuları da Yönetici API'si tarafından yönetilir.
7. Ofsetin Önemi Nedir?
Bölümlerde saklanan mesajlara tahsis edilen benzersiz kimlik numarası, Ofset olarak bilinir. Ofset, bir bölümde yer alan her mesaj için bir kimlik numarası görevi görür.
8. Bir Tüketici Grubu tanımlayın.
Abone olunan bir grup konu birden fazla tüketici tarafından ortaklaşa tüketildiğinde buna Tüketici Grubu denir.
9. Zookeeper'ın Önemini Açıklayın. Kafka, Zookeeper Olmadan Kullanılabilir mi?
Belirli bir konu için ofsetler (benzersiz kimlik numaraları) ve belirli bir tüketici grubu tarafından tüketilen bölümler Zookeeper'ın yardımıyla saklanır. Kullanıcılar arasında koordinasyon kanalı görevi görür. Zookeeper'ı olmayan Kafka'yı kullanmak imkansızdır. Zookeeper atlanırsa Kafka sunucusunu erişilemez hale getirir ve istemci istekleri işlenemez.
10. Kafka'da Lider ve Takipçi Ne Anlama Geliyor?
Kafka'daki bölümlerin her birine, Lider olarak hizmet veren bir sunucu atanır. Her okuma/yazma talebi Lider tarafından işlenir. Takipçilerin rolü, Liderin ayak izlerini takip etmektir. Sistem Liderin başarısız olmasına neden olursa, Takipçilerden biri çoğaltmayı durduracak ve yük dengelemeyle ilgilenmek için Lider olarak dolduracaktır.
11. Kafka Sunucusunu Nasıl Başlatırsınız?
Kafka sunucusunu başlatmadan önce Zookeeper'ı çalıştırın. Aşağıdaki adımları takip et:
Zookeeper Sunucusu:
> bin/zookeeper-server-start.sh config/zookeeper.properties
Kafka Sunucusu:
bin/kafka-server-start.sh config/server.properties
Çözüm
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ı.
upGrad'daki diğer Yazılım Mühendisliği Kurslarımıza göz atın.