J'essaie d'amener mon consommateur à mettre à jour dynamiquement sa consommation. Permettez-moi de vous donner un exemple plus concret en utilisant des animaux. Imaginez que j'ai une animalerie, chaque sujet est un type d'animal (par exemple les chiens, les chats, les poissons). La principale responsabilité de mon client Kafka est de saisir tout journal/enregistrement/message que nous avons dans Kafka et de les stocker dans une base de données. Supposons que mon consommateur consomme activement sur les sujets dogs
et cats
et que tout fonctionne bien, un nouveau type d'animal arrive dans le magasin et un nouveau sujet est généré dans le groupe Kafka. Comment puis-je informer mon client qu'un nouveau sujet a été ajouté?Comment informer le consommateur qu'un nouveau sujet a été créé dans Kafka?
J'ai deux propositions et je veux savoir laquelle est la meilleure? Ou s'il y a une meilleure 3ème option, s'il vous plaît faites le moi savoir.
1.) Le producteur envoie une requête http au consommateur et laisse le consommateur savoir que le producteur est sur le point de créer un nouveau sujet afin que le consommateur puisse agir en conséquence. Le problème avec cette approche est qu'il y a une condition de concurrence. Il y a une chance que le consommateur essaye de consommer avant que le sujet soit même créé. (Je viens de découvrir que si auto.topic.creation.enable
est défini sur true, la condition de concurrence n'est pas vraiment un problème.)
2.) Créez un sujet supplémentaire appelé dans le cluster Kafka. Donc, chaque fois que le producteur a envoyé un message au groupe Kafka avec succès, il diffuse les nouvelles par le biais de cette topic_updates
, peut-être qu'une simple chaîne suffira. Le consommateur écoute activement les mises à jour de ce sujet.
3.) Je ne sais pas, idéalement, je souhaite que Kafka puisse émettre un événement à chaque fois qu'un nouveau sujet est créé.
Nous vous remercions à l'avance