Я создаю 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
}