web-dev-qa-db-fra.com

Fluentd vs Kafka

Le cas d'utilisation est le suivant: Plusieurs applications Java sont en cours d'exécution et doivent toutes interagir avec différents indices (chaque cible ayant une cible spécifique) elasticsearch. Par exemple, une application A utilise les index A, B, C de ElasticSearch pour interroger et mettre à jour. L'application B utilise les indices A, C, D (par exemple). 

Une interface commune est nécessaire pour gérer tous ces flux de données. Actuellement, j'évalue Kafka et fluentd à cette fin. Quelqu'un peut-il expliquer lequel conviendra le mieux à cette situation? J'ai examiné les fonctionnalités de Kafka et de Fluentd et je ne comprends pas vraiment la différence que cela ferait ici. Merci beaucoup.

20
Akshay Arora

kafka fournit une messagerie de publication/abonnement sous forme de journal de validation distribué. Habituellement, vous installez kafka sur chaque hôte où vous devez produire des données à transférer ailleurs et tous ces hôtes formeront ensemble un cluster. La bonne chose ici est que si, pour une raison quelconque, la connectivité réseau devient instable ou tombe en panne, votre application peut continuer à produire des données/journaux sans être perdus. Par contre, si votre application envoie directement les journaux à un hôte de journalisation centralisé distant, vous risquez de perdre certains journaux en cas de panne du réseau.

fluentd est un collecteur de journaux centralisé généralement installé sur un hôte (ou plus si vous avez besoin d'une mise à l'échelle horizontale). Il se connecte aux sources de données remote, applique un filtrage et envoie des données de journal unifiées aux récepteurs de données remote

Dans la documentation fluentd, vous pouvez voir que fluentd peut consomme des données de kafka et produit des données vers kafka . Cela seul devrait indiquer que fluentd et kafka sont sur des couches différentes puisque le premier utilise le dernier.

Il serait plus logique de comparer couramment fluentd et logstash en réalité. En ce qui concerne fluentd, kafka est juste une autre source de données et/ou un puits de données, mais ce sont des bêtes complètement différentes.

Si vous voulez le meilleur des deux mondes, utilisez kafka en tant que canaux de données d'entrée/de sortie depuis/vers vos applications et fluentd (ou logstash) en tant que système de journalisation centralisé en cours de lecture à partir de ces sujets kafka.

Si vous voulez en savoir plus sur le sujet, vous pouvez lire comment fluentd et kafka se complètent très bien, lisez qu'ils ne se font pas concurrence.

43
Val

De: Le sang de votre pipeline de données

Kafka est principalement lié à la conservation des données du journal plutôt qu'au déplacement du journal Les données. Ainsi, les producteurs de Kafka doivent écrire le code pour mettre des données Les consommateurs de Kafka et de Kafka doivent écrire le code pour extraire les données de Kafka. 

Fluentd a à la fois des plugins d’entrée et de sortie pour Kafka afin que les données Les ingénieurs peuvent écrire moins de code pour obtenir des données dans Kafka. On a de nombreux utilisateurs qui utilisent Fluentd en tant que producteur et/ou consommateur de Kafka.

1
Basil Musa