23 puntos por frogred8 2024-05-19 | 2 comentarios | Compartir por WhatsApp
  • Razones generales por las que Kafka es rápido
    • Usa I/O de baja latencia (ram)
    • Usa una estructura de datos de I/O secuencial (log)
    • Aplica zero-copy
    • Sistema con escalado horizontal
    • Compresión de datos y procesamiento por lotes
  • ¿Qué es zero-copy?
    • Una interfaz soportada por el sistema operativo que mejora la sobrecarga que ocurre al copiar un archivo a un socket
    • En Linux, el comando sendfile
  • Entonces, ¿cómo se volvió más rápido Kafka gracias a zero-copy?
    • En Java se añadió la función transferTo al paquete nio
    • Al usar esto, Kafka obtiene una gran ventaja de velocidad al enviar los mensajes directamente a la red desde el espacio del kernel, sin traerlos al espacio de usuario
    • Al medir el rendimiento del método tradicional frente al método que usa transferTo, este último mostró un resultado 65% más rápido

2 comentarios

 
vwjdalsgkv 2024-05-19

Creo que en el contenido principal se confundió un poco lo de NIO: NIO no significa non-blocking IO, sino new IO. Soporta tanto blocking como non-blocking.

 
frogred8 2024-05-19

En algunos documentos decía que era la abreviatura de non-blocking io, así que yo lo había entendido mal. Gracias por la retroalimentación.