2 votes

Compter les éléments distincts d'un flux lu simultanément

J'ai plusieurs fils d'écoute qui lisent un flux de messages (Kafka). Chaque message a un identifiant. Les consommateurs/le flux garantissent au moins une consommation. La plupart du temps, le flux fournit le message exactement une fois. Le nombre de messages à attendre est connu à l'avance. Lorsque tous les messages sont reçus, je veux arrêter tous les threads des auditeurs. Le nombre de messages peut être au maximum de 50 millions. Quelle structure de données est la plus appropriée pour cela ?

Je pensais utiliser std::set , std::map et en utilisant un mutex à chaque insertion du fil. Un seul thread peut-il être réellement plus rapide dans un tel cas d'utilisation ? Y a-t-il quelque chose de plus optimal ?

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