Конфигурация диспетчера Akka для повторно используемых акторов
Я пытаюсь запланировать диспетчер для актеров, привязанных к процессору, и немного не понимаю, как он впишется в мой макет актеров.
У меня есть следующая раскладка актеров на акка:
В mapperX
акторы на самом деле являются одним и тем же классом акторов, инициализированным разными /userX
актеры.
У каждого актера сопоставления есть 3 задачи с привязкой к ЦП, которые я использую Futures
запланировать. Основываясь на этой информации, я считаю, что следующий пользовательский диспетчер соответствует его требованиям:
mapper-dispatcher {
type = Dispatcher
executor = "fork-join-executor"
fork-join-executor {
parallelism-min = 3
parallelism-factor = 2.0
parallelism-max = 3
}
}
Проблема в моей раскладке актеров. У меня сложилось впечатление, что, когда я инициализирую акторы сопоставления с указанным выше диспетчером, все они будут использовать один и тот же диспетчер. У меня нет максимального количества/user
актеры и /mapper
актеры (они появляются при регистрации пользователей). В результате вышеуказанный диспетчер не будет его сокращать (большее количество участников означает, что большее количество участников будет бороться за потоки вышеуказанного диспетчера) и параллелизм каждогоmapper
актер будет затронут.
Думаю, я что-то не так делаю со своим актерским раскладом. Может кто-нибудь пролить свет на правильный подход к решению этой проблемы (мне кажется, что мне нужен отдельныйmapper
router, который удерживает рабочих под своим контролем, чтобы контролировать параллелизм против этого неконтролируемого роста параллелизма).
Я новичок в диспетчерах AKKA, и любая помощь приветствуется. Спасибо.