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 :
Recent Posts
- UbikLoadPack Video Streaming Plugin 9.1.5 14 June 2024
- What is DASH multi period and when to use it ? 4 December 2023
- UbikLoadPack Java Serialization Plugin 23 November 2023