Kafka

Définition en suspens.

Apache Kafka est une plate-forme de streaming de données distribuée conçue pour la construction de pipelines de données en temps réel et d'applications de streaming. Il fonctionne comme un système de messagerie hautement évolutif, tolérant aux défauts et durable. L'architecture de base tourne autour des « sujets », qui sont des catégories ou des flux de records. Les producteurs publient des enregistrements vers des sujets et les consommateurs s'abonnent aux sujets pour lire ces enregistrements. Les courtiers Kafka, formant un cluster, stockent ces enregistrements de manière durable et les servent aux consommateurs. Les enregistrements sont organisés en partitions au sein des sujets, permettant un traitement parallèle et un débit élevé. Chaque partition est une sé

        graph LR
  Center["Kafka"]:::main
  Rel_ipfs["ipfs"]:::related -.-> Center
  click Rel_ipfs "/terms/ipfs"
  Rel_file_systems["file-systems"]:::related -.-> Center
  click Rel_file_systems "/terms/file-systems"
  Rel_distributed_ledger_technology_dlt["distributed-ledger-technology-dlt"]:::related -.-> Center
  click Rel_distributed_ledger_technology_dlt "/terms/distributed-ledger-technology-dlt"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Test de connaissances

1 / 1

🧒 Explique-moi comme si j'avais 5 ans

C'est comme un service postal super organisé et super rapide pour les informations numériques, où les messages (événements) sont envoyés à des boîtes aux lettres spécifiques (sujets) et peuvent être récupérés par quiconque s'abonne à cette boîte aux lettres, sans que l'expéditeur ait besoin de savoir qui sont les destinataires.

🤓 Expert Deep Dive

L'architecture de Kafka repose sur le concept d'un journal d'enregistrements distribué. Les topics sont partitionnés, et chaque partition est une séquence ordonnée de messages. Les brokers stockent ces partitions, et la réplication assure la tolérance aux pannes, avec une dynamique leader-suiveur pour la gestion des partitions. Les producteurs écrivent des messages au leader d'une partition, et les suiveurs répliquent les données de manière asynchrone. Les consommateurs maintiennent leur propre offset au sein de chaque partition, leur permettant de suivre leur progression indépendamment. Cette nature découplée permet un débit élevé et une grande scalabilité. Les compromis incluent le risque de désordre des messages au sein d'une partition si les consommateurs ne le gèrent pas avec soin, ainsi que la complexité de la gestion du rééquilibrage des groupes de consommateurs lors d'événements de défaillance ou de mise à l'échelle. ZooKeeper a été historiquement essentiel pour la gestion des métadonnées, l'élection du leader et l'enregistrement des brokers, mais le protocole KRaft vise à supprimer cette dépendance. Les vulnérabilités peuvent inclure une communication inter-brokers non sécurisée, un contrôle d'accès insuffisant entraînant des violations de données, et des attaques potentielles par déni de service ciblant les brokers ou ZooKeeper.

📚 Sources