Architecture AKKA参与者框架的用途?

Architecture AKKA参与者框架的用途?,architecture,akka,distributed-computing,actor,Architecture,Akka,Distributed Computing,Actor,可能重复: 我理解为什么使用AKKA actors框架解决问题是有意义的 对于那些不涉及大量计算、根本不需要并行化但仍然是高度分布式的问题呢。例如,数千个可以增加或减少特定计数器的分布式客户机?参与者是一种计算模型,由于隔离和消息传递,这种计算模型既适用于分布,也适用于并发(最终适用于并行)。因此,当一台机器上只有一个执行线程,或者数千台机器上有数千个执行线程时,可以使用actor。除了明显的可分发性和可伸缩性参数外,actor还有其他一些方面非常好 actor模型允许消息传递和错误处理之间

可能重复:

我理解为什么使用AKKA actors框架解决问题是有意义的


对于那些不涉及大量计算、根本不需要并行化但仍然是高度分布式的问题呢。例如,数千个可以增加或减少特定计数器的分布式客户机?

参与者是一种计算模型,由于隔离和消息传递,这种计算模型既适用于分布,也适用于并发(最终适用于并行)。因此,当一台机器上只有一个执行线程,或者数千台机器上有数千个执行线程时,可以使用actor。

除了明显的可分发性和可伸缩性参数外,actor还有其他一些方面非常好

  • actor模型允许消息传递和错误处理之间完全解耦;这两者在传统的OO中紧密地结合在一起。调用方法时,您将获得返回值,但还必须处理所有可能的错误。当您向参与者发送消息时,您只会得到响应,而所有失败都由参与者的主管处理

  • 另一件好事是改进了封装:在“普通”OO中,您通常会看到对象上暴露了太多的内容,如果没有,您仍然可以使用反射。Akka演员是完全封装的(除非你通过发送“这个”引用来作弊),除了演员自己,没有人会和国家捣乱

  • 结合上一点,消息接收是参与者行为的唯一入口,这一事实使他们比普通OO代码更容易推理,在普通OO代码中,每个公共(或受保护)方法都可以用作入口。为了错过计划外的交互,您不需要这些调用是并发的


另请参见AKKA Actors还有什么比简单的RPC通信更好的方法来处理服务器处理时间很短的事情:例如增加计数器?是否存在分布式用例,AKKA参与者的作用很小。RPC刚刚被破坏: