Aller au contenu principal
~/GiwiSoft
Camel 726344

Camel-kafka

Giwi 2 min de lecture Java, Camel, Réalisations

Le composant camel-kafka dédié au framework Camel et permettant des interactions avec le bus Kafka est disponible : camel-kafka La documentation se trouve là : Usage

Ce composant était l’un des premiers ponts entre Camel et Kafka, à l’époque où Kafka était encore dans l’incubateur Apache. Il permettait d’envoyer et de recevoir des messages entre les routes Camel et les topics Kafka.

Principe de fonctionnement

Le composant camel-kafka expose deux endpoints :

  • Producer (kafka:topic) - envoie les messages Camel vers un topic Kafka
  • Consumer (kafka:topic) - consomme les messages d’un topic Kafka et les injecte dans une route Camel

Exemple producteur

from("file:data/logs")
.to("kafka:log-topic");

Chaque fichier du répertoire data/logs est envoyé comme message sur le topic log-topic.

Exemple consommateur

from("kafka:log-topic?group=log-processor")
.log("Message reçu: ${body}")
.to("mongodb:myDb?database=logs&collection=entries&operation=insert");

Les messages du topic Kafka sont consommés et insérés dans MongoDB.

Options de configuration courantes

Option Description
broker Serveur Kafka (défaut : localhost:9092)
group ID du groupe de consommateurs
serializer Classe du serializer (défaut : StringEncoder)
deserializer Classe du deserializer
partitioner Partitionneur personnalisé
consumer.initial.settle Délai avant de démarrer la consommation

camel-kafka moderne

À l’époque de ce composant, Kafka était jeune et le support Camel était artisanal. Aujourd’hui, Apache Camel dispose d’un composant officiel camel-kafka maintenu par la communauté :

  • Documentation officielle actuelle : camel.apache.org/components/kafka
  • Support de Kafka 3.x, SSL, SASL, transactions, idempotence, pojo-serialization
  • Utilisation via from("kafka:topic?brokers=...&groupId=...")

Pour migrer de l’ancien composant vers le nouveau, la syntaxe des URI est quasi identique. Pensez simplement à vérifier les options de sécurité (SSL, SASL) qui sont désormais standard.