欢迎使用 Akka,Akka 是一套被用来在在多处理器核心和网络之间被设计可扩展和具有相关弹性的开源工具集。Akka 允许你更加关注商业需求而不是书写低级别的代码来提供可靠性,容错率和高性能。

很多常用的设计实践和已经接受的程序模型不能解决一些重要的挑战,这些挑战通常是现代计算机体系结构中固有的。为了让项目取得成功,分布式系统必须能够应付一些环境出现的问题,例如组件崩溃不能响应,发送的消息没有痕迹的就丢失了,为了让分布式系统能够成功的运行,以及网络延迟和波动等问题。这些问题在具有很好管理和监控环境下的数据中心经常会发生,针对虚拟架构环境就更加容易出现上面的这些问题了。

为了帮助你处理上面提到这些现实的问题,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 模型,你将访问到庞大和深入的工具集用来解决分布式并行系统中遇到的困难和挑战,通过统一的编程模型,其中所有的东西都能够紧密和高效的组合在了一起。

https://www.cwiki.us/display/AkkaZH/Introduction+to+Akka

Akka 介绍的更多相关文章

  1. Scala进阶之路-并发编程模型Akka入门篇

    Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...

  2. 15. Scala并发编程模型Akka

    15.1 Akka介绍 1) Akka是Java虚拟机JVM平台上构建高并发.分布式和容错应用的工具包和运行时,可以理解成Akka是编写并发程序的框架 2) Akka用Scala语言写成,同时提供了S ...

  3. 深入理解Akka Actor模型

    Carl Hewitt 在1973年对Actor模型进行了如下定义:"Actor模型是一个把'Actor'作为并发计算的通用原语". Actor是异步驱动,可以并行和分布式部署及运 ...

  4. 【Flink】Flink 底层RPC框架分析

    1. 前言 对于Flink中各个组件(JobMaster.TaskManager.Dispatcher等),其底层RPC框架基于Akka实现,本文着重分析Flink中的Rpc框架实现机制及梳理其通信流 ...

  5. Akka初步介绍

    Akka可能很多人都没有用过,也不知道是什么,但如果说起Scala或Spark就有很多人都听说过或使用过 ,这里简单说下三者的关系Akka是使用Scala开发的,Spark中使用了Akka作为其消息的 ...

  6. Spark如何使用Akka实现进程、节点通信的简明介绍

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  7. 以Akka为示例,介绍Actor模型

    许多开发者在创建和维护多线程应用程序时经历过各种各样的问题,他们希望能在一个更高层次的抽象上进行工作,以避免直接和线程与锁打交道.为了帮助这些开发者,Arun Manivannan编写了一系列的博客帖 ...

  8. Akka详细介绍

    AKKA NOTES - 介绍演员 任何在过去做过多线程的人都不会否认管理多线程应用程序有多么困难和痛苦.我说管理因为它开始很简单,一旦你开始看到性能改进,它变得非常有趣.但是,当您发现没有更简单的方 ...

  9. Akka in action (第一章 介绍Akka)

    在本章 概述Akka 了解Actors和Actor系统 Akka的适用范围 在第一章中,会介绍给你Akk的个方面,它能做什么,与现有的解决方案有那些不同.重点关注Akka有哪些功能和使用范围和强大的并 ...

随机推荐

  1. [Python3] 036 函数式编程 返回函数

    目录 函数式编程 之 返回函数 1. 引子 2. 闭包 closure 函数式编程 之 返回函数 函数可以返回具体的值 也可以返回一个函数作为结果 1. 引子 1.1 定义一个普通函数 >> ...

  2. 编程竞赛--关于"数"的概念

    质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 合数:合数是指自然数中除了能被1和本身整除外,还能被其他数(0除外)整数的数.与之相对的是质数,而1既不属于质数也不属于合 ...

  3. 小记---------spring框架之IOC理解

    Spring是一个开源框架,是一个轻量级的Java开发框架. Spring的核心是控制发转(IOC)和面向切面(AOP)   控制发转(IOC):指的是 对象的创建权反转(交给)给 Spring. 作 ...

  4. redis缓存穿透00

    缓存穿透 缓存穿透,是指查询一个数据库一定不存在的数据.正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存.如果数据库 ...

  5. spring请求多方式

    <!-- 使表单可以使用GET,.POST. HEAD.OPTIONS.PUT.DELETE.TRACE方式提交--> <filter> <filter-name> ...

  6. mysql以及mysql bench安装教程

    首先,我们需要去官网下载mysql(这里以下载) 1 2 3 4 5 下载好了自己好了之后,点击安装好的东西出现如下界面: 1.接受使用条款并点击next 2.点击custom,可以根据个人习惯进行安 ...

  7. Two strings CodeForces - 762C (字符串,双指针)

    大意: 给定字符串$a$,$b$, $b$可以任选一段连续的区间删除, 要求最后$b$是$a$的子序列, 求最少删除区间长度. 删除一段连续区间, 那么剩余的一定是一段前缀和后缀. 判断是否是子序列可 ...

  8. Git复习(十二)之命令专场

    命令 git init -> 初始化一个git仓库 git clone -> 克隆一个本地库 git pull -> 拉取服务器最新代码 git fetch –p -> 强行拉 ...

  9. 02 Python数据结构的性能分析

    一.列表: - python 的设计者在实现列表数据结构的时候有很多选择.每一个这种选择都可能影响列表操作的性能.为了帮助他们做出正确的选择,他们查看了最常使用列表数据结构的方式,并且优化了实现,以便 ...

  10. python视频学习笔记5(高级变量的类型)

    知识点回顾: Python 中数据类型可以分为 **数字型** 和 **非数字型*** 数字型 * 整型 (`int`) * 浮点型(`float`) * 布尔型(`bool`) * 真 `True` ...