Camel-kafka
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") |
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") |
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.