Apache Kafka : découverte et prise en main

on 16 November 2021 EVENT and Tags: , , , , with 0 comments
Affiche des diapositives du meetup présentant Apache Kafka

Le meetup Apache Kafka

Une fois n’est pas coutume, Ubik Ingénierie s’est réuni ce mardi sur Lille pour boire de la bière et manger des pizzas.
Comme il fallait un prétexte, l’un de nos développeurs Java nous a partagé son expertise technique.
Il nous a fait découvrir Apache Kafka, le système d’échange de messages entre applications (voir le site officiel).

Cet article résume une présentation orale lors d’un meetup.
Plus de détails sont disponibles dans les slides en bas de l’article.

Contexte

Les utilisateurs sont de plus en plus friands de données fraîches.
Mais ils raffolent aussi de croisements de données pour mieux aider à décider des actions métier à effectuer.

Nous avons commencé par voir l’intérêt des brokers de messages par rapport à de simples batchs.
En effet, les batchs sont lourds à traiter et l’intégration de données est différée.

Aussi, nous avons vu l’intérêt par rapport à l’échange de données par appels d’APIs.
Car le nombre de connexions entre APIS, et donc d’échecs potentiels, grandit exponentiellement avec le nombre de services à interconnecter.

Les concepts d’Apache Kafka

Puis on est rentré dans le vif du sujet en parcourant les concepts de base d’Apache Kafka :

  • Comment un topic regroupe un ensemble de messages ?
  • Comment des producers peuvent envoyer des messages dans un même topic ?
  • Inversement, comment plusieurs consumers écoutent et reçoivent ces messages ?
  • Qu’est-ce que l’offset d’un consumer ?
  • Et enfin, comment optimiser les performances avec plusieurs brokers et réplicas ?

Confluent

Une fois ces notions intégrées, nous avons été plus loin avec la présentation des options disponibles avec Confluent.
Et plus particulièrement le Schema Registry, pour s’assurer que tous les messages soient au bon format.
Cela permet d’être certain de se comprendre entre les différentes équipes de la société employant Apache Kafka.

Show Time!

Nous avons continué avec une démo d’intégration avec Spring Boot grâce aux dépendances spring-kafka et kafka-avro-serializer.
La production se faisant de manière simplifiée avec une simple injection de dépendance de KafkaTemplate.
Et la consommation est tout aussi simple avec quelques annotations : @KafkaListener et @Payload, principalement.

Retour d’expérience sur l’utilisation d’Apache Kafka

Pour terminer, notre speaker nous a fait part de son retour d’expérience après avoir intégré Apache Kafka.
Il nous a ainsi livré quelques astuces à suivre et pistes à bannir…

Plus en détails

Vous trouverez bien sûr de plus amples détails dans les slides de la présentation :