Я использую 8-ядерную машину с 4 рабочими слотами, у меня было 10 болтов. Насколько мне известно, каждый болт использует одного исполнителя по умолчанию. То есть: у моего 8 ядра всего восемь исполнителей. Это правильно или неправильно? Если правильно, как установить количество параллелизма для моих 10 болтов, если неправильно, как правильно установить параллелизм?
1 ответ
Понять это так:
Один узел (сервер) имеет одного супервизора.
Супервайзер запускает / останавливает работников.
Рабочий - это процесс.
Исполнители являются потоками в рабочем процессе.
Один исполнитель может запустить несколько задач.
Задача - это экземпляр вашего излива или болта.
Количество исполнителей всегда меньше или равно количеству заданий.
Так что теперь не имеет значения, сколько ядер у вашей машины. Идите вперед и создайте столько исполнителей, сколько у вас болтов. Storm будет использовать пул потоков для управления потоками, поэтому ваши задачи будут автоматически распределяться по времени на вашем процессоре.
Если вы создаете более одного работника и у вас есть второй узел супервизора, тогда этот супервизор, возможно, выполнит 5 из 10 ваших болтов под одним работником, а первый супервизор, возможно, выполнит 5 из ваших 10 болтов под другим работником.
Нет правильного и неправильного способа установить параллелизм. Это сильно зависит от того, какую логику вы хотите запрограммировать.