Устройства будут отправлять несколько сообщений в Azure Eventhub (еще не решено). Каждое сообщение будет иметь разные форматы и содержимое (хотя и требует различной обработки). Каждое сообщение будет содержать уникальный ServiceID, определяющий тип сообщения.
Теперь у нас есть два сценария, как с этим справиться.
a) 1. Spout получит сообщение и передаст его ParserBolt 2. ParserBolt прочитает ServiceID и на основе ID передаст его другому болту
В этом случае каждое сообщение (на основе ServiceID) будет проходить по другому пути в топологии. Все сообщения могут обрабатываться одной топологией.
б) 1. Несколько топологий - для каждого ServiceID по одной. 2. Spout получит сообщение и передаст его Bolt 3. Bolt прочитает ServiceID - если правильный serviceID передаст его следующему Bolt, если не правильный serviceID, эта работа будет закрыта.
Поскольку Storm гарантирует, что каждое сообщение будет обработано хотя бы один раз, каждое сообщение в какой-то момент придет к правильной топологии. Но топологии будут отклонять множество сообщений, которые не предназначались для них.