Групповой маршрутизатор циклического перебора akka.net - только маршрутизация на один маршрут

Вопрос про кластерные маршрутизаторы (стратегия = round-robin-group). Я не могу заставить его выполнять циклический перебор между моими маршрутами в кластерной настройке.

Моя установка выглядит следующим образом: узел A запускает свою систему акторов в контексте ASP.NET. Там у меня есть контроллер API, который разговаривает с актором A1, а этот актор затем общается с моим маршрутизатором. Затем этот маршрутизатор должен циклически перебирать сообщения по своим маршрутам, созданным на узле B (используя рабочую роль).

Узел B создает свою систему акторов в контексте службы Windows. Я дважды проверил, что все мои маршруты на узле B действительно созданы (сделано при запуске службы).

Чтобы проверить, какой из маршрутов получает сообщение, отправленное от маршрутизатора в узле A, я просто записываю консоль Self.Path в свой дескриптор получения. По какой-то причине один и тот же маршрут получает все сообщения, и они не распределяются по маршрутам.

См. конфигурацию на узле A ниже.

/workerRouter {
   router = round-robin-group
   routees.paths = [
      "/user/workers/worker0",
      "/user/workers/worker1", 
      "/user/workers/worker2",
      "/user/workers/worker3",
      "/user/workers/worker4",
      "/user/workers/worker5",
      "/user/workers/worker6",
      "/user/workers/worker7",
      "/user/workers/worker8",
      "/user/workers/worker9"
  ]
  cluster {
     enabled = on
     use-role = worker
  }
}

Маршрутизатор создается с помощью следующего кода:

ActorSystem.ActorOf(Props.Empty.WithRouter(FromConfig.Instance), "workerRouter");

Использование версий:

  • Акка 1.1.0
  • Акка Кластер 1.1.0
  • Акка.Удаленный 1.1.0

person peter-bergman    schedule 11.07.2016    source источник


Ответы (1)


Как обсуждалось в Gitter, добавление nr-of-instances = 10 под /workerRouter заставляет маршрутизатор принимать все маршруты.

person ZoolWay    schedule 11.07.2016