Scala Play框架在集合中存储Akka演员

Scala Play框架在集合中存储Akka演员,scala,playframework,akka,Scala,Playframework,Akka,我正在创建WebSocket演员在线游戏(Scala) 参与者是在系统中的其他地方创建的,我只需要将它们放在一个地方,通过一些变量进行分组 存储它们的最佳做法是什么,哪一种占用的内存量最小: 序号[演员] 序号[ActorRef] 还有别的吗 您应该永远不要存储参与者-访问参与者的唯一方法应该是通过ActorRef 您可以使用很少的模式/实践来找到您的参与者 首先是ActorSelection,它需要构建正确的actor层次结构。例如,您有按地理位置划分的用户,然后您可能希望有演员选择,如

我正在创建WebSocket演员在线游戏(Scala)

参与者是在系统中的其他地方创建的,我只需要将它们放在一个地方,通过一些变量进行分组

存储它们的最佳做法是什么,哪一种占用的内存量最小:

  • 序号[演员]
  • 序号[ActorRef]
  • 还有别的吗

您应该永远不要存储参与者-访问参与者的唯一方法应该是通过
ActorRef

您可以使用很少的模式/实践来找到您的参与者

首先是
ActorSelection
,它需要构建正确的actor层次结构。例如,您有按地理位置划分的用户,然后您可能希望有演员选择,如

  • /user/…/US/PA/18900/user1
  • /user/…/US/PA/18900/user2
  • /user/…/US/NJ/07000/user3
通过这种方式,您可以使用带有通配符的选择来查找所有参与者,尽管您将只使用一个属性来过滤它们

另一种方法是使用存储所有标志/属性的数据结构

案例类UserRef(ref:ActorRef,name:String,country:String,zip:Integer,active:Boolean)

然后,您的“目录”将它们存储为一个
users=List[UserRef]
,您可以使用
users.filter(u.active=true)
users.find(u.name=“superuser”)