Mikroservisler, e-ticaret sipariş boru hatları ve fintech sistemlerinde Apache Kafka kullanmak; JVM heap yönetimi, ZooKeeper/KRaft bağımlılıkları ve rastgele çöp toplayıcı (GC) duraklamalarıyla devasa donanım israfı yaratır. AWS MSK veya Confluent Cloud'a ayda $500 - $1.500+ ödemek yerine; C++20 ve Seastar tabanlı Redpanda'yı kendi VDS sunucunuzda çalıştırarak p99 <5ms gecikme elde edin, Kafka donanımının 1/3'ü ile saniyede yüz binlerce mesaj işleyin ve altyapı bütçenizden %80+ tasarruf edin.
| Mesajlaşma Motoru | Çalışma Mimarisi | GC Duraklama Riski | Disk G/Ç Motoru | Bellek Verimliliği |
|---|---|---|---|---|
| Redpanda (C++20 & Seastar)Modern C++ | Doğrudan Çekirdek (Bare-Metal C++ Thread-per-core, Sıfır JVM) | Sıfır (p99 gecikme < 5ms sabit) | Doğrudan G/Ç (Direct I/O) - OS Sayfa Önbelleğini Bypass Eder | Kompakt (Kafka belleğinin 1/3’ü ile çalışır) |
| Apache Kafka (JVM & Java/Scala) | JVM Sanal Makinesi + İşletim Sistemi Sayfa Önbelleği (Page Cache) | Yüksek (Büyük heap altında 100-500ms Stop-The-World GC duraklamaları) | Standart POSIX Dosya Sistemi + Linux Page Cache Çift Kopyalama | Düşük (JVM Heap + OS RAM gereksinimi) |
| RabbitMQ (Erlang / OTP) | BEAM Sanal Makinesi (Geleneksel Mesaj Kuyruğu) | Orta (Yığılan kuyruklarda bellek şişmesi ve disk paging) | Mnesia / Quorum Queues (Log Replay için uygun değil) | Orta (Mesaj başına bellek tüketimi yüksek) |
Bu küme, günlük 50 milyon mesajı ve saniyede 350.000 mesaja kadar olan ani yükleri sıfır JVM duraklamasıyla karşılar.
version: '3.8'
services:
# Redpanda: C++20 ve Seastar tabanlı, JVM'siz ultra düşük gecikmeli Kafka alternatifi
redpanda:
image: docker.redpanda.com/redpandadata/redpanda:latest
restart: unless-stopped
command:
- redpanda start
- --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:19092
- --advertise-kafka-addr internal://redpanda:9092,external://vds-ip:19092
- --pandaproxy-addr 0.0.0.0:8082
- --advertise-pandaproxy-addr vds-ip:8082
- --schema-registry-addr 0.0.0.0:8081
- --smp 4 # vCPU çekirdeği başına iş parçacığı
- --memory 12G # Seastar doğrudan bellek tahsisi (Sıfır JVM!)
- --reserve-memory 2G
ports:
- "19092:19092"
- "8081:8081"
- "8082:8082"
volumes:
- redpanda_data:/var/lib/redpanda/data
# Redpanda Console: Gelişmiş görsel konu (topic), şema ve tüketici takip paneli
console:
image: docker.redpanda.com/redpandadata/console:latest
restart: unless-stopped
ports:
- "8080:8080"
environment:
- KAFKA_BROKERS=redpanda:9092
depends_on:
- redpanda
volumes:
redpanda_data:Geleneksel Apache Kafka, Java Sanal Makinesi (JVM) ekosisteminde çalışır. Üretilen her mesaj önce JVM Heap alanında işlenir, ardından işletim sistemi sayfa önbelleğine (page cache) kopyalanır. Bu durum aynı verinin RAM'de iki kez tutulmasına neden olur. Yüksek mesaj akışı altında Java çöp toplayıcısı (Garbage Collector) devreye girdiğinde tüm broker kilitlenir (Stop-The-World pause). Canlı finans işlemlerinde veya hassas telemetri sistemlerinde bu durum 100ms - 500ms gecikme sıçramalarına (tail latency spikes) yol açar.
Redpanda, bu mimariyi sıfırdan yeniden tasarlamıştır: C++20 dilinde ve Seastar çatısıyla yazılmıştır. JVM yoktur, Garbage Collection yoktur. İşletim sistemi sayfa önbelleğini atlayarak doğrudan O_DIRECT ile NVMe disklere yazar. Sonuç olarak aynı donanım üzerinde Kafka'ya kıyasla 3 kat daha fazla throughput üretirken, p99 gecikmelerini 5 milisaniyenin altında sabit tutar.
Her CPU çekirdeğine bağımsız bir işlem döngüsü atanır. Çekirdekler arasında mutex kilitlemesi (lock contention) yaşanmaz; CPU çekirdeği arttıkça throughput lineer olarak ölçeklenir.
Linux OS sayfa önbelleği baypas edilerek NVMe blok aygıtına doğrudan DMA ile yazılır. Çift bellek kopyalaması ortadan kalkar ve RAM ihtiyacı 1/3'e iner.
KafkaJS, librdkafka, Spring Kafka veya kafka-python kütüphaneleriyle eksiksiz çalışır. Uygulama kodunuzda tek bir satır dahi değiştirmeniz gerekmez.
RabbitMQ, klasik bir mesaj kuyruğudur (message queue). Mesaj bir tüketici tarafından okunduğunda kuyruktan silinir. İş yükünüz e-posta gönderme, fatura PDF oluşturma gibi tekil iş görevleri (worker tasks) ise RabbitMQ harika bir seçenektir. Ancak iş yükünüz olay güdümlü mimariler (Event Sourcing), denetim izi (Audit Logging) veya verinin geriye dönük tekrar oynatılması (Log Replay) gerektiriyorsa; Redpanda açık ara doğru ve geleceğe dönük tercihtir.