码迷,mamicode.com
首页 > 其他好文 > 详细

Akka 基础概念(一)

时间:2020-04-22 00:12:09      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:block   启动   对象   获取信息   pen   就是   end   ase   移除   

1.什么是Akka

Akka通常是指一个分布式工具集,用于协调远程计算资源来进行一些工作,是Actor开发模型的一种现代化实现。

2.Actor 重要概念与消息传递方式

重要概念

1.Actor:一个表示工作节点的并发原语,同步处理接收到的消息,Actor可以保存并修改内部状态。

2.消息: 用于跨进程(多个Actor之间)通信的数据

3.消息传递:一种软件开发范式,通过传递消息来触发各种行为,而不是直接触发行为。

4.邮箱地址:消息传递的目标地址,当Actor空闲时会从该地址获取信息进行处理。

5.邮箱:在Actor处理消息前具体存储消息的地方,可视作消息队列。

6.Actor系统:多个Actor的集合及这些Actor的邮箱地址、邮箱和配置。

消息传递方式:邮箱

技术图片

Actor与对象的不同之处在于其不能直接读取、修改或调用,Actor只能通过消息传递方式与外界进行通信。消息传递是指一个Actor可以接受消息,本身可以发送消息,也可以对接收到的消息做出回复。消息传递是异步的,Actor处理一个消息是同步的。

Actor模型的优势:

1.当各个Actor各司其职时,使用Actor模型分析并发时间非常容易。

2.消除内存共享状态,避免竞态条件发生。

3.Actor监督机制

Actor模型通过监督机制提供容错性。监督机制基本上是指把处理响应 错误的责任交给出错对象之外的实体,这意味着一个Actor可以负责监督它的子Actor,它会监控子Actor的运行错误 ,并根据子Actor生命周期中的运行表现执行相应的操作。当一个正在运行的Actor发生错误时,监督机制提供的默认处理方式是重新启动发生错误Actor(实际上是重新创建),这种重新创建出错Actor的处理方式基于一种假设:意外发生的错误是由错误状态导致的,因此移除并重新创建应用程序中出错的部分可以将其修复,并恢复正常工作。

技术图片

Akka对于Actor模型的重要贡献之一就是位置透明性概念:就是说一个Actor邮箱地址实际上是一个远程地址,但是这个地址对开发者来说基本上是透明的。

注:

build.sbt
###############################################
name := " xxx"
version := "xxx"
scalaVersion := "xxx"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/release/"
libraryDependencies ++= Seq("com.typesafe.akka" %% "akka-actor" % "2.6.3",
                            "com.typesafe.akka" %% "akka-testkit" % "2.6.3",
                             "org.scalatest" %% "scalatest" % "3.0.1"
                            )
                            
//使用Akka Testkit时可以使用sbt测试用例,先clean后test

Akka 基础概念(一)

标签:block   启动   对象   获取信息   pen   就是   end   ase   移除   

原文地址:https://www.cnblogs.com/ganshuoos/p/12748849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!