23 pontos por frogred8 2024-05-19 | 2 comentários | Compartilhar no WhatsApp
  • Razões gerais pelas quais o Kafka é rápido
    • Uso de I/O de baixa latência (ram)
    • Uso de estrutura de dados de I/O sequencial (log)
    • Aplicação de zero-copy
    • Sistema com escalabilidade horizontal
    • Compressão de dados e processamento em lote
  • O que é zero-copy?
    • Uma interface suportada pelo sistema operacional que reduz a sobrecarga gerada ao copiar um arquivo para um socket
    • No Linux, o comando é sendfile
  • Então, como o Kafka ficou mais rápido com zero-copy?
    • Em Java, a função transferTo foi adicionada ao pacote nio
    • Usando isso, o Kafka obtém grande ganho de desempenho ao enviar mensagens diretamente da área do kernel para a rede, sem trazê-las para o espaço do usuário
    • Em medições de desempenho comparando o método tradicional com o método usando transferTo, o segundo mostrou um resultado 65% mais rápido

2 comentários

 
vwjdalsgkv 2024-05-19

Acho que houve uma pequena confusão no conteúdo do texto sobre NIO: NIO não significa non-blocking I/O, e sim new I/O. Ele oferece suporte tanto a blocking quanto a non-blocking.

 
frogred8 2024-05-19

Em alguns documentos, estava escrito que era a sigla de non-blocking io, então eu tinha entendido errado. Obrigado pelo feedback.