Конфигурация диспетчера 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, и любая помощь приветствуется. Спасибо.

0 ответов

Другие вопросы по тегам