
Guide essentiel de Kafka
Description
Introduction au livre
Écrit par des ingénieurs de Confluent et LinkedIn, qui ont développé Kafka.
Guide des bonnes pratiques pour la création et l'exploitation d'un environnement Kafka
Des architectes et développeurs d'applications aux ingénieurs de production découvrant la plateforme de streaming Kafka, cette édition mise à jour et augmentée (avec de nouveaux chapitres couvrant l'API AdminClient de Kafka, les transactions, les nouvelles fonctionnalités de sécurité et les changements d'outils) vous apprendra à traiter des données et des flux en temps réel à grande échelle.
Guide des bonnes pratiques pour la création et l'exploitation d'un environnement Kafka
Des architectes et développeurs d'applications aux ingénieurs de production découvrant la plateforme de streaming Kafka, cette édition mise à jour et augmentée (avec de nouveaux chapitres couvrant l'API AdminClient de Kafka, les transactions, les nouvelles fonctionnalités de sécurité et les changements d'outils) vous apprendra à traiter des données et des flux en temps réel à grande échelle.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
Préface du traducteur xv
Revue du lecteur bêta xvi
Recommandation pour la deuxième édition xviii
Recommandation de la 1re édition xx
Début xxiii
CHAPITRE 1 Premiers pas avec Kafka 1
1.1 Publication/Abonnement à la diffusion des messages 2
1.2 Introduction à Kafka 4
1.3 Pourquoi Kafka ? 10
1.4 Écosystème de données 12
1.5 Les origines de Kafka 15
1.6 Premiers pas avec Kafka 18
CHAPITRE 2 Installation de Kafka 19
2.1 Préférences 19
2.2 Installation du courtier Kafka 23
2.3 Mise en place d'un courtier 25
2.4 Choix du matériel 34
2.5 Utilisation de Kafka dans le cloud 36
2.6 Configuration d'un cluster Kafka 37
2.7 Considérations relatives aux environnements de production 44
2.8 Résumé 48
CHAPITRE 3 Producteur Kafka : Écrire des messages à Kafka 49
3.1 Aperçu du producteur 50
3.2 Création d'un producteur Kafka 52
3.3 Envoi de messages avec Kafka 54
3.4 Mise en place du producteur 57
3.5 Sérialiseur 65
3.6 Partition 73
3.7 En-tête 76
3.8 Intercepteur 77
3,9 quarts, étranglé à 79
3.10 Résumé 81
CHAPITRE 4 Consommateur Kafka : Lecture des données depuis Kafka 83
4.1 Consommateur Kafka : Concept 83
4.2 Création d'un consommateur Kafka 90
4.3 S'abonner au sujet 91
4.4 Boucle d'interrogation 92
4.5 Configuration du consommateur 94
4.6 Engagement et décalage 102
4.7 Rééquilibrage de l'écouteur 109
4.8 Lecture des enregistrements à un décalage spécifique 112
4.9 Comment sortir d'une boucle d'interrogation 113
4.10 Désérialiseur 115
4.11 Consommateurs autonomes : pourquoi et comment utiliser les consommateurs sans groupes de consommateurs 121
4.12 Résumé 123
CHAPITRE 5 Gestion de Kafka par le code au sein de votre programme 125
5.1 Vue d'ensemble du client d'administration 126
5.2 Utilisation du client d'administration : Fermer les paramètres de création 128
5.3 Fonctionnalités essentielles de gestion des sujets 130
5.4 Gestion des paramètres 134
5.5 Gestion des groupes de consommateurs 136
5.6 Métadonnées du cluster 140
5.7 Tâches d'administration avancées 141
5.8 Tests 145
5.9 Résumé 147
CHAPITRE 6 Les mécanismes internes de Kafka 149
6.1 Appartenance au cluster 149
6.2 Contrôleur 150
6.3 Réplication 158
6.4 Traitement des requêtes 161
6.5 Stockage physique 169
6.6 Résumé 181
CHAPITRE 7 Transmission fiable des données 183
7.1 Assurance de fiabilité 184
7.2 Réplication 185
7.3 Paramètres du courtier 186
7.4 Utilisation des producteurs dans les systèmes de confiance 192
7.5 Utilisation des consommateurs dans les systèmes de confiance 195
7.6 Vérification de la fiabilité du système 200
7.7 Résumé 204
CHAPITRE 8 : La structure sémantique de « exactement une fois » 205
8.1 Producteur idempotent 206
8.2 Transaction 210
8.3 Performance des transactions 225
8.4 Résumé 225
CHAPITRE 9 Construction d'un pipeline de données 227
9.1 Considérations relatives à la construction d'un pipeline de données 228
9.2 Kafka Connect vs. Producteur/Consommateur 235
9.3 Kafka Connect 235
9.4 Alternatives à Kafka Connect 257
9.5 Résumé 258
CHAPITRE 10 Mise en miroir des données entre les clusters 259
10.1 Cas d'utilisation de la mise en miroir inter-clusters 260
10.2 Architecture multi-cluster 261
10.3 Apache Kafka's MirrorMaker 275
10.4 Autres solutions de mise en miroir inter-clusters 288
10.5 Résumé 293
CHAPITRE 11 Sécurité 295
11.1 Application des paramètres de sécurité 296
11.2 Protocoles de sécurité 298
11.3 Authentification 301
11.4 Chiffrement 324
11.5 Approbation 326
11,6 Merci 333
11.7 Sécurité du gardien de zoo 335
11.8 Sécurité de la plateforme 338
11.9 Résumé 340
CHAPITRE 12 : COURIR KAFKA 343
12.1 Sujet Tâche 343
12.2 Groupe de consommateurs 350
12.3 Modification des paramètres dynamiques 353
12.4 Opérations d'écriture et de lecture 358
12.5 Gestion des partitions 364
12.6 Autres outils 374
12.7 Travail dangereux 375
12.8 Résumé 377
CHAPITRE 13 SURVEILLANCE DE KAFKA 379
13.1 Principes de base des indicateurs 379
13.2 Objectifs de niveau de service 383
13.3 Métriques du courtier Kafka 386
13.4 Surveillance des clients 410
13,5 Surveillance de rack 417
13.6 Surveillance des points de terminaison 418
13.7 Résumé 419
CHAPITRE 14 Traitement de flux 421
14.1 Qu'est-ce que le traitement de flux ? 423
14.2 Concepts de traitement de flux 426
14.3 Modèles de conception pour le traitement de flux 434
14.4 Flux Kafka par l'exemple 443
14.5 Flux Kafka : Vue d’ensemble architecturale 452
14.6 Cas d'utilisation du traitement de flux 459
14.7 Choix d'un framework de traitement de flux 460
14.8 Résumé 462
ANNEXE A Installation de Kafka sur d'autres systèmes d'exploitation 465
A.1 Installation sur les systèmes Windows 465
A.2 Installation sur macOS 468
ANNEXE B Outils supplémentaires 471
B.1 Plateforme intégrée 471
B.2 Installation et gestion du cluster 473
B.3 Surveillance et exploration des données 474
B.4 Bibliothèque client 476
B.5 Traitement de flux 476
Recherche 477
Revue du lecteur bêta xvi
Recommandation pour la deuxième édition xviii
Recommandation de la 1re édition xx
Début xxiii
CHAPITRE 1 Premiers pas avec Kafka 1
1.1 Publication/Abonnement à la diffusion des messages 2
1.2 Introduction à Kafka 4
1.3 Pourquoi Kafka ? 10
1.4 Écosystème de données 12
1.5 Les origines de Kafka 15
1.6 Premiers pas avec Kafka 18
CHAPITRE 2 Installation de Kafka 19
2.1 Préférences 19
2.2 Installation du courtier Kafka 23
2.3 Mise en place d'un courtier 25
2.4 Choix du matériel 34
2.5 Utilisation de Kafka dans le cloud 36
2.6 Configuration d'un cluster Kafka 37
2.7 Considérations relatives aux environnements de production 44
2.8 Résumé 48
CHAPITRE 3 Producteur Kafka : Écrire des messages à Kafka 49
3.1 Aperçu du producteur 50
3.2 Création d'un producteur Kafka 52
3.3 Envoi de messages avec Kafka 54
3.4 Mise en place du producteur 57
3.5 Sérialiseur 65
3.6 Partition 73
3.7 En-tête 76
3.8 Intercepteur 77
3,9 quarts, étranglé à 79
3.10 Résumé 81
CHAPITRE 4 Consommateur Kafka : Lecture des données depuis Kafka 83
4.1 Consommateur Kafka : Concept 83
4.2 Création d'un consommateur Kafka 90
4.3 S'abonner au sujet 91
4.4 Boucle d'interrogation 92
4.5 Configuration du consommateur 94
4.6 Engagement et décalage 102
4.7 Rééquilibrage de l'écouteur 109
4.8 Lecture des enregistrements à un décalage spécifique 112
4.9 Comment sortir d'une boucle d'interrogation 113
4.10 Désérialiseur 115
4.11 Consommateurs autonomes : pourquoi et comment utiliser les consommateurs sans groupes de consommateurs 121
4.12 Résumé 123
CHAPITRE 5 Gestion de Kafka par le code au sein de votre programme 125
5.1 Vue d'ensemble du client d'administration 126
5.2 Utilisation du client d'administration : Fermer les paramètres de création 128
5.3 Fonctionnalités essentielles de gestion des sujets 130
5.4 Gestion des paramètres 134
5.5 Gestion des groupes de consommateurs 136
5.6 Métadonnées du cluster 140
5.7 Tâches d'administration avancées 141
5.8 Tests 145
5.9 Résumé 147
CHAPITRE 6 Les mécanismes internes de Kafka 149
6.1 Appartenance au cluster 149
6.2 Contrôleur 150
6.3 Réplication 158
6.4 Traitement des requêtes 161
6.5 Stockage physique 169
6.6 Résumé 181
CHAPITRE 7 Transmission fiable des données 183
7.1 Assurance de fiabilité 184
7.2 Réplication 185
7.3 Paramètres du courtier 186
7.4 Utilisation des producteurs dans les systèmes de confiance 192
7.5 Utilisation des consommateurs dans les systèmes de confiance 195
7.6 Vérification de la fiabilité du système 200
7.7 Résumé 204
CHAPITRE 8 : La structure sémantique de « exactement une fois » 205
8.1 Producteur idempotent 206
8.2 Transaction 210
8.3 Performance des transactions 225
8.4 Résumé 225
CHAPITRE 9 Construction d'un pipeline de données 227
9.1 Considérations relatives à la construction d'un pipeline de données 228
9.2 Kafka Connect vs. Producteur/Consommateur 235
9.3 Kafka Connect 235
9.4 Alternatives à Kafka Connect 257
9.5 Résumé 258
CHAPITRE 10 Mise en miroir des données entre les clusters 259
10.1 Cas d'utilisation de la mise en miroir inter-clusters 260
10.2 Architecture multi-cluster 261
10.3 Apache Kafka's MirrorMaker 275
10.4 Autres solutions de mise en miroir inter-clusters 288
10.5 Résumé 293
CHAPITRE 11 Sécurité 295
11.1 Application des paramètres de sécurité 296
11.2 Protocoles de sécurité 298
11.3 Authentification 301
11.4 Chiffrement 324
11.5 Approbation 326
11,6 Merci 333
11.7 Sécurité du gardien de zoo 335
11.8 Sécurité de la plateforme 338
11.9 Résumé 340
CHAPITRE 12 : COURIR KAFKA 343
12.1 Sujet Tâche 343
12.2 Groupe de consommateurs 350
12.3 Modification des paramètres dynamiques 353
12.4 Opérations d'écriture et de lecture 358
12.5 Gestion des partitions 364
12.6 Autres outils 374
12.7 Travail dangereux 375
12.8 Résumé 377
CHAPITRE 13 SURVEILLANCE DE KAFKA 379
13.1 Principes de base des indicateurs 379
13.2 Objectifs de niveau de service 383
13.3 Métriques du courtier Kafka 386
13.4 Surveillance des clients 410
13,5 Surveillance de rack 417
13.6 Surveillance des points de terminaison 418
13.7 Résumé 419
CHAPITRE 14 Traitement de flux 421
14.1 Qu'est-ce que le traitement de flux ? 423
14.2 Concepts de traitement de flux 426
14.3 Modèles de conception pour le traitement de flux 434
14.4 Flux Kafka par l'exemple 443
14.5 Flux Kafka : Vue d’ensemble architecturale 452
14.6 Cas d'utilisation du traitement de flux 459
14.7 Choix d'un framework de traitement de flux 460
14.8 Résumé 462
ANNEXE A Installation de Kafka sur d'autres systèmes d'exploitation 465
A.1 Installation sur les systèmes Windows 465
A.2 Installation sur macOS 468
ANNEXE B Outils supplémentaires 471
B.1 Plateforme intégrée 471
B.2 Installation et gestion du cluster 473
B.3 Surveillance et exploration des données 474
B.4 Bibliothèque client 476
B.5 Traitement de flux 476
Recherche 477
Image détaillée

Dans le livre
Kafka ressemble au concept de « flux d'événements » dans le traitement de flux (traité au chapitre 14).
De même que les applications de traitement de flux nécessitent un « magasin d'état » pour visualiser « l'état actuel » d'un « flux d'événements », la compréhension d'un système comme Kafka nécessite un outil capable d'organiser clairement « l'état actuel ».
Ce livre est un guide de Kafka écrit par des personnes qui développent Kafka depuis longtemps.
On pourrait dire qu'il s'agit d'un « stockage d'état » créé par les personnes qui ont créé le « flux d'événements » qui a permis le développement de Kafka jusqu'à présent.
Ayant contribué au projet Kafka pendant un certain temps, j'ai traduit ce livre dans l'espoir qu'il puisse servir de bon « dépôt d'informations » pour les lecteurs coréens.
---Extrait de la « Préface du traducteur »
Apache Kafka est un système de publication/abonnement de messages conçu pour résoudre les problèmes décrits ci-dessus.
On l'appelle également « journal de transactions distribué » ou « plateforme de flux distribuée ».
Les journaux de transactions des systèmes de fichiers ou des bases de données sont conçus pour préserver de manière permanente tous les enregistrements de transactions, permettant ainsi de récupérer de façon cohérente l'état du système.
De même, les données stockées dans Kafka sont conservées de manière ordonnée et déterministe et peuvent être lues de manière déterministe.
De plus, les données peuvent être distribuées et stockées au sein du système afin d'améliorer les performances lors de l'extension et de garantir la disponibilité des données même en cas de panne.
--- p.4
Certaines personnes se demandent d'où vient le nom Kafka et s'il a une signification particulière.
Jay Krebs a fait une remarque à ce sujet :
J'ai pensé qu'il était judicieux d'utiliser le nom de l'auteur, puisque Kafka est un système optimisé pour l'écriture.
J'ai suivi beaucoup de cours de littérature à l'université et j'ai adoré les œuvres de Franz Kafka.
De plus, le nom sonnait bien pour un projet open source.
On peut donc affirmer qu'il n'existe aucun lien entre le nom et la fonction de Kafka.
--- p.18
Depuis 2019, la communauté Apache Kafka travaille sur un projet ambitieux.
Il s'agit d'un passage d'un contrôleur basé sur ZooKeeper à un quorum de contrôleur basé sur Raft.
Une version préliminaire d'un nouveau contrôleur appelé « KRaft » a été incluse dans Apache Kafka 2.8, et à partir de la version 3.3, elle a été officiellement désignée comme prête pour la production, abandonnant la désignation « expérimentale ».
--- p.152
Le rôle principal de Kafka dans un pipeline de données est de servir de tampon très large et stable entre les différentes étapes du pipeline.
Cela découple efficacement les extrémités d'écriture et de lecture des données du pipeline de données, permettant ainsi d'envoyer les mêmes données provenant d'une source unique à plusieurs applications ou systèmes cibles ayant des exigences différentes en matière de délais et de disponibilité.
Cette capacité à découpler les deux côtés du pipeline de données, associée à sa fiabilité, sa sécurité et son efficacité, fait de Kafka une solution adaptée à la plupart des pipelines de données.
--- p.227
À partir de la version 3.4.0, Kafka ne prend en charge que Java 8 et versions ultérieures.
Toutefois, si votre environnement est critique en matière de sécurité, nous vous recommandons d'utiliser Java 11 si possible.
Le texte indique : « Kafka ne prend en charge par défaut que les protocoles postérieurs à TLSv1.2 et TLSv1.3 », mais c'est parce que TLSv1.3 est pris en charge à partir de Java 11.
À partir de Kafka 2.6.0, le comportement par défaut a été modifié pour activer automatiquement TLSv1.3 lors de l'utilisation de Java 11 ou version ultérieure.
De même que les applications de traitement de flux nécessitent un « magasin d'état » pour visualiser « l'état actuel » d'un « flux d'événements », la compréhension d'un système comme Kafka nécessite un outil capable d'organiser clairement « l'état actuel ».
Ce livre est un guide de Kafka écrit par des personnes qui développent Kafka depuis longtemps.
On pourrait dire qu'il s'agit d'un « stockage d'état » créé par les personnes qui ont créé le « flux d'événements » qui a permis le développement de Kafka jusqu'à présent.
Ayant contribué au projet Kafka pendant un certain temps, j'ai traduit ce livre dans l'espoir qu'il puisse servir de bon « dépôt d'informations » pour les lecteurs coréens.
---Extrait de la « Préface du traducteur »
Apache Kafka est un système de publication/abonnement de messages conçu pour résoudre les problèmes décrits ci-dessus.
On l'appelle également « journal de transactions distribué » ou « plateforme de flux distribuée ».
Les journaux de transactions des systèmes de fichiers ou des bases de données sont conçus pour préserver de manière permanente tous les enregistrements de transactions, permettant ainsi de récupérer de façon cohérente l'état du système.
De même, les données stockées dans Kafka sont conservées de manière ordonnée et déterministe et peuvent être lues de manière déterministe.
De plus, les données peuvent être distribuées et stockées au sein du système afin d'améliorer les performances lors de l'extension et de garantir la disponibilité des données même en cas de panne.
--- p.4
Certaines personnes se demandent d'où vient le nom Kafka et s'il a une signification particulière.
Jay Krebs a fait une remarque à ce sujet :
J'ai pensé qu'il était judicieux d'utiliser le nom de l'auteur, puisque Kafka est un système optimisé pour l'écriture.
J'ai suivi beaucoup de cours de littérature à l'université et j'ai adoré les œuvres de Franz Kafka.
De plus, le nom sonnait bien pour un projet open source.
On peut donc affirmer qu'il n'existe aucun lien entre le nom et la fonction de Kafka.
--- p.18
Depuis 2019, la communauté Apache Kafka travaille sur un projet ambitieux.
Il s'agit d'un passage d'un contrôleur basé sur ZooKeeper à un quorum de contrôleur basé sur Raft.
Une version préliminaire d'un nouveau contrôleur appelé « KRaft » a été incluse dans Apache Kafka 2.8, et à partir de la version 3.3, elle a été officiellement désignée comme prête pour la production, abandonnant la désignation « expérimentale ».
--- p.152
Le rôle principal de Kafka dans un pipeline de données est de servir de tampon très large et stable entre les différentes étapes du pipeline.
Cela découple efficacement les extrémités d'écriture et de lecture des données du pipeline de données, permettant ainsi d'envoyer les mêmes données provenant d'une source unique à plusieurs applications ou systèmes cibles ayant des exigences différentes en matière de délais et de disponibilité.
Cette capacité à découpler les deux côtés du pipeline de données, associée à sa fiabilité, sa sécurité et son efficacité, fait de Kafka une solution adaptée à la plupart des pipelines de données.
--- p.227
À partir de la version 3.4.0, Kafka ne prend en charge que Java 8 et versions ultérieures.
Toutefois, si votre environnement est critique en matière de sécurité, nous vous recommandons d'utiliser Java 11 si possible.
Le texte indique : « Kafka ne prend en charge par défaut que les protocoles postérieurs à TLSv1.2 et TLSv1.3 », mais c'est parce que TLSv1.3 est pris en charge à partir de Java 11.
À partir de Kafka 2.6.0, le comportement par défaut a été modifié pour activer automatiquement TLSv1.3 lors de l'utilisation de Java 11 ou version ultérieure.
--- p.307
Avis de l'éditeur
Un ouvrage pratique fondamental écrit par les créateurs de Kafka et traduit par un développeur coréen ayant participé à son développement.
Chaque application d'entreprise génère une variété de données, allant des messages de journalisation et des indicateurs au comportement des utilisateurs et aux messages sortants, et la manière dont ces données sont déplacées est aussi importante que les données elles-mêmes.
Des architectes et développeurs d'applications aux ingénieurs de production découvrant la plateforme de streaming Kafka, cette édition mise à jour et augmentée (avec de nouveaux chapitres couvrant l'API AdminClient de Kafka, les transactions, les nouvelles fonctionnalités de sécurité et les changements d'outils) vous apprendra à travailler avec des données en mouvement.
Des développeurs de Confluent et LinkedIn, qui ont travaillé sur Kafka, expliquent comment déployer un cluster Kafka en production, développer des microservices fiables et événementiels, et utiliser Kafka comme plateforme pour créer des applications de traitement de flux évolutives.
Grâce à des exemples détaillés, vous pouvez découvrir les principes de conception de Kafka, ses garanties de fiabilité, ses API principales et ses détails architecturaux, allant des protocoles de réplication aux contrôleurs et aux couches de stockage.
Bonnes pratiques pour la configuration et l'installation de Kafka
Comment utiliser les producteurs et les consommateurs Kafka pour écrire et lire des messages
• Modèles et exigences des cas d'utilisation pour une transmission de données fiable
Bonnes pratiques pour le développement de pipelines de données et d'applications utilisant Kafka
Comment surveiller, optimiser et maintenir Kafka en environnement de production
Les indicateurs de performance les plus importants pour l'exploitation de Kafka
ㆍ Des garanties de livraison sont disponibles dans Kafka pour les systèmes de traitement de flux.
Chaque application d'entreprise génère une variété de données, allant des messages de journalisation et des indicateurs au comportement des utilisateurs et aux messages sortants, et la manière dont ces données sont déplacées est aussi importante que les données elles-mêmes.
Des architectes et développeurs d'applications aux ingénieurs de production découvrant la plateforme de streaming Kafka, cette édition mise à jour et augmentée (avec de nouveaux chapitres couvrant l'API AdminClient de Kafka, les transactions, les nouvelles fonctionnalités de sécurité et les changements d'outils) vous apprendra à travailler avec des données en mouvement.
Des développeurs de Confluent et LinkedIn, qui ont travaillé sur Kafka, expliquent comment déployer un cluster Kafka en production, développer des microservices fiables et événementiels, et utiliser Kafka comme plateforme pour créer des applications de traitement de flux évolutives.
Grâce à des exemples détaillés, vous pouvez découvrir les principes de conception de Kafka, ses garanties de fiabilité, ses API principales et ses détails architecturaux, allant des protocoles de réplication aux contrôleurs et aux couches de stockage.
Bonnes pratiques pour la configuration et l'installation de Kafka
Comment utiliser les producteurs et les consommateurs Kafka pour écrire et lire des messages
• Modèles et exigences des cas d'utilisation pour une transmission de données fiable
Bonnes pratiques pour le développement de pipelines de données et d'applications utilisant Kafka
Comment surveiller, optimiser et maintenir Kafka en environnement de production
Les indicateurs de performance les plus importants pour l'exploitation de Kafka
ㆍ Des garanties de livraison sont disponibles dans Kafka pour les systèmes de traitement de flux.
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 14 avril 2023
Nombre de pages, poids, dimensions : 520 pages | 962 g | 188 × 257 × 24 mm
- ISBN13 : 9791192469768
- ISBN10 : 1192469763
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne