0% ont trouvé ce document utile (0 vote)
41 vues29 pages

Introduction à Apache Kafka et ses fonctionnalités

Apache Kafka est un système de messagerie distribué permettant de centraliser les flux de données en temps réel, offrant des fonctionnalités telles que la durabilité, la tolérance aux pannes et la faible latence. Les messages sont organisés en topics et partitions, où chaque partition est un journal séquentiel, et les producteurs envoient des messages à ces topics, tandis que les consommateurs les lisent. Kafka utilise également Apache Zookeeper pour la coordination et la gestion de l'état du cluster.

Transféré par

Meriem Ben ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
41 vues29 pages

Introduction à Apache Kafka et ses fonctionnalités

Apache Kafka est un système de messagerie distribué permettant de centraliser les flux de données en temps réel, offrant des fonctionnalités telles que la durabilité, la tolérance aux pannes et la faible latence. Les messages sont organisés en topics et partitions, où chaque partition est un journal séquentiel, et les producteurs envoient des messages à ces topics, tandis que les consommateurs les lisent. Kafka utilise également Apache Zookeeper pour la coordination et la gestion de l'état du cluster.

Transféré par

Meriem Ben ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours Apache Kafka, centraliser les

flux de données en temps réel


Un système unifié d'agents de messages

Dr. Raoudha Rahmeni


Raoudha,rahmeni@gmail,com

1
Vue d’ensemble de
Kafka
Qu’est ce que Kafka?

▪ Apache Kafka est un système de messagerie distribué.


▪ Aussi connu sous le nom de «plateforme de diffusion en continu» «distributing streaming
platform» .

▪ Les données stockées dans Kafka sont durables, dans l'ordre, et peuvent être lues de manière
déterministe.
▪ Open-sourced par LinkedIn en 2011.

▪ Haut débit
▪ Très distribué
▪ Tolérance de panne
▪ Faible latence (moins de retard )
Topic / Partition / Offset

Topic "my_topic"

Partition 0 0 1 2 3 4 5 6 7 8 9 10

Partition 1 0 1 2 3 4 5 6 7 8 9 10 11

Messages
Partition 2 0 1 2 3 4 5 6 7 8
Writes

Partition 3 0 1 2 3 4 5 6 7 8 9

Partition 4 0 1 2 3 4 5 6 7 8 9 10

Old New
Topic / Partition / Offset

Topic Partition Offset

- Similaire à un dossier et à - Similaire à un dossier et à - Similaire à un dossier et à


l'intérieur, les messages l'intérieur, les messages l'intérieur, les messages
sont stockés. sont stockés. sont stockés.
- Les producteurs écrivent - Les producteurs écrivent - Les producteurs écrivent
des messages sur un des messages sur un des messages sur un
sujet spécifique, et les sujet spécifique, et les sujet spécifique, et les
consommateurs les lisent. consommateurs les lisent. consommateurs les lisent.

5•
Topics et Partitions

▪ Les messages dans Kafka sont classés en Topics (sujets).


▪ Analogue à une table de base de données.
▪ Les topics sont décomposés en partitions.
▪ Une partition est un journal (log):
▪ Les messages y sont écrits de manière à ajouter uniquement.
▪ Ils sont lus dans l'ordre du début à la fin.
▪ Il n'y a aucune garantie de l'ordre temporel des messages sur l'ensemble du topic.
▪ Les partitions sont la manière dont Kafka fournit la redondance et l'évolutivité.
▪ Chaque partition peut être hébergée sur un serveur différent.
▪ Cela signifie qu'un seul topic peut être mis à l'échelle horizontalement sur plusieurs
serveurs.
▪ Les partitions définissent également le niveau de parallélisme qu'un topic peut prendre
en charge.
Broker Kafka

▪ Un seul serveur Kafka est appelé broker.


▪ Lorsque vous interagissez avec les producteurs
▪ Le broker reçoit des messages des producteurs;
▪ Leur attribue des décalages;
▪ Réplique les messages à travers d'autres broker;
▪ Valide les messages vers le stockage sur disque.
▪ Au service des consommateurs
▪ Il répond pour récupérer les demandes de partitions avec les messages qui
ont été validés.
Broker Kafka

Limitations d’un seul broker

Pas de tolérance
Performance Scalabilité
aux pannes

- Un seul broker
- Si le broker tombe - Avec un seul broker,
pourrait être limité
en panne, il n’y a il n'est pas possible
en termes de
pas de répliques de répartir la charge
capacité de
pour prendre le entre plusieurs
traitement et de
relais. machines.
stockage.

8•
Cluster Kafka

▪ Un cluster Kafka est un ensemble de serveurs Kafka qui travaillent ensemble pour
offrir une haute disponibilité, une tolérance aux pannes et une gestion efficace des
données.

Leader

Leader
Cluster Kafka

▪ Les brokers Kafka sont conçus pour fonctionner dans le cadre d'un cluster.
▪ Une partition appartient à un seul broker du cluster (leader).
▪ Une partition peut être répliquée sur d'autres brokers du cluster (répliques)

Broker 1

Topic A Topic A
Partition 0 Partition 1
Leader
Replicate Replicate
Producer Topic A Topic A
Partition 0 Partition 1

Broker 2

Topic A Topic A
Partition 0 Partition 1

Leader

10 •
Producteur

▪ Un producteur Kafka (ou Kafka producer) est une application ou un processus qui envoie
des messages à un cluster Kafka. Il publie ces messages dans des topics, qui sont des
canaux de communication où d'autres composants, comme les consommateurs, peuvent
récupérer les données.

Broker
(replica)
Broker
Producer ack (partition leader)
Broker
(replica)
Producteur

Caractéristiques et
Fonctions
Acks (Accusés
Partitionnement de réception)
Production de
des messages
messages

- Un topic Kafka est - Le producteur peut

- Crée et envoie des divisé en plusieurs configurer le niveau

messages (données, partitions. Lorsqu'un d'accusé de réception

événements) à un producteur envoie un pour garantir que les

ou plusieurs topics message, il peut choisir messages sont

dans le cluster dans quelle partition de correctement reçus et

Kafka. ce topic le message répliqués par le cluster

sera envoyé Kafka


12 •
Producteur

▪ Les producteurs décident vers quelles partitions envoyer les messages.


▪ Les producteurs attendent l'accusé de réception du broker:
▪ ack=0
▪ N'attend pas la confirmation du broker leader.
ack=1
▪ N'attend que les accusés de réception du broker leader.
▪ ack=all
▪ Attend les accusés de réception du broker leader et de toutes les répliques,

Broker
(replica)
Broker
Producer ack (partition leader)
Broker
(replica)

13 •
Segment et Rétention
▪ Kafka organise les données de partition de topics en fonction de segments.

Un segment est une partie d’un log (journal) dans un topic Kafka. Chaque partition d’un topic
Kafka est divisée en plusieurs segments. Ces segments sont des fichiers sur le disque, et
Kafka écrit de manière séquentielle dans le dernier segment actif de chaque partition.

▪ Segmentation: Lorsqu'un segment atteint une certaine taille ou après un certain temps
(selon la configuration), Kafka le clôture et en crée un nouveau.

Broker New
messages

Oldest segment Active segment

Offset 09

Offset 11
Offset 10
Offset 06
Offset 07
Offset 08
Offset 00

Offset 03
Offset 01

Offset 05
Offset 04
Offset 02

Topic A
Partition 0
Segment 0 Segment 1 Segment 2 Segment 3
Segment et Rétention

▪ kafka stocke les segments pendant un certain temps ou jusqu'à ce qu'il atteigne
une certaine taille.

On parle de Rétention :
La rétention dans Kafka détermine combien de temps ou quelle quantité de
données Kafka conserve dans une partition avant de les supprimer. Kafka n'efface
pas les données immédiatement après leur consommation, mais les conserve
selon les règles de rétention définies.

15 •
Segment et Rétention

La politique de rétention des


enregistrements de Kafka

Le cluster Kafka conserve tous les enregistrements de données à l'aide d'une


période de rétention configurable.
Les enregistrements de données sont conservés même s'ils ont été
consommés par les consommateurs.

Exemple :
si la période de conservation est définie sur une semaine, les enregistrements de
données sont stockés pendant une semaine après leur création avant d'être
supprimés. Ainsi, les consommateurs peuvent accéder à ces données pendant
une semaine après leur création.
16 •
Segment et Rétention

Configuration de rétention

Rétention basée sur Rétention basée sur la


le temps taille

- Les messages plus - Les messages sont


anciens que la durée supprimés une fois que
de rétention configurée la taille totale des
sont supprimés. segments dépasse une
(log.retention.hours) certaine limite.
(log.retention.minutes)… (log.retention.bytes)

17 •
Segment et Rétention

Comment fonctionnent ces


deux ensembles :
Chaque partition d’un topic est constituée de plusieurs segments.

Kafka continue d’ajouter des messages dans le segment actif jusqu’à ce qu’il
atteigne la taille ou le temps maximum, puis il le clôture et en ouvre un
nouveau.
Lorsque les segments atteignent la limite de rétention définie (temps ou
taille), ils sont éligibles pour suppression.

Cela permet d'éviter que Kafka ne stocke des données indéfiniment, et


de limiter l'utilisation de l'espace disque tout en assurant que les
messages sont disponibles pendant une certaine période pour la
consommation.
18 •
Consommateur

▪ Chaque partition peut être consommée par un seul consommateur au sein d'un groupe de
consommateurs.
▪ Les consommateurs s'organisent pour équilibrer la charge.
Consumer Group
Partition 0 0 1 2 3 4 5 6 7 8 9 10

Consumer 0
Partition 1 0 1 2 3 4 5 6 7 8 9 10 11

Partition 2 0 1 2 3 4 5 6 7 8 Consumer 1

Partition 3 0 1 2 3 4 5 6 7 8 9
Consumer 2

Partition 4 0 1 2 3 4 5 6 7 8 9 10

Old New
Rebalance des consommateurs

▪ Si un consommateur est supprimé du groupe de consommateurs, les partitions de ce consommateur


seront attribuées aux autres consommateurs.
▪ Si un nouveau consommateur est ajouté au groupe de consommateurs, il recevra des partitions d'autres
consommateurs, en maintenant un bon équilibre.
Consumer
Group
Partition 0 0 1 2 3 4 5 6 7 8 9 10

Consumer 0
Partition 1 0 1 2 3 4 5 6 7 8 9 10 11

Partition 2 0 1 2 3 4 5 6 7 8 Consumer 1

Partition 3 0 1 2 3 4 5 6 7 8 9
Consumer 2

Partition 4 0 1 2 3 4 5 6 7 8 9 10

Old New
Offsets (Décalages)

▪ Si un consommateur échoue au sein d'un groupe de consommateurs, un autre consommateur


doit avoir lieu, à partir des mêmes décalages (Offsets) où le consommateur défaillant s'est
arrêté.
▪ Afin de sauvegarder cet état quelque part, les consommateurs peuvent renvoyer leurs
décalages (Offsets) à Kafka dans une rubrique spécifique.
▪ En cas de défaillance:
▪ La validation des décalages après le traitement peut générer des doublons.
▪ La validation des décalages avant de les traiter peut aboutir à des messages non traités.

5 6 7 8 9
my_topic, partition 2

Broker consumer_offsets
Consumer
commit 4
1 2 3 4

Already processed
Zookeeper

▪ Apache Zookeper est un service de coordination distribuée pour les applications


distribuées.
▪ Zookeeper offre quelques garanties:
▪ Cohérence séquentielle : Les mises à jour d'un client seront appliquées dans
l'ordre dans lequel elles ont été envoyées.
▪ Atomicité : Les mises à jour réussissent ou échouent. Aucun résultat partiel.
▪ Image système unique : Un client verra la même vue du service quel que soit
le serveur auquel il se connecte.
▪ Fiabilité : Une fois qu'une mise à jour a été appliquée, elle persistera à partir de
ce moment jusqu'à ce qu'un client écrase la mise à jour.
▪ Opportunité : La vue client du système est garantie d'être à jour dans un
certain délai.
▪ Kafka utilise Apache Zookeeper pour conserver l'état du cluster:
▪ Liste des membres actuels d'un cluster;
▪ Liste des topics, des leaders de partitions et des répliques;
▪ Contrôleur courant; etc.
Quiz : Système de messagerie Apache Kafka

1. Qu'est-ce qu'Apache Kafka ?


A) Un système de messagerie distribué
B) Un système de gestion de base de données
C) Un serveur web
D) Un service cloud

2. Quel est le rôle principal d'Apache Kafka ?


A) Gérer des bases de données relationnelles
B) Diffuser et traiter des données en temps réel
C) Gérer les fichiers d'un serveur web
D) Gérer les connexions réseaux
Quiz : Système de messagerie Apache Kafka

3. Quels sont les principaux composants de Kafka ?


A) Producteur, Consommateur, Topic, Broker, Zookeeper
B) Tableaux, Lignes, Colonnes, Index
C) Files d'attente, Message, Accusé de réception
D) Serveur, Client, Protocole, Session

4. Qu'est-ce qu'un Producteur dans Kafka ?


A) Un système qui envoie des messages vers des topics Kafka
B) Un système qui consomme des messages depuis des topics Kafka
C) Un système qui stocke les messages
D) Un système qui gère les partitions

24 •
Quiz : Système de messagerie Apache Kafka

5. Qu'est-ce qu'un “topic” dans Kafka ?


A) Un type de message
B) Un flux ou catégorie dans laquelle les messages sont publiés
C) Un outil de gestion des clusters Kafka
D) Une stratégie de partitionnement des données

6. Quel est le rôle d'un Broker Kafka ?


A) Réceptionner et stocker les messages
B) Traiter les requêtes des consommateurs
C) Gérer les offsets des consommateurs
D) Coordonner les producteurs

25 •
Quiz : Système de messagerie Apache Kafka

7. Quel est le rôle de Zookeeper dans Kafka ?

A) Il stocke tous les messages produits par Kafka

B) Il coordonne et gère les clusters Kafka

C) Il suit les sessions des utilisateurs

D) Il gère les partitions des messages

8. Qu'est-ce qu'un Consommateur dans Kafka ?

A) Un système qui envoie des messages à Kafka


B) Un système qui reçoit des messages depuis des topics Kafka

C) Un système qui gère les clusters Kafka

D) Un système qui crée des topics Kafka

26 •
Quiz : Système de messagerie Apache Kafka

9. Qu'est-ce que l'offset du consommateur dans Kafka ?

A) L'index du prochain message à être consommé par un groupe de consommateurs


B) Le nombre de messages produits par seconde

C) La taille de la partition d'un consommateur

D) Le délai entre la production et la consommation d'un message

10. Kafka peut gérer des messages en :

A) Temps réel uniquement

B) Temps réel et mode batch

C) Mode batch uniquement

D) Mode archive uniquement

27 •
Quizz

▪ Lequel des éléments suivants est garanti par Kafka? ↑


▪ A: Une instance de consommateur reçoit les messages dans le même ordre qu'ils sont
produits.
▪ B: Une instance de consommateur est garantie d'obtenir tous les messages produits.
▪ C: aucune instance de consommateur ne recevra le même message
▪ D: Toutes les instances de consommateur recevront tous les messages

▪ Quel est le fichier de configuration pour configurer les propriétés ZooKeeper dans Kafka?
▪ A: zookeeper.xml
▪ B: zookeeper.properties
▪ C: zk.yaml
▪ D: kafka.zk.properties
Quizz

▪ Pourquoi la réplication est-elle nécessaire dans Kafka? Parce qu'il assure que ...
▪ A: Un message publié ne sera pas perdu
▪ B: Un message publié ne sera pas enregistré
▪ C: Un message publié ne sera pas supprimé
▪ D: Un message publié ne sera pas envoyé

Vous aimerez peut-être aussi