2016-07-11 20 views
3

クラスタルータに関する質問(戦略=ラウンドロビングループ)。クラスタ化された設定で私のルート間でラウンドロビンすることはできません。akka.netラウンドロビングループルータ - 1つのルートへのルーティングのみ

設定は次のとおりです。 ノードA:ASP.NETのコンテキストでアクタシステムを開始します。そこに私は俳優A1に話すAPIコントローラを持って、この俳優は私のルータに話します。このルータは、メッセージをノードBで作成されたルートにラウンドロビンする必要があります(ワーカーロールを使用して)。

ノードBは、Windowsサービスのコンテキスト内でアクターシステムを作成します。私は、ノードB上のすべてのルートが実際に作成されていることを二重チェックしました(サービス起動時に行われます)。

ノードAでルータから送信されたメッセージを受信したルートを確認するために、Receiveハンドルに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
  • Akka.Cluster 1.1.0
  • アッカを。リモート1.1.0

答えて

1

nr-of-instances = 10/workerRouterの下に追加してGitterで説明したように、ルータはすべてのルートを受け入れるようになります。

関連する問題