Apprendre les concepts d'Apache Kafka
Apache Kafka est une plateforme de diffusion en flux distribuée utilisée par de nombreuses entreprises pour de nombreuses charges de travail par lots, ainsi que pour l'intégration de données en temps réel et les cas d'utilisation de la diffusion en flux de données.

La liste suivante présente certains concepts d'Apache Kafka :
Courtiers
Apache Kafka est un système de messagerie distribué. Un cluster Kafka se compose d'un ensemble de courtiers. Un cluster comporte au moins trois courtiers.
Diagramme des courtiers

Messages
Un message est une unité de données dans Kafka. Chaque message est représenté sous forme d'enregistrement composé de deux parties : une clé et une valeur. La clé est généralement utilisée pour les données concernant le message et la valeur constitue le corps du message. Kafka utilise indifféremment les termes enregistrement et message.
Rubriques et partitions
Chaque rubrique est un flux nommé de messages. Une rubrique est composée d'une ou de plusieurs partitions. Les messages d'une partition sont classées en fonction d'un nombre appelé le décalage. Avec plusieurs partitions réparties entre les courtiers, l'évolutivité d'un thème est accrue.
Si une rubrique dispose de plusieurs partitions, les données peuvent y être envoyées en parallèle afin d'augmenter le débit en répartissant les partitions dans le cluster. Le nombre de partitions joue également sur l'équilibrage de la charge de travail entre les consommateurs.
Pour plus d'informations, voir Leadership de partition.

Réplication
Pour améliorer la disponibilité, chaque rubrique peut être répliquée sur plusieurs courtiers. Pour chaque partition, un des courtiers est le leader et les autres courtiers sont des suiveurs.
La réplication s'effectue lorsque les suiveurs extraient de façon répétée des messages du leader.

Répliques synchrones
Une réplique de suiveur à jour par rapport au leader de partition est synchrone. Tout suiveur avec une réplique synchrone peut devenir le leader sans qu'aucun message ne soit perdu.
En cas d'échec du leader de partition, un autre leader est choisi parmi les suiveurs. Toutes les répliques doivent être généralement synchronisées. Il est acceptable qu'une réplique ne soit pas synchronisée temporairement lorsqu'elle est en cours de rattrapage après un incident.

Producteurs
Un fournisseur est une application client qui publie des messages dans une ou plusieurs rubriques. Un producteur peut publier dans une ou plusieurs rubriques et choisir éventuellement la partition qui stocke les données.
Vous pouvez également configurer votre producteur pour qu'il privilégie la vitesse ou la fiabilité en choisissant le niveau d'accusé de réception qu'il reçoit pour les messages qu'il publie.
Pour plus d'informations, voir Production de messages.

Consommateurs
Un consommateur est une application client qui lit les messages d'une ou de plusieurs rubriques et les traite. La différence entre la position actuelle d'un consommateur et le message le plus récent sur une partition est connue sous le nom de décalage de position.
Si le décalage augmente au fil du temps, alors le consommateur n'est pas en mesure de rester synchronisé. À court terme, cela ne pose pas de problème, mais le consommateur pourrait éventuellement manquer des messages si la période de conservation est dépassée.
Pour plus d'informations, voir Consommation de messages.

Groupes de consommateurs stables
Un groupe de consommateurs contient un ou plusieurs consommateurs qui travaillent ensemble pour traiter les messages d'une rubrique. Les messages d'une seule partition sont traités par un consommateur de chaque groupe.
Chaque partition est à tout moment affectée à un seul consommateur du groupe. Cette affectation garantit que les messages de chaque partition sont traités dans l'ordre.
Si plus de partitions que de consommateurs existent dans un groupe, certains consommateurs disposent de plusieurs partitions. Si plus de consommateurs que de partitions existent, certains consommateurs n'ont pas de partition.

Informations complémentaires
Pour plus d'informations, voir la documentationApache Kafka.