2016-07-11 16 views
3

Eine Frage zu Cluster Routern (Strategie = Round-Robin-Gruppe). Ich kann es nicht in einem geclusterten Setup zwischen meinen Routen round robin bekommen.akka.net Round Robin Gruppen Router - nur Routing zu einem Router

Mein Setup ist wie folgt: Knoten A, Starten seines Akteursystems im Kontext von ASP.NET. Dort habe ich einen API-Controller, der mit Schauspieler A1 spricht, dieser Schauspieler spricht dann mit meinem Router. Dieser Router sollte dann die Nachrichten round robin auf die Routen routen, die auf Knoten B erstellt wurden (mithilfe der Worker-Rolle).

Knoten B erstellt sein Akteursystem im Kontext eines Windows-Dienstes. Ich habe überprüft, dass alle meine routes auf Knoten B tatsächlich erstellt werden (bei Dienststart ausgeführt).

Um zu überprüfen, welche der routes, die die Nachricht von dem Router an Knoten A gesendet erhalten, trage ich nur Protokoll Self.Path in meinem Receive-Handle. Aus irgendeinem Grund erhält derselbe Benutzer alle Nachrichten und sie werden nicht auf die Routen verteilt.

Se Konfig auf Knoten A unten.

/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 
    } 
} 

ist der Router mit dem folgenden Code instanziiert:

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

Mit Versionen:

  • Akka 1.1.0
  • Akka.Cluster 1.1.0
  • Akka. Fernbedienung 1.1.0

Antwort

1

Wie in Gitter beschrieben, fügt ein nr-of-instances = 10 unter /workerRouter den Router hinzu, um alle Routen zu akzeptieren.