2017-08-22 2 views
0

Nouveau à Storm et juste comprendre le concept de becs et comment y parvenir parallélisme.Parallélisme dans les becs

J'ai défini un bec A et j'ai défini 3 tâches et 3 exécuteurs et 1 boulon (Ne nous préoccupons pas de boulon). Supposons que chaque tâche reçoit un agent dédié. Cela signifie qu'il y a 3 becs prêts à recevoir un Stream. Un message ou un flux (disons X) entre dans la topologie. Comment cela est-il géré dans le bec?

a. Est-ce que tous les becs recevront le flux A? Si oui, alors tous les 3 becs le traiteront et le même message est traité plusieurs fois bien? b. Qui décidera dans le cas ci-dessus quel bec doit recevoir ce flux? c. Est-il possible d'équilibrer la charge à travers les becs? d. Est-ce qu'il devrait y avoir seulement un bec dans la topologie? P.S: Considérons qu'il s'agit d'un bec général, à ne pas confondre avec les becs Kafka.

Répondre

1

Storm est juste un cadre, vos questions sont essentiellement déterminées par la mise en œuvre du code de bec. Donc, malheureusement, il n'y a aucun moyen de considérer "bec général". Nous devons discuter d'un bec spécifique.

Prenons le bec kafka par exemple. Fondamentalement, il n'a aucune différence avec le consommateur normal de kafka. Kafka Spout a une logique pour distribuer des partitions à différentes tâches de bec, et l'équilibre de charge est également géré à cette période, une partition sera consommée par une seule tâche de bec, donc il n'y aura pas de données multiples.