2

我正在研究Akka,只是在查看他们的容错示例,并试图理解它。

  1. 为什么我不能在“纯 Java”(没有 Akka)中实现所有相同的类型(Worker, Listener,CounterService等)。Akka 开箱即用地添加了哪些基础设施?
  2. 在那张图中,Storage代表什么?关系数据库管理系统?监控 RDBMS 的 Java 应用程序?JDBC驱动程序?
  3. 如果Storage它是一个 Java 应用程序并且可以StorageException向请求者回退,那就太好了,但是如果和之间的网络StorageCounterService切断或存在传输级问题怎么办?整个图表是否仍然有效(如果可以,如何?!?)还是 Akka 仅提供“应用层”容错?在后一种情况下,Java/Akka 如何处理硬件或网络级别的故障?
4

1 回答 1

0
  1. Akka 基于 Actor 的设计模式,您可以自己实现此模式,就像使用 MVC 一样。我想说的是,akka 为您做的最好的事情就是所有能够最小化参与者所需资源数量的反应性东西。

  2. 您可以将存储视为只是状态或保持应用程序的某些状态。

  3. 我认为人们在谈论容错时主要指的是因为你可以很容易地拥有分布式参与者,并使用可靠代理模式之类的东西http://doc.akka.io/docs/akka/snapshot/contrib/可靠代理.html你让你的应用程序保持运行直到最后一个节点死亡,如果你总是实现那个模式,你就不会丢失任何消息。所以它指的是消息丢失。一切都是在akka中的消息方面,你通常不会有不是一个好主意的请求,因为它是阻塞的,如果需要的话你可以使用Futures。如果您的硬件停止运行,您将无法在您指定的时间内检索未来的值,您可以自己处理故障。

于 2015-07-15T01:46:57.850 回答