недавно я разрабатываю некоторые инструменты синхронизации для топологии шторма, но у меня все еще есть несколько вопросов об обмене данными в кластере шторма:
Если компонент (носик/болт) сконфигурирован с более чем одним исполнителем на одного рабочего, скажем, номер рабочего — один, parallelism_hint компонента — 3, а номер задачи использует настройку по умолчанию (т. е. 1), значит ли это, что их 3 экземпляры компонента в воркере? Если нет, следует ли использовать поле компонента в синхронизированном блоке?
Если в компоненте создается дополнительный поток с именем «athread» (в методе
prepare()
илиopen()
), сколько экземпляров «athread» имеется в кластере storm?Как Понимание параллелизма топологии Storm говорит, что рабочий процесс — это отдельный процесс, а рабочий процесс выполняет подмножество топологии. Означает ли это, что глобальные переменные (например, общедоступные статические поля или другие статические переменные) топологии могут совместно использоваться только одним рабочим?
Если параметр parallelism_hint воронки настроен больше 1, а в методе
nextTuple()
есть предложениеUtils.sleep(1000)
, означает ли это, что количество испускаемых кортежей воронки равно числу исполнителей (потоков) воронки каждую секунду?
Большое спасибо.