ÖZET VE TEKNİK CEVAP
Düşük seviyeli veritabanı replikasyon günlüklerine (mantıksal çözümlemeli PostgreSQL WAL veya MySQL binlog) sahte bir replika gibi bağlanarak, çözümlenen satır bazlı değişiklikleri Kafka Connect üzerinden doğrudan Apache Kafka konularına akıtarak.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
Debezium, Kafka Connect çalışma zamanında bir kaynak bağlayıcı (source connector) olarak çalışır. Yerel replikasyon protokollerini kullanarak ana veritabanına bağlanır. Tablo taraması yapan ve ara güncellemeleri/silmeleri kaçıran periyodik SQL SELECT sorguları çalıştırmak yerine, Debezium ham ikili işlem günlüğünü (WAL/binlog) ayrıştırır. Onaylanan (committed) her INSERT, UPDATE ve DELETE işlemi, satırın önceki ve sonraki durumunu, işlem meta verilerini ve sıra ofsetlerini içeren tipli bir olay yüküne dönüştürülerek bölümlenmiş Kafka konularına yayımlanır.
2. Doğru Kullanım Senaryosu
Gerçek zamanlı arama indeksi senkronizasyonu (Elasticsearch), önbellek geçersiz kılma boru hatları (Redis), veri ambarı besleme (Snowflake/Iceberg), outbox olay aktarımı ve ana sisteme sıfır yük bindiren olay tabanlı mikroservis entegrasyonu.
3. Prodüksiyon Arıza Modları
1) WAL Disk Taşması: Debezium bağlayıcısının takılması veya kopması nedeniyle veritabanının WAL günlüklerini silememesi, diski %100 doldurup ana veritabanını çökertmesi; 2) Şema Değişim Uyumsuzluğu: Tablodan kolon silinmesi veya değiştirilmesinin bağlayıcıyı çökertmesi; 3) İlk Enstantane Şişmesi: Dev tabloların ilk enstantane (initial snapshot) taramasının veritabanı kaynaklarını tüketmesi.
4. Teşhis ve Telemetri Sinyalleri
PostgreSQL replikasyon yuvası gecikmesini (replication slot lag), Kafka Connect bağlayıcı durumunu, Debezium olay işleme gecikmesini (DB commit anı ile Kafka kayıt zamanı arasındaki fark) ve veritabanı boş disk alanını izlemek.
5. Önleme ve Mimari Bariyerler
Diskin kontrolsüz dolmasını engellemek için PostgreSQL'de `max_slot_wal_keep_size` yapılandırın, güvenli şema evrimi için Avro/Protobuf ile Schema Registry kullanın ve büyük tablolar için artımlı (chunked) salt-okunur enstantaneler tanımlayın.
6. Mimari Ödünleşimler (Trade-offs)
Uygulamaya sıfır kod yükü bindirerek saniye altı veri akışı sağlar; buna karşılık Kafka Connect altyapı yönetimi ve hassas veritabanı replikasyon yuvalarının sürekli izlenmesi zorunluluğunu getirir.
Vaka İncelemesi (TinyCTO Örneği)
TinyCTO Mimarisi: Ürün arama motoru daha önce 4 saat süren ve ödeme performansını vuran gece SQL dump scriptleri ile güncelleniyordu. Katalog veritabanına kurulan Debezium CDC sayesinde, satıcı fiyat güncellemeleri 120 ms içinde canlı arama indeksine yansıtıldı ve ana veritabanı CPU yükü %74 azaldı.
İnteraktif Konsept Alıştırmaları
3 AlıştırmaLog tabanlı CDC ile sorgu tabanlı (SELECT WHERE updated_at > t) CDC arasındaki fark nedir?
Debezium tarafından kullanılan bir PostgreSQL replikasyon yuvası terk edilirse hangi felaket yaşanır?
Bir Debezium CDC olay yükünde tipik olarak hangi bilgiler yer alır?
Debezium ve Kafka ile Değişen Veri Yakalama (CDC) — Sıkça Sorulan Sorular
Debezium ana veritabanı yerine salt-okunur replikalardan veri akışı sağlayabilir mi?
PostgreSQL'de mantıksal çözümleme replikasyon yuvalarına yazmayı gerektirir ve geleneksel olarak ana sunucuda çalışır (PG16+ ile standby desteği gelmiştir). MySQL ise replikalardan binlog CDC okumayı doğrudan destekler.
Debezium veritabanı şema geçişlerini (DDL değişiklikleri) nasıl yönetir?
Debezium DDL komutlarını yakalar, dahili şema geçmişi konusunu günceller ve Schema Registry'ye yeni şemaları bildirerek tüketicilerin uyum sağlamasını mümkün kılar.
Kafka'da Debezium CDC olaylarının sıralaması garanti midir?
Evet, olaylar tablonun Birincil Anahtarı (Primary Key) ile bölümlendiği sürece. Kafka tek bir bölüm (partition) içinde kesin FIFO sıralaması sağlar.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Debezium, Apache Kafka Connect çatısı üzerine kuruludur ve PostgreSQL, MySQL, SQL Server, Oracle ve MongoDB için kurumsal seviyede bağlayıcılar sunar.
- ▸Log tabanlı CDC, periyodik anlık görüntü sorgularının aksine tüm durum geçişlerinin %100'ünü temsil eden gerçek bir değiştirilemez değişiklik akışı sağlar.
Yaygın Yanılgılar
- ✗CDC'nin yalnızca büyük veri analitiği için olduğunu sanmak; arama senkronizasyonu, önbellek temizleme ve transactional outbox aktarımı gibi operasyonel çekirdek süreçlerde yaygın olarak kullanılır.
Karar Kılavuzu & Önceliklendirme
Alt servislerin ana veritabanına ek sorgu yükü bindirmeden ve kod değişikliği gerektirmeden gerçek zamanlı veri akışına ihtiyaç duyduğu durumlarda Debezium CDC kurun.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Debezium Documentation: Change Data Capture for Apache Kafka— Red Hat / Debezium Project
- [PAPER]Turning the Database Inside Out with Apache Samza— Martin Kleppmann
