关于集群路由器的问题(策略 = 循环组)。在集群设置中,我无法让它在我的路由之间循环。
我的设置如下:节点 A,在 ASP.NET 的上下文中启动它的参与者系统。在那里我有一个与actor A1 对话的API 控制器,然后这个actor 与我的路由器对话。然后,此路由器应将消息轮询到在节点 B 上创建的路由(使用工作角色)。
节点 B 在 Windows 服务的上下文中创建其参与者系统。我已经仔细检查了我在节点 B 上的所有路由实际上都是创建的(在服务启动时完成)。
为了检查哪些路由接收到从节点 A 的路由器发送的消息,我只需在我的接收句柄中控制台记录 Self.Path。出于某种原因,同一个路由获取所有消息,并且它们没有分布在路由周围。
Se config 在下面的节点 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
- Akka.Remote 1.1.0