我正在嘗試爲一組Akka actor實現負載均衡。根據documentation,BalancingPool
提供了我感興趣的行爲(盜取工作)。出於某種原因,沒有「組變體」可以讓我自己創建路由並將它們傳遞給路由器。該文檔明確指出Akka BalancingPool:沒有組變體?
BalancingPool沒有組變體。
不用說爲什麼。我的actor的構造函數是在運行時調用的參數來調用的,所以我沒有別的選擇,只能以編程方式創建它們。
val resources:List[Any] = // ...
val system = ActorSystem("MySystem")
val routees = resources.map(r => system.actorOf(MyActor.props(r))
// This doesn't work for me, because every actor needs a resource!
val router = system.actorOf(BalancingPool(3).props(Props[MyActor]), "router")
如何創建一個BalancingPool
路由器,將所有消息轉發給我的演員?爲什麼沒有BalancingGroup
?
我假設沒有BalancingGroup,因爲路由必須共享一個郵箱。但是,當您自己創建路線時,每個人都有自己的郵箱。 –