Akka入门

https://doc.yonyoucloud.com/doc/akka-doc-cn/2.3.6/scala/book/index.html

Akka是什么? 

通过使用Actor模型我们提升了抽象级别,为构建可扩展的、有弹性的响应式并发应用提供了一个更好的平台

Akka实现了独特的混合模型

Actors

Actors为你提供:

  • 对并发/并行程序的简单的、高级别的抽象。
  • 异步、非阻塞、高性能的事件驱动编程模型。
  • 非常轻量的事件驱动处理(1G内存可容纳数百万个actors)。

参阅 Actors (Scala) 和 Actors (Java)

容错性

  • 使用“let-it-crash”语义的监控层次体系。
  • 监控层次体系可以跨越多个JVM,从而提供真正的容错系统。
  • 非常适合编写永不停机、自愈合的高容错系统。

参阅 容错性 (Scala) 和 容错性 (Java)

位置透明性

Akka的所有元素都为分布式环境而设计:所有actor只通过发送消息进行交互,所有操作都是异步的。

集群支持概览请参阅Java和Scala文档相关章节。

持久性

actor接收到的消息可以选择性的被持久化,并在actor启动或重启的时候重放。这使得actor能够恢复其状态,即使是在JVM崩溃或正在迁移到另外节点的情况下。

详情请参阅Java和Scala相关章节.

Akka的两种使用方式

以库的形式:在web应用中使用,放到 WEB-INF/lib 中或者作为一个普通的Jar包放进classpath。

以微内核的形式:可以将你的应用放进一个独立的内核,自己使用一个main类来初始化Actor系统。

为什么使用Akka?

Akka平台提供了以下特性:

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

Akka为以下目标提供了一致的运行时与编程模型:

  • 垂直扩展(并发
  • 水平扩展(远程调用
  • 高容错

这个模型是唯一需要学习和掌握的,它具有高内聚和高一致的语义。

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

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

以下是Akka被部署到生产环境中的领域

事务处理 (在线游戏,金融/银行业,贸易,统计,赌博,社会媒体,电信)

垂直扩展,水平扩展,容错/高可用性

服务后端 (任何行业,任何应用)

提供REST, SOAP, Cometd, WebSockets 等服务;作为消息总线/集成层;垂直扩展,水平扩展,容错/高可用性

并发/并行 (任何应用)

运行正确,方便使用,只需要将jar包添加到现有的JVM项目中(可使用Scala,Java, Groovy或JRuby)

仿真

主/从,计算网格,MapReduce等等

批处理 (任何行业)

Camel集成来连接批处理数据源,Actor分治批处理工作负载

通信Hub (电信, Web媒体, 手机媒体)

垂直扩展,水平扩展,容错/高可用性

游戏与博彩 (MOM, 在线游戏, 博彩)

垂直扩展,水平扩展,容错/高可用性

商业智能/数据挖掘/通用密集计算

垂直扩展,水平扩展,容错/高可用性

复杂事件流处理

垂直扩展,水平扩展,容错/高可用性

akka概述请继续前往 ... 查看更多

你可能感兴趣的:(java基础,play,JVM,akka)