Синхронизировать носики и болт в Цапле - PullRequest
0 голосов
/ 16 ноября 2018

Я использую Heropy.Моя топология выглядит следующим образом:

Spout1 -> Bolt1 -> Bolt2

Spout2 ---------> Bolt2

Итак, Bolt2 нужна информация оти Spout2, и Bolt1, чтобы выдать результат, однако информация от Spout2 поступает быстрее, чем информация от Bolt1, и Bolt2 должен ждать, пока информация о Spout2 и Bolt1 не появится.Как я могу синхронизировать поток информации, используя Heron API, чтобы Bolt2 генерировал результат только после всей доступной информации?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Heron не синхронизирует кортежи из разных компонентов автоматически. Таким образом, вам нужно будет буферизовать кортежи из Spout2 и дождаться прибытия соответствующих кортежей из Bolt1, а затем выполнить вычисления.

0 голосов
/ 16 ноября 2018

Обычно порядок / синхронизация в потоковом режиме не гарантируется.Я чувствую, что spout1 и spout2 трудно синхронизировать на 100%.

Я думаю, что есть один вариант, который вы могли бы рассмотреть: подключить болт1 к spout2 и напрямую выбросить кортежи из spout2, отсоединить болт2 от spout2.Таким образом, bolt1 становится источником истинного порядка.

Оконное управление может быть еще одним вариантом, но оно требует больше соображений и работает.

...