Как указать количество модулей внутри составного модуля?

Например, я хотел бы создать составной модуль как «myprocessor»:

xd> module compose myprocessor --definition "processor1 | processor2 | processor3".

Кроме того, я также хотел бы, чтобы число процессоров1, процессор2 и процессор3 составляло 4:2:1 в составном модуле, и все связи между ними находились в процессе.

Как я могу достичь этого? Могу ли я указать его во время создания с помощью команды типа:

xd> module compose myprocessor --definition "processor1 --count=4| processor2 --count=2| processor3 --count=1"

или во время развертывания?

Спасибо,
Саймон


person t.s.tao    schedule 08.07.2014    source источник


Ответы (1)


Нет; это невозможно. Составной модуль представляет собой единый модуль (черный ящик), в котором модули-компоненты жестко связаны друг с другом.

Но поскольку у вас есть «сокращение» счетчиков, просто установите счетчик на 4 при использовании составного модуля. Чего вы пытаетесь достичь, используя меньше процессора 2/3, чем 1?

person Gary Russell    schedule 08.07.2014
comment
Спасибо за ответ. Использование счетчиков «Уменьшение» — это просто пример, чего я хочу добиться: 1. Разверните все модули в составном модуле в процессе, чтобы избежать дополнительных сетевых переходов из-за использования шины данных, такой как RabbitMQ. 2. Можно указать количество/параллелизм каждого модуля в составном модуле, чтобы они имели совпадающую пропускную способность обработки друг с другом. - person t.s.tao; 09.07.2014
comment
Как я уже сказал черный ящик. Если ваша производительность требует n процессора x, используйте n составного модуля. Составные модули жестко связаны внутри; для достижения того, что вы хотите, потребуется дополнительная сложность (поточность) в составном модуле. Вы всегда можете добиться того, чего хотите, используя ExecutorChannel внутри модуля, т. е. указать канал input с dispatcher и task-executor (пул потоков). - person Gary Russell; 09.07.2014