🔗 Kafka Ekosistemi & Entegrasyonlar
Kafka Ekosistemi & Entegrasyonlar: Kafka, dağıtık bir sistemde her gönderenin paketini bıraktığı ve her alıcının paketini aldığı merkezi bir postane gibi dağıtılmış sistemdeki ko
Kafka, dağıtık bir sistemde her gönderenin paketini bıraktığı ve her alıcının paketini aldığı merkezi bir postane gibi dağıtılmış sistemdeki konumunu işgal eder: hiçbir gönderici alıcının ev adresini bilmek zorunda değildir — postane yönlendirmeyi, depolamayı ve teslimat garantilerini yönetir. Bu karşılaştırmayı yapısal olarak doğru kılan şey, Kafka'nın her servis çifti arasında oturmasıdır: microservice'ler birbirini doğrudan çağırmak yerine event'leri Kafka'ya gönderir, bu da yeni bir consumer eklemek için producer'ı hiç değiştirmemeniz anlamına gelir — sadece topic'e abone olun. Peki bir dağıtık log üzerine neden tüm bir ekosistem (Kafka Streams, Schema Registry, Debezium, Strimzi) inşa edilir? Çünkü her entegrasyon farklı bir güvenilirlik sorununu çözer: Schema Registry bozulan API değişikliklerinin consumer'ları çökertmesini engeller, Debezium yük altında değişiklikleri kaçıran polling döngüsünü ortadan kaldırır, Kafka Streams harici bir veritabanı olmadan durumsal işlemeyi mümkün kılar ve Strimzi cluster yönetimini Kubernetes'te bildirimsel hale getirir. Java açısından, bu ekosistem Spring framework'ün kendisini yansıtır: core (Kafka) temel konuları yönetir, modüller (Streams, Connect) domain'e özgü güç ekler ve her modül bağımsız olarak benimsenebilir. QA için ekosistemi anlamak operasyonel önem taşır: bir Elasticsearch indeksi veritabanıyla senkrondan çıktığında, kök neden neredeyse her zaman bir Debezium connector gecikmesi veya Schema Registry uyumsuzluğudur.
Kafka vs Diğer Mesajlaşma Sistemleri
Kafka + Spring Boot: Tam Entegrasyon
Spring Boot + Spring Kafka, Java enterprise'da en yaygın Kafka entegrasyonudur. JPA'nın JDBC'yi soyutlaması gibi, Spring Kafka ham Kafka Producer/Consumer API'sini soyutlar. Anahtar annotation'lar: @KafkaListener (consumer), KafkaTemplate (producer), @EnableKafka (config).
Spring Kafka Producer + Consumer + Test — tam örnek
Micro Lab: Kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Adim Adim: Kod yazma
Amaci ve girdiyi belirle
Kritik satiri tamamla
Cikti veya davranisi kontrol et
Hata mesajini kanit olarak oku
Duzeltmeyi tekrar calistir
Kod okuma ve dogrulama akisini sirala.