J'ai la configuration du cluster de kafka entre les machines (machines n ° 1 et la machine n ° 2) et la configuration est la suivante:Utilisation de Kafka pour transférer des fichiers entre deux clients
1) Chaque machine est configurée pour avoir un courtier et un zookeeper en cours d'exécution. 2) Les propriétés serveur et zookeeper sont configurées pour avoir un zookeeper à plusieurs courtiers et plusieurs nœuds.
J'ai actuellement la compréhension des KafkaProducer et KafkaConsumer suivants:
1) Si je vous envoie un fichier de machine#1
à machine#2
, il est décomposé en lignes en utilisant des délimiteurs par défaut (LF ou \ n). 2) Par conséquent, si la machine n ° 1 publie 2 fichiers différents sur le même sujet, cela ne signifie pas que machine#2
recevra les deux fichiers. Au lieu de cela, chaque ligne sera ajoutée aux partitions du journal des rubriques et un machine#2
le lira à partir des partitions du journal dans l'ordre d'arrivée. à-dire l'ordre ne sont pas les mêmes que
file1-line1
file1-line2
end-of-file1
file2-line1
file2-line2
end-of-file2
mais il pourrait être quelque chose comme: fichier1-line1 fichier2-line1 fichier1-line2 fin de fichier1 fichier2 -line2 fin de -file2
En supposant que ce qui précède est correct (je suis heureux de me tromper), je crois que l'utilisation de Consumer Producer pour transférer des fichiers n'est pas la bonne approche (Probablement connecter API est la solution ici). Puisque le site Web de Kafka indique que «l'agrégation de notation» est un cas d'utilisation très populaire, je me demandais si quelqu'un a des exemples de projets ou un site Web qui montre des exemples d'échange de fichiers en utilisant Kafka.
P.S. Je sais que par définition Connect API
dit que c'est pour un échange de données fiable entre kafka et les systèmes «autres» - mais je ne vois pas pourquoi l'autre système ne peut pas avoir kafka. J'espère donc que ma question n'aura pas à se concentrer sur les «autres» systèmes non-kafka.
Merci beaucoup pour cela. Je suis en train de travailler sur un PoC qui pourra éventuellement soit transférer des fichiers d'un producteur kafka («machine n ° 1») à d'autres et vice-versa. Donc vous dites que je dois utiliser l'API du connecteur? ou Dois-je utiliser Stream à la place? – ha9u63ar
@ ha9u63ar S'il s'agit d'un transfert bidirectionnel, vous devez exécuter la même instance en tant que producteur et consommateur connecté à un cluster kafka. Vous pouvez également utiliser des connecteurs ou un simple client Producer/Consumer –