总结

容错是akka最让人兴奋的一个方面。 它是并发工具箱中非常关键的一个组件。 “让它崩溃去吧”的理念不是忽略可能发生的故障,或者是提供个组件解决所有错误,实际上是: 程序员需要预先知道那些故障是可以恢复的,提供工具只是为了让这些处理起来简单,不用老开一些处理错误的会议或者编写大量代码。 在我们日志处理程序中,我们看到的容错:

+   监管意味着故障恢复代码的分离。
+   基于消息的actor模型意味着当一个actor暂时失效,我们也能继续工作。
+   resume, abandon, restart:根据不同的情况我们可以随意选择。
+   我们甚至可以把问题升级到上层supervisor。

akka哲学的亮点:通过工具箱以结构化的方式把应用的需求应用到代码中。 答案是,在一个虚拟机中,如果不进行大量的额外努力,复杂的容错是难以实现和测试的。

现在我们知道Akka可以通过actor帮助我们实现并行系统,并且在actor内部处理错误。 我们现在可以构建一个应用程序了。 在下一节,我们将构建若干不同类型的基于actor的应用程序, 并着眼于如何提供服务,例如配置、日志和部署。