Akka Dynamic Resized Router: необходимо отложить использование новых маршрутизаторов до готовности - PullRequest
0 голосов
/ 30 мая 2019

Я создаю Java-приложение с использованием фреймворка akka. Я использую динамически изменяемый размер маршрутизатора (циклический перебор), чтобы в периоды пиковой нагрузки маршрутизатор мог масштабироваться соответствующим образом. Все маршруты местные. Проблема в том, что, когда вводятся новые маршрутизаторы, сообщения отправляются маршрутизатору до того, как маршруты могут быть инициализированы. Это приводит к потере сообщений. Есть ли способ отложить использование недавно добавленного маршрутизатора, пока он не будет «готов».

Я видел несколько решений, представленных для тех, кто работает с кластерами akka или удаленными маршрутизаторами, но это локально. В идеале это был бы элемент конфигурации задержки запуска, как с планировщиком, но я не видел этого с маршрутизатором.

Вот моя запись конфигурации для роутера

        router = round-robin-pool
        resizer {
          lower-bound = 2
          upper-bound = 20
          pressure-threshold = 1
          rampup-rate = 0.25
          backoff-threshold = 0.3
          backoff-rate = 0.1
          messages-per-resize = 10
        } 
...