2 votes

Évolution de la topologie des kafka-streams en production

J'ai une topologie complexe comprenant des KStreams, des KTables, des jointures, des recompositions, des filtres, des passages, des ramifications, des zips, etc. avec des clients en direct sur les sujets de sortie.

Tous les sujets d'entrée, intermédiaires et de sortie sont des sujets basés sur l'avro.

Comment gérer les modifications de la topologie (ajout de nouvelles étapes, de nouveaux sujets d'entrée-intermidate-sortie), sachant que kafka-streams maintient l'état interne et les changelogs, en respectant les exigences commerciales suivantes :

  • aucune perte de données
  • pas de duplication des données (dans une certaine mesure)
  • pas de temps d'arrêt

La réponse se trouve-t-elle quelque part entre l'utilisation kafka-streams-application-reset ou créer un tout nouveau groupe de consommateurs (id d'application) ?

3voto

Nishu Tayal Points 4250

Pour l'instant, il n'existe pas de concept de type checkpoint ou savepoint dans Kafka Streams.

Si vous devez mettre à jour les applications existantes, il est prudent d'utiliser le nouveau application.id ou de réinitialiser l'application existante. application.id .

Il existe des scénarios dans lesquels vous devez définir une nouvelle application.id en fonction des changements de topologie.

https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Flux+Données+%28Re%29Traitement+Scénarios

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X