<分区>
Possible Duplicate:
Good use case for Akka
我明白为什么要为 embarrassing parallel 使用 AKKA actor 框架问题是有道理的。
那些不涉及繁重计算且根本不需要并行化但仍然高度分布的问题呢?例如,数以千计的分布式客户端可以递增或递减特定计数器?
<分区>
Possible Duplicate:
Good use case for Akka
我明白为什么要为 embarrassing parallel 使用 AKKA actor 框架问题是有道理的。
那些不涉及繁重计算且根本不需要并行化但仍然高度分布的问题呢?例如,数以千计的分布式客户端可以递增或递减特定计数器?
最佳答案
除了明显的可分配性和可扩展性争论之外,还有其他方面对 actor 来说非常好。
actor 模型允许消息传递和错误处理之间的完全解耦;这两者在传统的 OO 中紧密交织在一起。当您调用一个方法时,您会得到返回值,但您还必须处理所有可能的错误。当您向 Actor 发送消息时,您只会收到响应,而所有失败都由 Actor 的主管处理。
另一个好处是改进了封装:在“普通”OO 中,您通常会看到一个对象暴露了太多东西,如果没有,您仍然可以继续使用反射。 Akka actors 是完全封装的(除非你通过发送“this”引用来作弊),除了 actors 本身,没有人会扰乱状态。
与上一点相关,消息接收是参与者行为的唯一入口点这一事实使它们比普通的 OO 代码更容易推理,在普通的 OO 代码中,每个公共(public)(或 protected )方法都可以用作一个入口。您不需要并发调用这些调用就可以错过计划外的交互。
关于architecture - 用于 AKKA Actor 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956972/