理论教育 Akka设计理念简介

Akka设计理念简介

时间:2023-11-24 理论教育 版权反馈
【摘要】:Akka是用Scala编写的基于Actor模型的消息传递框架,用于简化编写容错的、高可伸缩性的Java和Scala的Actor模型应用。在第10~12章中,详细介绍了Akka架构,包括Akka的基本特性、常用的API使用、Akka分布式环境的搭建、基于Akka模型实现的并行单词计数统计实例,以及Akka在Spark中的运用等内容。Akka就是为了改变这种状况而生的。本章将深入介绍Akka框架模型、Actor的不同创建方式和Actor API的使用。

Akka设计理念简介

为了深入理解Scala语言的优异特性,本书在Scala分布式框架篇中引入基于Scala语言的分布式框架Akka与Kafka作为扩展。

Akka是用Scala编写的基于Actor模型的消息传递框架,用于简化编写容错的、高可伸缩性的Java和Scala的Actor模型应用。在第10~12章中,详细介绍了Akka架构,包括Akka的基本特性、常用的API使用、Akka分布式环境的搭建、基于Akka模型实现的并行单词计数统计实例,以及Akka在Spark中的运用等内容。

第13章从设计理念与基本架构入手,让读者从整体上理解Kafka作为消息系统及各种类型的数据管道的首选系统,在大数据实时处理分析平台架构中的重要地位;第14章主要从核心组件及核心特性角度来详细分析Kafka,以便读者能对Kafka的细枝末节了如指掌;第15章主要从实战编程的角度入手,使读者能灵活运用Kafka来解决实际业务问题。

Akka是一个用Scala语言编写的库,用于简化编写容错的、高可伸缩性的Java和Scala的Actor模型应用。它分为开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用,使构建高并发的分布式应用更加容易。

Akka有两种不同的使用方式:

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

放进classpath。

●以微内核的形式:Akka作为一个独立的微内核运行。微内核的目的是提供一个捆绑

的机制,可以通过微内核启动一个应用。为了启动应用首先需要创建一个Bootable

类,这个类中的startup和shutdown分别管理应用的启动和关闭。

Akka在构建分布式高并发程序方面到底有什么优势呢?为什么要学Akka?

在程序语言的发展和使用过程中,人们发现要正确地编写出具有容错性和可扩展性的并发程序是很困难的,究其主要原因是使用了错误的工具和错误的抽象级别。Akka就是为了改变这种状况而生的。(www.daowen.com)

Akka通过使用Actor模型提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台。Akka使程序员从易错、易产生死锁的锁模型中解脱出来,使程序员将主要精力放在业务逻辑的实现上。Akka在容错性方面采取了“Let It Crash”(让它崩溃模型,后面小节有介绍)模型,在容错上取得了较好的效果。现在人们已经将这种模型用在了电信行业,构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Akka还为透明的分布式系统,以及真正的可扩展高容错应用的基础进行了抽象,使其具有以下特点:

●系统中的所有事物都可以扮演一个Actor。

●Actor之间完全独立。

●在收到消息时,Actor所采取的所有动作都是并行的,在一个方法中的动作没有明确的顺序。

●Actor有标识和当前行为描述。

●Actor可能被分成原始(primitive)和非原始(non primitive)类别。

●非原始Actor有由一个邮件地址表示的标识。

●当前行为由一组知识(acquaintances)(实例变量或本地状态)和定义Actor在收到消息时将采取的动作组成。

●消息传递是非阻塞和异步的,其机制是邮件队列(mail-queue)。

●所有消息发送都是并行的。

本章将深入介绍Akka框架模型、Actor的不同创建方式和Actor API的使用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈