23 points par frogred8 2024-05-19 | 2 commentaires | Partager sur WhatsApp
  • Raisons générales pour lesquelles Kafka est rapide
    • utilisation d'E/S à faible latence (RAM)
    • utilisation de structures de données en E/S séquentielles (log)
    • application du zero-copy
    • système à montée en charge horizontale
    • compression des données et traitement par lots
  • Qu'est-ce que le zero-copy ?
    • interface prise en charge par l'OS qui améliore la surcharge générée lors de la copie d'un fichier vers un socket
    • sous Linux, la commande sendfile
  • Alors, comment Kafka est-il devenu plus rapide grâce au zero-copy ?
    • en Java, la fonction transferTo a été ajoutée dans le package NIO
    • en l'utilisant, Kafka envoie les messages directement du noyau vers le réseau sans les faire passer par l'espace utilisateur, ce qui apporte de gros gains de performance
    • lors de mesures de performance entre la méthode existante et celle utilisant transferTo, cette dernière a montré un résultat 65 % plus rapide

2 commentaires

 
vwjdalsgkv 2024-05-19

Il me semble qu’il y a une légère confusion dans le contenu de l’article à propos de NIO : NIO ne signifie pas non-blocking I/O, mais New I/O. Il prend en charge à la fois les modes bloquant et non bloquant.

 
frogred8 2024-05-19

Dans certains documents, c'était indiqué comme l'acronyme de non-blocking io, donc je m'étais trompé. Merci pour le retour.