Настройка Dispatcher для ведения журнала akka

2

Я ворвался в источники akka и понял, что он использует так называемый класс BusLogging который публикует сообщения EventStream. EventStream::publish(event: Event) по очереди просто публикует событие получателям, находящимся в cache: Map.empty[Classifier, Set[Subscriber]].

Я обнаружил, что ведение журнала выполняется актером /system/log1-Slf4jLogger. В документации говорится:

Актер обработчика событий не имеет ограниченного входящего и запускается на диспетчере по умолчанию. Это означает, что запись больших объемов данных может сильно повлиять на ваше приложение. Это может быть несколько смягчено, если вы хотите использовать бэкэнд асинхронного ведения журнала.

Есть ли способ переместить его в другой диспетчер, который я настраиваю так, как я хочу?

Теги:
akka

1 ответ

2

Вы можете настроить его, добавив эти параметры в файл application.conf:

akka.loggers-dispatcher = "my-blocking-dispatcher"

my-blocking-dispatcher {
  type = Dispatcher
  executor = "thread-pool-executor"
  thread-pool-executor {
    fixed-pool-size = 4
  }
  throughput = 1
}

Ссылка на конфигурацию Akka: http://doc.akka.io/docs/akka/2.5/scala/dispatchers.html http://doc.akka.io/docs/akka/2.5.4/scala/general/configuration.html # конфиг-Акка-пульт

Ещё вопросы

Сообщество Overcoder
Наверх
Меню