Топология шторма: несколько против одного

Устройства будут отправлять несколько сообщений в Azure Eventhub (еще не решено). Каждое сообщение будет иметь разные форматы и содержимое (хотя и требует различной обработки). Каждое сообщение будет содержать уникальный ServiceID, определяющий тип сообщения.

Теперь у нас есть два сценария, как с этим справиться.

a) 1. Spout получит сообщение и передаст его ParserBolt 2. ParserBolt прочитает ServiceID и на основе ID передаст его другому болту

В этом случае каждое сообщение (на основе ServiceID) будет проходить по другому пути в топологии. Все сообщения могут обрабатываться одной топологией.

б) 1. Несколько топологий - для каждого ServiceID по одной. 2. Spout получит сообщение и передаст его Bolt 3. Bolt прочитает ServiceID - если правильный serviceID передаст его следующему Bolt, если не правильный serviceID, эта работа будет закрыта.

Поскольку Storm гарантирует, что каждое сообщение будет обработано хотя бы один раз, каждое сообщение в какой-то момент придет к правильной топологии. Но топологии будут отклонять множество сообщений, которые не предназначались для них.


person Erik    schedule 27.04.2016    source источник
comment
Эй, Эрик, добро пожаловать в stackoverflow. Ваш вопрос довольно открытый, и на него нет четкого ответа. Не могли бы вы перефразировать, чтобы задать более конкретный вопрос? См. здесь для получения дополнительной информации   -  person Kit Menke    schedule 27.04.2016


Ответы (1)


Если вы не можете разделить входной поток за пределами Storm, вам определенно следует использовать единую топологию. Это сэкономит много сетевого трафика и ненужной репликации данных.

person Matthias J. Sax    schedule 29.04.2016