2017-05-05 83 views
0

我正致力于将单个节点的akka​​ actor系统应用程序更改为akka集群。一种变化是将一种有状态的Actor(在运行时可能很多)转换为Cluster Sharding管理实体。现在它可以在多个节点上正常工作。Akka集群分片实体查询

我面临的一个问题是如何查询(GET ALL)由群集中的分片区域创建的实体。以前在单节点模式下,它使用参与者系统ActorSelection进行参与者路径匹配以获取匹配参与者的列表,这在集群分片中不再起作用。

我想知道Sharding地区是否有一些内置的支持查询其实体。

回答

0
  1. 您需要所有的actor系统在同一个集群中。为了确保它们都配置了相同的种子节点。

  2. 如果您想访问居住在另一台机器上的演员,则需要将其IP地址包含在演员选择中。

  3. 如果你不想为演员选择需要一个IP地址,你将不得不为你的演员实现一个命名系统。为此,您可以使用Zookeeper并将每个条目放在短暂的znode上。

来源:解决同样的问题在2014年