首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka.net执行元选择或引用

Akka.net执行元选择或引用
EN

Stack Overflow用户
提问于 2017-03-30 21:00:57
回答 2查看 385关注 0票数 0

在Akka.net中,与参与者选择对话还是与在消息中传递的IActorRef交互,哪个更有效?

EN

回答 2

Stack Overflow用户

发布于 2017-03-31 01:43:25

最好的答案是根据您的情况对其进行基准测试,因为这可能取决于多种条件(如本地/远程通信)。当我们讨论同一进程内的通信时,IActorRef应该总是更快。在远程通信中,差异可能较小,但仍然有利于IActorRef

话虽如此,但重要的是要了解两者之间的区别:

  • 当底层的参与者停止时(不要混淆stop和restart),它的IActorRef不再有效。如果它是稍后创建的,那么您的旧IActorRef就不必指向它。这就是为什么你可能会在你的演员死了的时候Context.Watch(actorRef)得到通知的原因之一。
  • 演员选择不会直接指向演员的邮箱,因此通常比较慢。当您尝试通过实际收件人的邮箱发送邮件时,它会被解析。它没有遭受失效问题,但也不能被观看。它还可能指向多个参与者(使用通配符),因此您的消息可能会传递到参与者层次结构中的某个位置的多个参与者。
票数 1
EN

Stack Overflow用户

发布于 2017-04-20 22:37:19

我想你可能以错误的方式来处理这件事。我不确定哪一个在性能方面更“高效”。(尽管@Horusiath对两者之间的差异提供了一些很好的指导)

问题是,使用ActorSelection本身就有点反模式,通常建议您使用IActorRefs。请参阅本博客中的第三点:Petabridge: The Top 7 Mistakes Newbies Make with Akka.NET

简而言之,当使用Actor Refs时,actor的位置是透明的。您尝试与之交互的参与者可能在集群中的任何位置,当使用IActorRef时,这并不重要。

话虽如此,他们也有一个很好的小博客,关于什么时候ActorSelection可能有用……Petabridge: When Should I Use Actor Selection?

如果您正在权衡在代码中使用哪种链接,我建议您通读一下这两个链接。希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43118662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档