Apache Kafka etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Apache Kafka etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Kafka Temeller Cheatsheet - nHerbir madde için açıklama oluşturalarak makele olacak

 


Apache Kafka ile RabbitMq arasındaki farklar? Farklı kullanım senaryoları.



ChatGPT

Elbette! Apache Kafka ve RabbitMQ, iki farklı açık kaynaklı mesajlaşma sistemidir. Her ikisi de olay tabanlı sistemler için kullanılan mesajlaşma araçlarıdır, ancak farklı tasarımlar ve kullanım senaryoları sunarlar.

1. Mesaj Yayılma Modeli:

    * Kafka: Kafka, olayları yaymak için bir günlük (log) yayma modeli kullanır. Veriler, sıralı ve dayanıklı bir günlükte saklanır ve tüketiciler istedikleri zaman günlükten okuma yapabilirler. Kafka, bir olayı birden fazla tüketiciye yaymak için yayılma mantığını kullanır.

    * RabbitMQ: RabbitMQ, mesajları doğrudan bir kaynaktan hedeflere iletir. Yayılma modeli olarak "publish-subscribe" (yayın-abone) modelini kullanır. Bir kaynak mesajı yayınlar ve bir veya daha fazla hedef (abone) bu mesajları alır.

2. Veri Saklama:

    * Kafka: Kafka, tüm olayları disk üzerinde bir günlük olarak saklar. Bu nedenle, olaylar kalıcıdır ve tüketilmese bile saklanır. Kafka, yüksek veri akış hızı ve dayanıklılık gerektiren uygulamalar için uygundur.

    * RabbitMQ: RabbitMQ, mesajları bir süreliğine bellekte saklar. Eğer tüketici mesajı alıp işlerse, RabbitMQ mesajı kaldırır. Ancak, tüketici mesajı alamazsa RabbitMQ mesajı tekrar gönderir. Bu nedenle, RabbitMQ, durumsuz işleme ve anlık mesajlaşma senaryoları için uygundur.

3. Protokol Desteği:

    * Kafka: Kafka, kendine özgü bir protokol olan Kafka protokolünü kullanır. Kafka protokolü, yüksek verimli ve düşük gecikmeli veri iletimi sağlamak için özel olarak tasarlanmıştır.

    * RabbitMQ: RabbitMQ, açık bir protokol olan Advanced Message Queuing Protocol (AMQP) standardını destekler. AMQP, birçok farklı programlama dili ve platformda kullanılabilen bir protokoldür.

4. İşleme Modeli:

    * Kafka: Kafka, tüketici grupları kullanarak yüksek ölçeklenebilirlik sağlar. Bir tüketici grubu, aynı olayları farklı tüketiciye dağıtarak yükü paylaşabilir. Bu sayede paralel işleme yapılabilir.

    * RabbitMQ: RabbitMQ, mesajları işleyen tüketicileri tek bir kuyruğa bağlar. Kuyruğa gelen bir mesaj sadece bir tüketici tarafından alınır ve işlenir. Bu nedenle, RabbitMQ, mesajların sıralı olarak işlenmesi gereken senaryolarda kullanılır.

5. Ekosistem ve Kullanım Alanları:

    * Kafka: Kafka, büyük veri akışlarının yönetimi için özellikle uygun olan bir ekosisteme sahiptir. Özellikle gerçek zamanlı veri işleme, akış analitiği, günlük işleme ve olay tabanlı uygulamalar gibi alanlarda yaygın olarak kullanılır. Kafka'nın Apache Kafka Connect ve Apache Kafka Streams gibi bileşenleri, veri entegrasyonu ve işleme için geliştiricilere güçlü araçlar sunar.

    * RabbitMQ: RabbitMQ, genel amaçlı bir mesajlaşma aracıdır ve daha geniş bir kullanım alanına sahiptir. Çeşitli mesajlaşma senaryoları için uygundur, örneğin mikro hizmet mimarilerinde, dağıtık sistemlerde, RPC (Uzak İşlem Çağrısı) iletişiminde ve uygulama entegrasyonunda kullanılabilir. RabbitMQ'nun geniş bir protokol desteği ve zengin eklenti ekosistemi vardır.

Her iki sistem de farklı kullanım senaryoları için avantajlar sunar. Kafka, yüksek veri akışı, dayanıklılık ve gerçek zamanlı veri işleme ihtiyaçları olan büyük ölçekli uygulamalara yöneliktir. RabbitMQ ise daha genel amaçlı mesajlaşma senaryolarında kullanılır ve esneklik, işleme sıralaması ve tutarlılık gibi özelliklere odaklanır.

Bu bilgiler, Kafka ve RabbitMQ'nun genel farklarını açıklamaktadır. Ancak, her bir sistemin kendi özellikleri ve detayları vardır ve kullanım durumunuza göre daha ayrıntılı bir inceleme yapmanız faydalı olabilir.


Bu iki teknoloji için örnek kullanım senaryoları verir misin? Farkı bu şekilde daha iyi anlayabilirim.


Tabii, işte Kafka ve RabbitMQ'nun örnek kullanım senaryoları:

Kafka Kullanım Senaryoları:

1. Gerçek Zamanlı Veri İşleme: Kafka, büyük veri akışlarının gerçek zamanlı olarak işlenmesi için idealdir. Örneğin, bir akıllı şehir uygulamasında sensörlerden gelen verileri işleyebilir ve anlık analizler yapabilirsiniz.

2. Günlük İşleme: Kafka, log (günlük) tabanlı yayılma modeli ve kalıcı veri saklama özelliği sayesinde günlük işleme senaryolarında yaygın olarak kullanılır. Örneğin, ağ günlüklerini toplamak, analiz etmek ve hataları izlemek için Kafka kullanabilirsiniz.

3. Veri Entegrasyonu: Farklı sistemler arasında veri entegrasyonu gerektiğinde Kafka kullanılabilir. Örneğin, bir uygulamadan diğerine veri akışını sağlamak veya veri senkronizasyonu gerçekleştirmek için Kafka kullanabilirsiniz.

RabbitMQ Kullanım Senaryoları:

1. İş Mesajları Sıralaması: RabbitMQ, iş mesajlarının sıralı olarak işlenmesini gerektiren senaryolarda kullanılabilir. Örneğin, bir banka uygulamasında müşteri işlemlerini sıralı bir şekilde işlemek için RabbitMQ kullanabilirsiniz.

2. Mikro Hizmetler ve Dağıtık Sistemler: RabbitMQ, mikro hizmet mimarilerinde ve dağıtık sistemlerde iletişimi kolaylaştırmak için kullanılabilir. Farklı bileşenler arasında mesajlaşma sağlayarak sistemin parçalarını birbirine bağlar.

3. RPC (Uzak İşlem Çağrısı): RabbitMQ, uzak işlem çağrısı senaryolarında kullanılabilir. İstemci-sunucu modelinde, istemciler RabbitMQ üzerinden sunucuya talepler gönderebilir ve sonuçları alabilir.

4. Anlık Mesajlaşma: RabbitMQ, anlık mesajlaşma uygulamalarında kullanılabilir. Örneğin, bir sohbet uygulamasında kullanıcılar arasında iletişim sağlamak için RabbitMQ kullanabilirsiniz.

Bu senaryolar, Kafka ve RabbitMQ'nun farklı kullanım alanlarını ve yeteneklerini göstermektedir. İhtiyaçlarınıza ve projenizin gereksinimlerine bağlı olarak hangi teknolojiyi tercih edeceğinizi belirleyebilirsiniz.


Apache Kafka interview soruları ve cevapları




ChatGPT


Apache Kafka, büyük veri setlerini işlemek ve analiz etmek için kullanılan açık kaynaklı bir akış işleme platformudur. Bir Kafka röportajında aşağıdaki gibi sorularla karşılaşabilirsiniz

Apache Kafka nedir?


Apache Kafka, büyük miktarda gerçek zamanlı veriyi işlemek ve yayınlamak için kullanılan, hızlı, ölçeklenebilir, dayanıklı ve hata toleranslı bir yayın-abone mesajlaşma sistemidir. Kafka, LinkedIn tarafından geliştirildi ve 2011 yılında açık kaynak olarak yayınlandı.


Kafka'nın temel bileşenleri nelerdir?


Kafka'nın temel bileşenleri arasında Producer (üretici), Consumer (tüketici), Broker (aracı) ve Topic (konu) bulunur. Producer veriyi Topic'e yazar, Consumer ise bu Topic'den veriyi okur. Broker, verinin güvenli bir şekilde depolanmasını ve iletilmesini sağlar.


Apache Kafka'nın hangi özellikleri onu diğer mesajlaşma sistemlerinden ayırır?


Kafka, ölçeklenebilirlik, hızlı veri akışı, veri replikasyonu ve hata toleransı gibi özellikleri sayesinde diğer mesajlaşma sistemlerinden farklılaşır. Ayrıca, Kafka verinin uzun süreli saklanmasına imkan tanır, bu da geçmiş verilere dayalı analizler yapmayı mümkün kıter.


Kafka Topic nedir?


Topic, Kafka'da mesajların saklandığı kategorilerdir. Producer'lar veriyi belirli bir Topic'e yazarlar ve Consumer'lar bu Topic'den veriyi okurlar. Bir Topic, bir veya daha fazla Partition'a (bölüm) bölünebilir.


Kafka'da Partition nedir ve neden önemlidir?


Kafka'da bir Topic, birden fazla Partition'a bölünebilir. Bu bölümler, büyük veri yüklerinin daha küçük parçalara bölünerek işlenmesini sağlar. Bu, yüksek miktarda veriyi daha hızlı ve etkili bir şekilde işlemeyi ve ölçeklemeyi mümkün kılar.


Kafka'da Consumer ve Consumer Group nedir?


Kafka'da Consumer, Topic'den mesajları okuyan uygulamadır. Birden çok Consumer, Consumer Group oluşturabilir. Her Consumer, belirli bir Consumer Group'a aittir ve Group içindeki her Consumer, Topic'in farklı bir Partition'ından veri okur. Bu, veri işleme hızını artırır ve hata durumunda başka bir Consumer'ın işi devralmasını sağlar.


Kafka'da Replication nedir ve neden önemlidir?

Replication, Kafka'daki veri kaybını önleme mekanizmasıdır. Bir T opic'in her bir Partition'ı, birden çok Kafka Broker'ına kopyalanabilir. Bu kopyalar, Replica olarak adlandırılır. Eğer bir Broker çökerse, veri kaybını önlemek için diğer Broker'lar Replica'ları kullanabilir.


Kafka'da Offset nedir?


Offset, Kafka'daki her bir mesajın Partition içerisindeki benzersiz kimliğidir. Bu, Consumer'ların hangi mesajları okuduklarını ve hangi mesajın bir sonraki okuma için beklediğini belirler.


Kafka'da Zookeeper'ın rolü nedir?


Zookeeper, Kafka'nın çalışması için gereklidir. Kafka Cluster'ının durumunu yönetir, Broker'ları koordine eder ve Consumer'ların Offset'lerini saklar. Zookeeper olmadan Kafka, mevcut durumu veya senkronizasyonunu kaybedebilir.


Kafka'da "log compaction" ne anlama gelir?

Log compaction, Kafka'nın disk alanını yönetme stratejilerinden biridir. Bu strateji, belirli bir konu için tutulan tüm mesajların bir özetini korur ve aynı anahtara sahip eski mesajları siler. Bu, veri bütünlüğünü korurken disk kullanımını azaltır.


Apache Kafka ile hangi tür veri işleme modelleri desteklenir?

Kafka, hem gerçek zamanlı veri işleme modelini (low-latency) hem de batch işleme modelini (high-throughput) destekler.


Kafka Streams nedir?

Kafka Streams, gerçek zamanlı veri işleme ve analiz için bir Java kütüphanesidir. Kafka Streams API, basit ve karmaşık veri işleme işlemlerini, ölçeklenebilir ve hata tolere bir şekilde yapmayı sağlar.


Kafka Connect nedir?

Kafka Connect, Kafka ile diğer veri sistemleri arasında veri akışını otomatikleştirmek için kullanılan bir API'dir. Bu, Kafka'ya veri göndermek veya Kafka'dan veri almak için kullanılır. Kafka Connect, büyük ölçekli ve gerçek zamanlı veri taşıma işlemlerini kolaylaştırır.


Kafka'da 'retention period' ne anlama gelir?

Retention period, Kafka'da bir mesajın ne kadar süreyle saklanacağını belirler. Bu süre dolduğunda, mesaj otomatik olarak silinir. Retention period, her bir Topic için ayrı ayrı belirlenebilir.


Kafka'da 'ISR' nedir ve niçin önemlidir?

    ISR (In-Sync Replicas), Kafka Broker'ında tutulan ve bir Partition'ın tüm yazma işlemlerini başarıyla tamamlamış olan replika setini ifade eder. ISR, veri kaybı riskini azaltmak ve verinin bütünlüğünü sağlamak için önemlidir.Apache 


Kafka'da 'at least once' ve 'exactly once' teslimat semantikleri nedir?

'At least once' semantiği, her mesajın en az bir kez işleneceğini garanti eder. Ancak, bazı durumlarda mesajların çoğaltılması söz konusu olabilir.

'Exactly once' semantiği ise her mesajın tam olarak bir kez işleneceğini garanti eder. Bu, daha karmaşık bir süreç gerektirir ve Kafka 0.11.0.0 versiyonundan itibaren bu semantiği destekler.


Kafka ve RabbitMQ arasındaki fark nedir?

Her ikisi de mesajlaşma sistemleridir ancak farklı kullanım durumlarına hizmet ederler. Kafka, büyük veri akışlarını işlemek ve analiz etmek için tasarlanmıştır ve büyük ölçekli, yüksek hacimli, yüksek hızlı veri akışlarını yönetebilir. Öte yandan, RabbitMQ daha geleneksel bir mesajlaşma sistemi olup, daha düşük hacimli ve daha karmaşık işleme senaryolarında kullanılabilir.


Kafka'da leader ve follower nedir?

Bir Kafka Topic'in her bir Partition'ının, bir Broker üzerinde bir 'leader'’kopyası ve bir veya daha fazla 'follower' kopyası bulunur. Tüm yazma ve okuma işlemleri 'leader' üzerinden gerçekleşirken, 'follower'lar 'leader'ı takip eder ve veri replikasyonunu sağlar. Eğer 'leader' çökerse, bir 'follower' 'leader' rolünü devralır. Bu, Kafka'nın hata toleransını sağlar.


Kafka'da 'backpressure' nedir ve nasıl yönetilir?

Backpressure, Consumer'ların Producer'ların ürettiği veriyi yeterince hızlı bir şekilde işleyememesi durumunda oluşan bir durumdur. Kafka'da, Consumer'lar kendi hızlarında veri çekebilirler, bu da backpressure sorununu hafifletir. Ancak, eğer Consumer'lar yavaşlar ve veri birikirse, bu durum disk alanı sorunlarına ve veri kaybına yol açabilir. Bu durumları yönetmek için, Kafka'da ayarlanabilir bir 'retention policy' ve 'log compaction' özelliği vardır.



Kafka'nın 'pull-based' modeli ne anlama gelir ve bu modelin avantajları nelerdir?

Kafka'da Consumer'lar, kendi hızlarında veri çekebilirler. Bu, 'pull-based' model olarak adlandırılır. Bu modelin avantajı, Consumer'ların veri akışını kendi işleme kapasitelerine göre düzenleyebilmeleridir. Yani, bir Consumer aşırı yüklenmişse, daha az veri çekebilir. Bu, backpressure sorununu önler ve daha iyi ölçeklenebilirlik sağlar.


Kafka'da 'stream processing' ne anlama gelir?

Stream processing, Kafka'nın gerçek zamanlı veri işleme yeteneğini ifade eder. Kafka, büyük veri akışlarını hızlı bir şekilde işlemek ve analiz etmek için tasarlanmıştır. Kafka Streams API, bu işlemleri gerçekleştirmek için kullanılabilir. Bu API, filtreleme, dönüştürme, toplama ve birleştirme gibi birçok işlemi destekler.


Kafka'nın hangi kullanım senaryoları vardır?

Kafka, gerçek zamanlı analiz, log dosyası işleme, ölçüm verileri izleme, aktivite izleme, web sitesi aktivite izleme, fraud detection, real-time recommendation ve benzeri birçok senaryoda kullanılabilir. Ayrıca, Kafka, büyük veri ekosisteminin bir parçası olarak Hadoop, Spark ve diğer veri işleme ve analiz araçlarıyla entegre edilebilir.


Kafka'da 'Message' ve 'Record' terimlerinin anlamları nedir?

Kafka'da 'Message' ve 'Record' terimleri genellikle birbirinin yerine kullanılır ve her ikisi de yayınlanan ve tüketilen veri birimlerini ifade eder. Kafka 0.11.0.0'dan itibaren resmi olarak 'Record' terimini kullanmayı tercih etmiştir. Bir 'Record', bir 'key' (anahtar) ve bir 'value' (değer) ile birlikte bir 'timestamp' (zaman damgası) içerir.


Kafka'da 'Consumer lag' nedir?

'Consumer lag', Kafka'da bir Consumer'ın ne kadar geride olduğunu belirler. Spesifik olarak, Consumer'ın en son okuduğu offset ile Topic'in en son offset'i arasındaki farkı ifade eder. Consumer lag, bir uygulamanın performansını değerlendirmek için kullanılır. Eğer lag sürekli olarak artıyorsa, bu Consumer'ın veriyi yeterince hızlı işleyemediği anlamına gelir.


Apache Kafka ve Apache Storm arasındaki fark nedir?

Apache Kafka ve Apache Storm, her ikisi de büyük veri işleme için kullanılan araçlardır, ancak farklı özelliklere sahiptirler. Kafka, büyük miktarda verinin güvenli ve hızlı bir şekilde akışını sağlayan bir mesajlaşma sistemidir. Öte yandan, Storm, gerçek zamanlı veri işleme ve dağıtılmış RPC (Remote Procedure Call) için kullanılan bir hesaplama çerçevesidir.


Kafka'nın 'fault-tolerance' özelliği nedir ve nasıl çalışır?

Kafka, hata toleransı (fault-tolerance) özelliği sayesinde, sistemdeki bir veya daha fazla bileşenin çökmesi durumunda bile veri kaybını önler ve hizmetlerin kesintisiz bir şekilde çalışmasını sağlar. Bu, verinin birden çok Broker üzerinde replike edilmesi ile sağlanır. Eğer bir Broker çökerse, diğer Broker'lar veriyi sağlamaya devam eder.


Apache Kafka'da 'serialization' ve 'deserialization' nedir?

Serialization, bir veri nesnesini ağ üzerinden iletim veya diske yazma için binary formata dönüştürme işlemidir. Deserialization ise bu binary formatı orijinal veri formatına geri dönüştürme işlemidir. Kafka, verinin Producer'dan Broker'a ve Broker'dan Consumer'a taşınması sırasında bu işlemleri gerçekleştirir.


Kafka'da idempotent producer nedir ve neden önemlidir?

Bu özellik, ağ hataları veya diğer nedenlerle mesajların tekrar gönderilmesi durumunda veri bütünlüğünü korumak için önemlidir. Kafka 0.11.0'dan itibaren idempotent producer özelliğini sunmaktadır.


Kafka'da Partition'ların rolü nedir?

Partition'lar, Kafka'da veri paralelizmini sağlar. Bir Topic, bir veya daha fazla Partition'a bölünebilir ve her bir Partition, bir dizi sıralı ve sabit boyutlu kaydı tutar. Partition'lar sayesinde, veri birden çok Broker arasında dağıtılabilir ve paralel olarak işlenebilir.


Kafka'da Broker nedir?

Broker, Kafka'da bir sunucu olarak hizmet verir ve veriyi depolar. Bir Kafka Cluster'ı, birden çok Broker'ı içerir ve her bir Broker, bir veya daha fazla Partition'ı barındırabilir. Broker'lar, verinin replikasyonunu ve hata toleransını sağlar.


Kafka'da 'Producer Acknowledgement' nedir?

Producer Acknowledgement, bir Producer'ın bir mesajı gönderdikten sonra bir Broker'dan aldığı onaydır. Bu, mesajın başarıyla alındığını ve depolandığını doğrular. Kafka'da, bu onayın seviyesi yapılandırılabilir. Mesela, 'acks=0' hiçbir onayın alınmayacağı, 'acks=1' sadece leader'ın onayının alınacağı ve 'acks=all' tüm replikaların onayının alınacağı anlamına gelir.


Kafka'da 'throughput' nedir ve nasıl optimize edilir?

Throughput, bir zaman biriminde işlenen veri miktarını ifade eder. Kafka, yüksek throughput kapasitesi sunar, yani büyük veri akışlarını hızlı bir şekilde işleyebilir. Throughput, disk I/O, ağ kapasitesi, mesaj boyutu ve sistem kaynakları gibi birçok faktöre bağlıdır. Optimum throughput için, bu faktörler dikkate alınarak sistemöyapılandırılmalı ve düzenli olarak izlenmeli ve ayarlanmalıdır.


Kafka'da 'log compaction' nedir?

Log compaction, Kafka'da bir tür veri tutma politikasıdır. Bu politika, her bir key için en son değerin korunduğu, daha eski değerlerin zamanla temizlendiği bir log oluşturur. Bu, Kafka Topic'lerinde bir tür 'snapshot' oluşturur ve büyük miktarda verinin etkili bir şekilde yönetilmesini sağlar.


Kafka'da 'offset' nedir?

Offset, Kafka'da her bir mesajın Partition içindeki sırasını belirleyen bir numaradır. Offsetler, Consumer'ların veri okuma konumlarını takip etmesine ve istedikleri bir noktadan veri okumalarına yardımcı olur.



Kafka'da 'replication factor' nedir ve niçin önemlidir?

Replication factor, Kafka'da bir Topic'in her bir Partition'ının kaç kopyasının tutulacağını belirler. Bu,verinin replikasyonunu ve Kafka'nın hata toleransını sağlar. Eğer bir Broker çökerse, diğer Broker'lar veriyi sağlamaya devam eder.


Kafka Stream'ler nedir?

Kafka Streams, Kafka'nın bir kütüphanesidir ve gerçek zamanlı veri akışlarını işleme yeteneği sağlar. Kafka Streams, stream processing işlemlerini gerçekleştirebilmek için Kafka Consumer ve Producer API'lerini kullanır.


Kafka'da 'zookeeper'ın rolü nedir?

Zookeeper, Kafka Cluster'ının koordinasyonunu sağlar. Broker'lar ve Consumer'lar arasındaki iletişimi, Topickonfigürasyonlarını, Consumer grup bilgilerini yönetir. Eğer bir Broker çökerse, Zookeeper bunu algılar ve diğer Broker'lara bildirir. Kafka 2.8.0 ve sonrası versiyonlarında, Zookeeper olmadan da çalışabilen bir mod sunulmuştur.


Kafka'nın hangi durumlarda kullanılmaması gerektiği söylenebilir?al

Kafka, düşük gecikme süresi gerektiren durumlarda (örneğin, çok hızlı veri işleme veya gerçek zamanlı işlemler için) veya çok karmaşık işlem gerektiren durumlarda (örneğin, karmaşık işlem kuyrukları veya öncelikli iletiler için) Kafka ideal olmayabilir. Ayrıca, verinin sıklıkla güncellendiği senaryolarda (örneğin, bir veritabanında olduğu gibi) Kafka yerine daha geleneksel bir veritabanı daha uygun olabilir.


Kafka'nın avantajları ve dezavantajları nelerdir?

Kafka'nın avantajları:

  • Yüksek throughput: Kafka, yüksek hacimli veri akışlarını yönetme yeteneği ile bilinir.
  • Hata toleransı: Kafka, verinin birden çok Broker üzerinde replike edilmesi ile hata toleransını sağlar.
  • Ölçeklenebilirlik: Kafka, büyük miktarda veriyi yönetmek için kolayca ölçeklendirilebilir.
  • Gerçek zamanlı işleme: Kafka, veriyi gerçek zamanlı olarak işleme yeteneği sunar.

Kafka'nın dezavantajları:

  • Karmaşıklık: Kafka'nın öğrenilmesi ve yönetilmesi zaman alabilir ve karmaşık olabilir.
  • Düşük gecikme: Kafka, yüksek hacimli veri akışları için tasarlanmıştır ve bu nedenle düşük gecikme süresi gerektiren uygulamalar için ideal olmayabilir.
  • Veri güncellemeleri: Kafka, veriyi bir kere yazıp çok kez okuma modelini kullanır ve bu nedenle sıklıkla güncellenen veri için ideal değildir.
  1. Apache Kafka'nın 'at least once', 'at most once' ve 'exactly once' teslim garantileri nelerdir?
  • 'At least once': Bu garanti, mesajların kesinlikle bir kez veya daha fazla kez teslim edileceğini belirtir. Bu durumda, mesaj kayıplarını önlemek önemlidir, ancak mesajların tekrar işlenmesi durumu olabilir.
  • 'At most once': Bu garanti, mesajların en fazla bir kez veya hiç teslim edilmeyeceğini belirtir. Bu durumda, tekrar işlenen mesajlar önlenir ancak mesaj kaybı riski olabilir.
  • 'Exactly once': Bu en güçlü garanti, her mesajın tam olarak bir kez teslim edileceğini belirtir. Bu durumda, hem mesaj kaybı hem de tekrar işlenen mesajlar önlenir. Kafka 0.11 sürümünden itibaren 'exactly once' teslimatını desteklemektedir. Ancak bu, performansı etkileyebilir ve dikkatli bir şekilde yapılandırılması gereklidir.

Apache Kafka for Developers using Spring Boot Eğitimi - Udemy - İngilizce

Kursa buradan ulaşabilirsiniz.





What you'll learn
Apache Kafka and its Internals

Build Enterprise Standard Kafka Client Applications using Spring Boot

Writing Unit Tests using JUnit

Writing Integration tests using JUnit and Embedded Kafka

Build End to End application using Kafka Producer/Consumer and Spring Boot



Requirements
Java 11 or greater is required

Intellij or Eclipse or Similar IDE

Knowledge about Spring Boot

Experience writing tests using JUnit

Gradle or Maven Knowledge is needed

Description


This course is structured to give you a theoretical and coding experience with Apache Kafka using SpringBoot. This course is targeted for developers who would like to build enterprise standard Kafka Client applications using SpringBoot.

If you are looking forward to learning the below-listed things:

Use cases where Kafka fits really well


Internals of Kafka and how it works


Built Enterprise Standard Kafka Client Applications using Producer/Consumer API using Spring Boot


Unit/Integration Tests for the Kafka Client Applications

Then this is the right course for you. This is a pure hands-on oriented course where you will be learning the concepts through code.

By the end of this course, you will have a complete understanding of coding and implementing Kafka Clients using SpringBoot with Producer/Consumer API.

Getting Started with Kafka

In this section, I will give you all a quick introduction to Apache Kafka, terminologies and different client APIs that are part of Kafka

Download and Install Kafka

In this section, we will download the Kafka distribution from the Kafka Website.

Understanding Kafka Components and its Internals - (Theory + Hands-On)

In this section, we will explore the Kafka internals from a theoretical perspective followed by hands-on exploring the Kafka internals.

Learn about the Topics and Partitions in Kafka


Setup a Local Kafka Cluster with Multiple Brokers


Producer/Consumer messages in the Kafka Cluster


Learn about Consumer Offsets and Consumer Groups


Commit Log and Retention Policy


Learn about Kafka Load Distribution and Fault Tolerance and Robustness

Application OverView

This section covers the application that we are going to build as part of this course.

Build SpringBoot Kafka Producer - Hands-On

In this section, we will learn about building a Kafka Producer using Spring Boot.

Build RestAPI through which the events can be posted into the application from the outside world


Explore KafkaTemplate to publish the data into the Kafka Topic


Learn different approaches to produce the message into the Kafka


Learn to publish the Kafka Record using Headers

Integration Testing using JUnit5 - Hands-On

In this section, we will learn about different approaches to writing Integration tests using Embedded Kafka.

Write Integration test cases to interact with the API using JUnit5


Write Integration test cases to interact with Embedded Kafka using JUnit5

Unit Testing using JUnit5- Hands-On

In this section, we will learn about different approaches to writing unit tests Kafka Producer.

Write Unit Tests to the controller layer using @WebMVC annotation and MockMVC


Add the validations to the request payload in the endpoint


Write Custom Error Handler for different response codes

Kafka Producer - Sending Message With Key - Hands-On

In this section, we will learn about sending the record to Kafka Topic with Key.

Kafka Producer - Important Configurations

In this section, we will learn about different key configurations to consider when it comes to reliable message delivery to Kafka

Build SpringBoot Kafka Consumer - Hands-On

In this section, we will learn about building a Kafka Consumer using Spring Boot.

Set up the base consumer project library-events consumer


Learn about different Spring Kafka Terminologies which are necessary to configure a Kafka Consumer


Learn about how to configure a Kafka Consumer using the @KafkListener Annotation


Learn about how "Spring Boot Auto Configuration works behind the scenes for Kafka Consumer"

Consumer Groups and Consumer Offset Management- Hands-On

In this section, we will code and learn about consumer groups and offset management.

Demonstration how Consumer Groups plays a vital role when it comes to scalable message consumption and consumer rebalance


Learn about the Default consumer offset management by Kafka


Learn about how consumer offset can be manually managed from the application


Demonstration of how to achieve scalable message consumption by increasing the concurrency level to greater than 1

Persisting Library Events in DB - Using H2 InMemory DataBase

In this section, we will code and learn about integrating the DB layer into the library-events-consumer using Spring JPA.

Configuring the H2 In-Memory DB


Create LibraryEvent and Book Entity


Build Service Layer to process LibraryEvent - ADD Event Type


Build Service Layer to process LibraryEvent - MODIFY Event Type

Integration Testing using Embedded Kafka - Kafka Consumer

In this section, we will code and learn to write the Integration tests for the Kafka Consumer.

Configure Embedded Kafka for Integration Tests


Write the Integration test for posting a "NEW" LibraryEvent


Write the Integration test for posting an "UPDATE" LibraryEvent


Integration Tests for Real Databases using TestContainers

Error Handling, Retry and Recovery - Kafka Consumers

In this section, we will learn about the different error handling techniques that are available for Kafka Consumer.

Custom Error Handler


Retry in Kafka Consumer


Retry SpecificExceptions using Custom RetryPolicy


Recovery in Kafka Consumer


Handling Recovery in Kafka Consumer

Error Handling, Retry/Recovery - Kafka Producer

Error Handling in Kafka Producer


Retry in Kafka Producer - Broker Not Available


Retry in Kafka Producer - Min.in.sync.replicas


Retain/Recover Failed Records in Kafka Producer

By the end of this you will have a complete understand and knowledge of building enterprise standard Kafka Consumers and Producers using Spring Boot with the Unit and Integration tests using EmbeddedKafka.

Who this course is for:Java/Spring Developers who would like to build Producers/Consumers using Apache Kafka
Anyone willing to learn about Apache Kafka and implement using SpringBoot


Apache Kafka Eğitimi (Türkçe) - Video - Barış Dere

 




Apache Kafka Nedir? Nasıl çalışır? Ne zaman kullanalım?

"Bu videoda, Apache Kafka nedir, nasıl çalışır, ne zaman kullanmalı ve ne gibi sorunlara çözüm getirdiği hakkında bilgi vereceğim. Apache Kafkanın mimarisini, nasıl veri yazıldığını ve nasıl ver, okunduğu hakkındaki videolarıma da bakabilirsiniz."



Apache Kafka Mimarisi | Replication | Split Brain | Broker | Zookeeper

"Bu videoda sizlere apache kafkanın mimarisinde bulunan brokerl, zookeeper gibi aktörleri detaylı şekilde anlattım. Bunun yanında replication ve split brain kavramlarını da anlattım. "




Apache Kafka'ya nasıl veri yazılır? | Kafkada veriler nasıl saklanır | Topic | Partition

"Bu videoda sizlere Apache Kafkaya nasıl veri yazıldığını ve kafkanın bunları nasıl sakladığını anlatacağım. Teknik bir anlatım olacak. Eğer Apache Kafkanın ne olduğunu daha genel bir anlatım ile öğrenmek isterseniz, altta eklediğim Apache Kafka Nedir videoma bakabilirsiniz."

Apache Kafkadan nasıl veri okunur? Consumer Group | Offset | At Most Once | At Least Once | Exactly

"Bu videoda Apache Kafkadan nasıl veri okuyabileceğimizi anlatacağım. Bu videonun sonunda consumer, consumer group, offset, at most once, at least once ve exactly once gibi kavramları öğrenmiş olacaksınız."

Apache Kafka kurulum ve admin araçları

"Bu videoda sizlerle Apache kafka ve zookeeper kurucaz. Sonra topicler oluşturup okuycaz ve yazıcaz. Bunun yanında temel admin komutları ve konfigürasyon elementlerini de göstericem."


Apache Kafka ile proje hazırladık | Java | Python | Scala | Docker | Spring Boot | Kafka Streams

"Apache Kafka eğitim serisinin 6ıncı videosunda bugüne kadar öğrendiğimiz her şeyin tatbik edilerek Java Scala Python dilleri kullanılarak açıklandığı, bunun yanında Spring Boot, Spring Kafka, Kafka Streams, Akka Streams, Elasticsearch, Postman, Docker, Docker compose gibi teknolojilerin kullanıldığı bir kodlama projesi olmuştur."





BONUS :(kablosuzkedi)

1 Videoda #Apache Kafka Nedir? Apache Kafka Neden Kullanılır? Apache Kafka Nasıl Kurulur?







Apache Kafka - Apache Spark - Twitter Streaming Uygulaması

Apache Kafka - Apache Spark ile Twitter Streaming Uygulamasına aşağıdaki adresten ulaşabilirsiniz.

https://github.com/aliturgutbozkurt/kafka-spark-twitter-streaming




Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo