web-dev-qa-db-fra.com

Apache Camel vs Apache Kafka

Pour autant que je sache, Apache Kafka est une plate-forme de messagerie asynchrone. Apache Camel est une plate-forme mettant en œuvre les modèles d'intégration d'entreprise.

Alors, quelles sont les différences pratiques entre Apache Camel et Apache Kafka? Nous avions prévu de mettre en œuvre le système avec Apache Camel, ce qui est relativement facile, mais notre client souhaitait plutôt Apache Kafka sans justification.

Quels seraient les avantages de choisir Apache Kafka pour implémenter une fonctionnalité de file d'attente de messages, qui pourrait également être implémentée avec Apache Camel? Je crains que Kafka n'introduise des frais généraux inutiles dans le projet. Comparons-nous des pommes et des oranges?

Nous avons besoin d’API simples pour configurer et utiliser des files de messages en cluster. Notre plan initial consistait à utiliser Camel pour consommer/produire sur des files d'attente JMS ou ActiveMQ en cluster. Comment Kafka faciliterait-il cette tâche? L’application elle-même s’exécuterait sur le serveur WebLogic dans les deux cas.

La messagerie serait de type point à point, où plusieurs instances du même service sont en cours d'exécution, mais une seule instance devrait traiter le message et émettre le résultat conformément à la politique d'équilibrage de la charge. Les files de messages étant également mises en cluster, aucune défaillance de l'instance de service ou de la file d'attente n'est à l'origine de SPOF.

7
Tuomas Toivonen

Camel et Kafka sont des choses totalement différentes. Dans de nombreux cas d'utilisation, camel est simplement utilisé en tant que client de kafka/activemq/....

Kafka et activemq sont similaires, mais aussi différentes choses, référez-vous Quelle est la différence entre Apache kafka et ActiveMQ . Kafka a un débit plus élevé et des données toujours sur disque, donc un peu plus fiable qu'actemq.

Kafka est généralement utilisé en tant que flux de données en temps réel et, en général, activemq est principalement utilisé pour l'intégration entre applications, indique le livre. Mais dans la plupart des cas réels, kafka et activemq peuvent se remplacer facilement.

4
Solo

Il est très difficile de comparer ces deux. Ils ne couvrent pas les mêmes domaines de travail, mais certains systèmes existent, où vous pouvez les remplacer les uns par les autres.

Donc très bientôt.

Kafka est une plate-forme de messagerie avec une capacité de traitement en continu des messages en continu Apache Kafka .

Camel est un cadre ETL qui peut transformer des messages/événements/données à partir de "n'importe quel" point d'entrée (voir la liste des noeuds par Camel) et l'envoyer à "n'importe quel" résultat Apache Camel - Modèles d'intégration d'entreprise .

Vous pouvez utiliser Camel sans Kafka, et inversement. Mais il y a bien sûr des possibilités d'utiliser avec succès les deux ensemble.

  • Cas 1. Vous traitez le courrier et le stockez dans PostgreSQL DB. Kafka est inutile. 
  • Cas 2. Vous traitez des messages d’ActiveMQ et les envoyez à Kafka. Vous pouvez utiliser les deux.