了解Akka Fault Tolerance

时间:2013-12-09 18:01:22

标签: java akka fault-tolerance

我正在挖掘Akka,只是看着他们的fault tolerance example,我正在努力理解它。

  1. 为什么我不能在“纯Java”(没有Akka)中实现所有相同类型(WorkerListenerCounterService等)。 Akka在这里开箱即用的基础设施是什么?
  2. 在该图中,Storage代表什么?一个RDBMS?一个监控RDBMS的Java应用程序? JDBC驱动程序?
  3. 如果Storage是一个Java应用程序并且可以将StorageException反馈给请求者,那就太棒了,但如果StorageCounterService之间的网络被切断或有传输怎么办?级别的问题?整个图表是否仍然有效(如果是,如何?!?)或者Akka是否只提供“应用层”容错?在后一种情况下,Java / Akka如何处理硬件或网络级故障?

1 个答案:

答案 0 :(得分:0)

  1. Akka基于演员的设计模式,您可以自己实现这种模式,就像使用MVC一样。我想说akka为你做的最好的事情就是所有被动的东西,它们会减少演员所需的资源量。

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

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