2016-04-27 16 views
0

Geräte senden mehrere Nachrichten an Azure Eventhub (noch nicht entschieden). Jede Nachricht hat unterschiedliche Formate und Inhalte (obwohl sie unterschiedlich verarbeitet werden müssen). Jede Nachricht enthält eine eindeutige ServiceID, die angibt, welche Art von Nachricht.Storm Topology: Mehrere im Vergleich zu einem

Wir haben jetzt zwei Szenarien im Kopf, wie man damit umgeht.

a) 1. Spout msg erhalten und übergeben es an einen ParserBolt 2. ParserBolt ServiceID gelesen wird und basierend auf der ID an eine andere übergeben Bolzen

In diesem Fall ist jeder msg (bezogen auf die ServiceID) wird einen anderen Pfad in der Topologie durchlaufen. Alle Nachrichten könnten von einer Topologie behandelt werden.

b) 1. Mehrere Topologien - für jede ServiceID eine. 2. Spout wird msg empfangen und weitergeben 3. Bolt Bolt ServiceID liest - wenn richtig serviceid es auf die nächste Schraube passieren wird, wenn nicht korrekt serviceid

diesen Job entlassen Da Sturm garantiert, dass jeder msg zumindest einmal verarbeitet - jede msg wird irgendwann an die richtige Topologie kommen. Aber die Topologien werden viele Nachrichten ablehnen, die nicht für sie bestimmt waren.

+0

Hey Erik, willkommen zu stackoverflow. Ihre Frage ist ziemlich offen und es gibt keine klare Antwort. Können Sie eine andere Frage formulieren? Siehe [hier für weitere Informationen] (http://stackoverflow.com/help/dont-ask) –

Antwort

0

Wenn Sie Ihren Eingangsstrom nicht außerhalb von Storm aufteilen können, sollten Sie auf jeden Fall eine einzelne Topologie verwenden. Dies spart viel Netzwerkverkehr und unnötige Datenreplikation.