欢迎使用 Akka,Akka 是一套被用来在在多处理器核心和网络之间被设计可扩展和具备相关弹性的开源工具集。Akka 容许你更加关注商业需求而不是书写低级别的代码来提供可靠性,容错率和高性能。react
不少经常使用的设计实践和已经接受的程序模型不能解决一些重要的挑战,这些挑战一般是现代计算机体系结构中固有的。为了让项目取得成功,分布式系统必须可以应付一些环境出现的问题,例如组件崩溃不能响应,发送的消息没有痕迹的就丢失了,为了让分布式系统可以成功的运行,以及网络延迟和波动等问题。这些问题在具备很好管理和监控环境下的数据中心常常会发生,针对虚拟架构环境就更加容易出现上面的这些问题了。数据库
为了帮助你处理上面提到这些现实的问题,Akka 提供了:
Reactive System. A reactive system is a system that responds (reacts) to external events。编程
反应系统是一个能对外部事件作出相应反应的系统。早期所谓的reactive system是软件系统的一个分支,意思正如它的名字所描述的。后来这个概念被美国的David Harel明确下来,其最主要部分是描述反应行为。网络
什么是反应行为呢?下面看一个转换系统的例子 输入(开始)->软件系统(通过一段时间后中止运行)->(而后)输出 例子中用户把数据输入给计算机,软件对这些数据通过一段时间的计算,最后给出输出结果,咱们能够看做一个会计的月结算或者一个测量的统计数据。
可以得知,输入数据通过特定的规则被转换,而且在结束计算过程之后给出结果。而reactive system却与此相反。多线程
与转换系统相反,在reactive system里每每没有明确的时序安排。整体来说,reactive system表示的是不限制运行时间的系统,这其中要和外部环境相互做用,也就是在外部刺激上的反应(reactive),例如和不一样使用者或者外部的硬件等,可是也包括内部发生的交流行为,由于reactive system是被集成在并行运行的分布式系统的规则中的。架构
例如,一个计算机的操做系统是这样一个reactive system,它不会中止运行,而老是反应用户给的输入,而且计算机中的各个组件之间要进行交流。并发
在电信领域,生产控制或者在硬件环境的构造(嵌入式系统)中还存在不少这样的例子。在信息系统中,也就是基于数据库的应用系统中也要用到 reactive system。在给一个典型的例子就是警报系统(Early Warning System).分布式
Akka 使用 actor 抽象模型可以让 Akka 更加容易的建立正确的并发,并行的分布式系统。actor 模型贯穿整个 Akka 的库,可以让你更加容易的理解和使用它们,而且可以保证更好的完整性。所以 Akka 提供了一个深度的整合和集成,若是你没法经过选择库来解决个别问题的时候,你能够尝试将这些整合在一块儿。工具
经过学习 Akka 和如何使用 actor 模型,你将访问到庞大和深刻的工具集用来解决分布式并行系统中遇到的困难和挑战,经过统一的编程模型,其中全部的东西都可以紧密和高效的组合在了一块儿。性能