Какой класс в storm определяет количество витков для каждого болта и носика?

Мне нужно знать, как Storm управляет количеством параллельных рабочих в каждом болте. ни класс IrichBolt, ни класс IRichSpout не реализуют класс Runnable. Мне действительно нужно знать, как шторм управляет многопоточностью?


person sahar shokouhi    schedule 30.11.2013    source источник


Ответы (1)


Это слишком широко, чтобы обсуждать, но вот кое-что, чем я мог бы поделиться. Вкратце Spouts или Bolts in storm можно определить как объект или компонент, который фактически обрабатывает данные. В терминологии шторма они известны как tasks (поэтому вам не нужен его родительский интерфейс, такой как IRichSpout, для реализации чего-то вроде Runnable ). Теперь поток, отвечающий за выполнение этих задач, называется Executors. Из документа

в терминологии Storm "параллелизм" специально используется для описания так называемого подсказки параллелизма, что означает начальное количество исполнителей (потоков) для компонент (носик или болт)

Эти исполнители (потоки) снова порождаются worker process . Из документа

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

Компьютер в штормовом кластере может run single or multiple such worker process для одной или нескольких топологий и each process can run executors for specific topologies (вы даже можете изменить этих исполнителей во время выполнения, используя механизм перебалансировки шторма). Для внутренней связи с этими рабочими процессами Storm использует различные очереди сообщений, поддерживаемые LMAX Disruptor . Они поддерживают свои собственные потоки, такие как поток получателя и поток отправителя для управления входящими и исходящими сообщениями.

Вероятно, вы можете посмотреть в эту страницу документа для лучшего обзора. И эта очень хорошая статья объясняя, как он обрабатывает параллелизм. Это может помочь вам копать дальше и поделиться своими выводами :)

person user2720864    schedule 30.11.2013