Akka简介

一、Akka简介

  Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive)应用程序的平台。
  
Actor模型:
  在计算机科学领域,Actor模型是一个并行计算(Concurrent Computation)模型,它把actor作为并行计算的基本元素来对待:为响应一个接收到的消息,一个actor能够自己做出一些决策,如创建更多的actor,或发送更多的消息,或者确定如何去响应接收到的下一个消息。
  Akka简介
  Actor是Akka中最核心的概念,它是一个封装了状态和行为的对象,Actor之间可以通过交换消息的方式进行通信,每个Actor都有自己的收件箱(Mailbox)。通过Actor能够简化锁及线程管理,可以非常容易地开发出正确地并发程序和并行系统。
  
Actor具有如下特性:

①提供了一种高级抽象,能够简化在并发(Concurrency)/并行(Parallelism)应用场景下的编程开发

②提供了异步非阻塞的、高性能的事件驱动编程模型

③超级轻量级事件处理(每GB堆内存几百万Actor)

二、为什么要用Akka?

1、Akka提供可扩展的实时事务处理。

2、Akka是一个运行时与编程模型一致的系统。为以下目标设计:①垂直扩展(并发)②水平扩展(远程调用)③高容错

3、在Akka的世界里,只有一个内容需要学习和管理,具有高内聚和高一致的语义。

4、Akka是一种高度可扩展的软件。这不仅仅表现在性能方面,也表现在它所适用的应用的大小。Akka的核心,Akka-actor是非常小的,可以非常方便地放进你的应用中,提供你需要的异步无锁并行功能,不会有任何困扰。

5、你可以任意选择Akka的某些部分集成到你的应用中,也可以使用完整的包——Akka 微内核,它是一个独立的容器,可以直接部署你的Akka应用。随着CPU核数越来越多,即使你只使用一台电脑,Akka也可作为一种提供卓越性能的选择。 Akka还同时提供多种并发范型,允许用户选择正确的工具来完成工作。

三、使用Akka的优势

1、AKKA提供一种Actor并发模型,其粒度比线程小很多,这意味着你可以在项目中使用大量的Actor。

2、Akka提供了一套容错机制,允许在Actor出错时进行一些恢复或者重置操作

3、AKKA不仅可以在单击上构建高并发程序,也可以在网络中构建分布式程序,并提供位置透明的Actor定位服务