akka - 如何从 ActorContext[T] 创建 ActorSelection
问题描述
自从我上一个 Akka 项目以来,Akka 已经转向更面向集群的方法。
我喜欢 akka.actor.typed 提供的模式。但我不是在构建集群系统。我研究了集群,但我认为我的系统过于碎片化,并且比能够构建合理集群的系统更加静态。
我有系统的骨架,但我无法形成联系,因为我无法创建 ActorSelections 来连接我的节点。我在 akka.actor.typed 中四处寻找,并没有看到创建 ActorSelection 的路径。
有没有办法从我在 akka.actor.typed 中可以访问的任何内容创建一个 ActorSelection?
是否有另一种方法可以在已知端口获取远程参与者系统的地址?
谢谢!
解决方案
我看到您想出了如何回退到经典 API,但是我建议您阅读类型化的接待员以发现演员,而不是回退到像这样的字符串查找,因为它们更脆弱并且提供了非常紧密的耦合。
接待员既可以在单个 ActorSystem 中工作,也可以在没有更改的集群中工作。对于接待员,想要提供服务的参与者使用键入的密钥注册自己。想要与之交互的参与者可以通过密钥订阅或查找可用的参与者(或使用组路由器来跟踪可用参与者的密钥并路由到他们)。
请参阅文档https://doc.akka.io/docs/akka/current/typed/actor-discovery.html#receptionist和https://doc.akka.io/docs/akka/current/typed/routers.html#组路由器
推荐阅读
- azure - 通过内部项目实施资源(虚拟机/存储)的使用限制
- python - 基于单个键过滤所有字典键值?
- javascript - 是否可以在 selenium 中禁用某些 javascript 脚本?
- angular7 - 在 ServiceStack 5.8.1 上启用 API 响应压缩 (gzip)
- reporting-services - 如何在 SSMS 中实现空白参数?
- python - 如何附加键值字典python onvif相机
- javascript - 如何将缩小的 div 放置在父 div 的中心内
- jquery - 使侧边栏 div 可滚动
- python - Kaggle:如何从工作目录下载所有文件
- reporting-services - 在 SSRS 中的页面上获取第一条记录