Note de lecture : Kafka : The Definitive Guide, par Neha Narkhede, Gwen Shapira & Todd Palino

Note : 7 ; Pour comprendre réellement Kafka, par ceux qui l’ont fait… Mais probablement hélas dépassé.

Voici un ouvrage qui, s’il n’est peut-être pas le « definitive guide » qu’il promet d’être (je reviendrais là-dessus) va nous permettre de réellement appréhender ce qui est aujourd’hui l’un des joueurs dominant du monde du big data. Qui de mieux placé pour cela que l’équipe qui fut à l’origine du projet chez LinkedIn ? C’est la promesse du livre et elle est bel et bien tenue.

Justement le texte, parlons-en. Ilse présente en 11 chapitres totalisant 280 pages. Il débute classiquement par un premier chapitre « Meet Kafka » qui nous présente la bête en 16 pages. En fait il fait bien mieux qu’une simple présentation. Certes, il évoque les principes généraux du middleware orienté messages, mais surtout ce chapitre permet d’appréhender le principe de la rétention basée sur le disque. Partitionning, réplication et mirroring sont aussi abordés mais ils seront plus développés par la suite. L’installation de Kafka est au cœur du second chapitre. Ou pas exactement, en fait. Certes, le chapitre aborde de manière bien décomposée l’installation de Kafka, mais aussi de Zookeeper. Mais ce qui occupe la plus grande partie des 20 pages de ce chapitre est consacré à la configuration du broker, mais aussi du cluster jusqu’à des questions assez délicates liées à la JVM ou aux écritures sur disque. En réalité, la configuration de Kafka va bien plus loin que cela, mais on est déjà largement au-delà du niveau « premier contact » !

Au chapitre 3, nous nous frottons à l’écriture d’un « producteur », c’est-à-dire de l’alimentation de Kafka, et ce via du code Java. J’ai bien aimé les extraits de code, ni trop courts faute de quoi il nous manque le contexte, ni trop long quand le code utile est noyé dans une litanie. La partie est plutôt complète, intégrant bien sûr la construction et l’envoi d’un message, puis intégrant progressivement, la configuration, la sérialisation avec Avro puis finalement le partitioning. Un régal. Le chapitre 4 lui fait écho en nous livrant le même exercice côté consommateur. Et l’on va assez loin, je dois dire : désérialisation, bien sûr, mais aussi rebalancing, groupes de consommateur et gestion de l’offset de lecture (qui est bel et bien un élément important à gérer côté consommateur).

Lire la suite

Note de lecture : Apache Kafka, par Nishant Garg

Note : 3 ; Une introduction rapide (et hélas obsolète) mais qui ne vous conduira pas bien loin.

Si vous n’avez pas le temps, mais alors vraiment pas le temps, ce très court texte pourrait bien être pour vous. En quelques 88 pages et 6 chapitres, il vous met le pied à l’étrier sur la compréhension de base de Kafka. Ca, ce sont pour les bonnes nouvelles. Du côté moins glorieux, sachez que ce court texte est vraiment très mal noté un peu partout et qu’il y a de bonnes raisons à cela. J’ai obtenu cet ebook grâce à une offre promotionnelle de lot et je serais certainement allé dans le même sens si je l’avais payé plein tarif !

De plus l’ouvrage date maintenant terriblement. En 8 ans, Kafka est passé de la version 7 à la version 2.8, ce qui est énorme, sans compter l’écosystème qui s’est formé autour. Passons maintenant (rapidement) le contenu en revue. Le premier chapitre présente Kafka très rapidement. C’est fort succinct, mais au moins les concepts de base sont posés. Plus succinct encore, le chapitre 2 évoque l’installation de Kafka, mais seulement en version développeur / local. La compilation de l’outil est évoquée, mais cela ne parait pas spécialement pertinent, la même information est disponible en ligne.

Passons au chapitre 3 et à la configuration d’un cluster. Cette fois, c’est la version 0.8 qui nous sert de référence ! L’auteur passe en revue 3 configurations de complexité croissante et nous propose de les explorer en mode « hello world ». Bien sûr, on est très loin des informations nécessaires pour la production, ou même à un véritable développement, mais cela correspond au niveau d’information que je cherchais. Au chapitre 4, on nous promet de découvrir l’architecture de Kafka. Cela reste très haut niveau, du niveau décideur, mais là encore cela correspondait à mon besoin. On y évoque les partitions, le miroring et la réplication façon Powerpoint.

Lire la suite