architecture - 用于 AKKA Actor 框架?

标签 architecture akka distributed-computing 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/

相关文章:

javascript - 在可扩展的 JavaScript 架构上放置 DOM 交互的位置

scala - 动态合并 Akka 流

scala - Akka Actor 询问和类型安全

architecture - 什么算是翻牌圈?

.net - 我应该使用 BizTalk 直接连接到第 3 方数据库还是在它们之间建立一个单独的层?

architecture - 两次实现一个接口(interface)是不好的做法吗?

filesystems - Reed Solomon 删除编码和复制因子

java - Http Websocket 作为 Akka 流源

distributed-computing - 分布式系统中的CRDT是什么?

c++ - 执行计算时 - 我应该打开多少个线程?