- Kafka'nın genel olarak hızlı olmasının nedenleri
- düşük gecikmeli I/O kullanması (RAM)
- sıralı I/O veri yapıları kullanması (log)
- zero-copy uygulaması
- yatay ölçeklenebilir bir sistem olması
- veri sıkıştırma ve toplu işleme
- zero-copy nedir?
- dosyayı socket'e kopyalarken oluşan yükü azaltan, işletim sistemi destekli bir arayüz
- Linux'ta
sendfile komutu
- Peki Kafka zero-copy sayesinde nasıl hızlandı?
- Java'da NIO paketine
transferTo fonksiyonu eklendi
- Kafka bunu kullanarak mesajları kullanıcı alanına getirmeden, çekirdek alanından doğrudan ağa gönderir ve bu da hız açısından büyük avantaj sağlar
- geleneksel yöntem ile
transferTo kullanılan yöntemin performansı ölçüldüğünde, ikincisinin %65 daha hızlı olduğu görülmüştür
2 yorum
Metindeki içerikte
niokonusunda biraz karışıklık olmuş gibi;nio,non-blocking iodeğil,new ioanlamına gelir. Hem blocking hem de non-blocking’i destekler.Bazı belgelerde
non-blocking iokısaltması olarak yazdığı için yanlış biliyormuşum. Geri bildiriminiz için teşekkürler.