- Alasan umum Kafka cepat
- Menggunakan I/O latensi rendah (RAM)
- Menggunakan struktur data I/O sekuensial (log)
- Menerapkan zero-copy
- Sistem yang dapat diskalakan secara horizontal
- Kompresi data dan pemrosesan batch
- Apa itu zero-copy?
- Antarmuka yang didukung OS untuk mengurangi beban yang terjadi saat menyalin file ke socket
- Di Linux, menggunakan perintah
sendfile
- Jadi, bagaimana Kafka menjadi lebih cepat berkat zero-copy?
- Di Java, fungsi
transferTo ditambahkan ke paket NIO
- Dengan menggunakan ini, Kafka tidak membawa pesan ke ruang pengguna, melainkan langsung mengirimkannya dari ruang kernel ke jaringan sehingga memperoleh banyak keuntungan dalam hal kecepatan
- Saat mengukur performa antara cara lama dan cara yang menggunakan
transferTo, yang terakhir menunjukkan hasil 65% lebih cepat
2 komentar
Sepertinya ada sedikit kekeliruan terkait NIO di isi artikel; NIO bukan
non-blocking I/O, melainkanNew I/O. NIO mendukung keduanya, yaitu blocking maupun non-blocking.Di beberapa dokumen tertulis sebagai singkatan dari non-blocking io, jadi saya sempat salah paham. Terima kasih atas masukannya.