有关使用Akka进行群集分片的所有资料,都意味着从群集外部向群集中的实体发送消息。但是,同一集群的不同分片区域/分片中的实体(角色)可以相互通信吗?是否有一些可用的示例代码? (关于我们如何从一个实体向集群中的另一个实体发送消息)
答案 0 :(得分:1)
简短的回答是“是”。
详细说明:
您可以查看EntiryRef
是已知被分片的ActorRef
,因此,无论如何,您需要的是一种获取该entityRef
的机制。该机制是ClusterSharding
扩展。因此使用:
val sharding = ClusterSharding(system)
您将获得分片扩展,然后可以使用:
val counterOne: EntityRef[Counter.Command] = sharding.entityRefFor(TypeKey, "counter-1")