akka - Akka Cluster Sharding - 集群内的不同实体可以相互通信吗?
问题描述
使用 Akka 进行集群分片的所有材料都暗示将消息从集群外部发送到集群中的实体。但是,同一集群的不同分片区域/分片中的实体(参与者)可以相互通信吗?是否有一些示例代码可用于此?(关于我们如何在集群中从一个实体向另一个实体发送消息)
解决方案
简短的回答是“是”。
让我们详细说明:
您可以查看已知EntiryRef
是分片的ActorRef
,因此无论如何您需要的是一种获取该 的机制entityRef
。该机制就是ClusterSharding
扩展。所以使用:
val sharding = ClusterSharding(system)
您获得分片扩展,然后您可以使用它:
val counterOne: EntityRef[Counter.Command] = sharding.entityRefFor(TypeKey, "counter-1")
推荐阅读
- spark-streaming - 流媒体中的网络随机播放
- python - Django/Json:我可以轻松更改 django 序列化对象的方式吗?
- javascript - 数组的列与相应值的关系
- amazon-web-services - 我们可以使用 S3FS 挂载已经包含一些文件和目录的 s3 存储桶吗?
- android - Kotlin - 如何在 Handler 中传递一个 Runnable
- python-3.x - 如何删除 python tkinter 中的递归错误?
- r - 嵌套的 for 循环仅显示最后一次迭代
- c++ - 通过引用重载数组中的下标运算符
- shopify - 如何使用 Shopify BuyButton.js 为特定产品变体创建立即购买按钮
- javascript - 错误类型错误:尝试在 Angular 中列出 FormGroup 的 FormArray 时无法读取未定义的属性“无效”