可能重复:
Good use case for Akka
我理解为什么使用AKKA actors框架解决embarrassing parallel问题是有道理的。
那些不涉及繁重计算的问题,根本不需要并行化但仍然高度分布的问题。例如,数千个可以增加或减少特定计数器的分布式客户端?
答案 0 :(得分:4)
除了明显的可分发性和可伸缩性参数之外,还有其他方面对于演员来说非常好。
actor模型允许消息传递和错误处理之间的完全解耦;这两者在传统的OO中紧密编织在一起。调用方法时,您将获得返回值,但您还必须处理所有可能的错误。当您向演员发送消息时,您只会收到回复,而所有失败都由演员的主管处理。
另一个好处是改进的封装:在“普通”OO中,你通常会看到在对象上暴露太多东西,如果没有,你仍然可以使用反射。 Akka演员是完全封装的(除非你通过发送“这个”参考文章作弊),没有人会对国家,但演员本身混淆。
与前一点相关,消息接收是进入行为者行为的唯一入口这一事实使得它们比普通的OO代码更容易推理,其中每个公共(或受保护)方法都可以用作一个入口。您不需要这些调用是并发的,以便错过计划外的交互。
答案 1 :(得分:3)
Actors是一种计算模型,适用于分发和并发(最终并行)(由于隔离和消息传递)。因此,如果在一台机器上只有1个执行线程,或者在数千台机器上执行数千个执行线程,则可以使用Actors。