AKKA 的 Actor 模式介绍 | 学习笔记

简介: 快速学习 AKKA 的 Actor 模式介绍

开发者学堂课程【Scala 核心编程 - 进阶AKKA 的 Actor 模式介绍学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9113


AKKA 的 Actor 模式介绍


内容介绍

一、Actor system 图解

二、Actor 模型以及说明


一、Actor system 图解

所有主件均有 Actor system 管理,红黄蓝三种颜色代表三个 actor,均有自己对应的邮箱 mailbox,整个系统之间存在 Mailbox,Mailbox 在运行时并不显示,被封装到了 Actor当中,运行机制为通过信件通讯。

image.png

实际传送过程如:红向黄传递

首先拿到黄色的代理对象 ref,通过对象传送到黄色的邮箱中。

每一个邮箱与 actor 进行了绑定,当有信息到达 mailbox

mailbox 是实线的 runncrbe 的线程

一旦拿到消息,便推送给 Actor 的 receive 方法

反过来

黄给红的回收信息也是如此,通过 mailbox 传输到红色绑定的邮箱

1.Akka 处理并发的方法基于Actor模型

2.在基于 Actor 的系统里,所有事物都是 Actor,就好像在面向对象设计里面所有的事物都是对象一样

3.Actor 模型是作为一个并发模型设计和架构的。

Actor 与 Actor 之间只能通过消息通信,其余并不能识别


二、Actor 模型以及说明

1.Actor 与 Actor 之间只能用消息进行通信,当一个Actor 给另外一个Actor 发消息,消息是有顺序的(消息队列)只需要将消息投机的相应的邮箱即可

消息队列:消息通过队列的形式进行传发

2.怎麽处理消息是由接收信息的 Actor 决定的,发送消息 Actor 可以等待回复,也可以异步处理{ajax}

3.Actor System 的职责是负责创建并管理其创建的 Actor ,Actor System 是单例的(可以Actor System是一个工厂,专门创建Actor ),根据需要,即可创建,一个jvm进程中有一个即可,而Actor 是可以有多个的

4.Actor 模型是对并发模型进行了更高的抽象

5.Actor 模型是异步、非阻塞、高性能、的事件驱动编程模型。

最经典的案例就是 ajax 异步请求处理,无需进行等待,浏览器直接进行上下的处理

如图所示

image.png

或如下理解

存在浏览器与服务器,浏览器发出ajax请求向服务器发出,直接向服务器发送请求

若没有使用ajax则会一直回转,知道请求回复,服务器收到请求回应则为同步消息,此时情况糟糕,所以等05年ajax程序研发发布后,大量的企业针对ajax进行前端的升级优化,因为没有ajax程序的资源消耗巨大。

浏览器发出ajax请求向服务器发出后,浏览器仍可向下执行

在等待回应过程,存在回调函数模块,一般进行返回结果的接收,进行相关编程。

可进行异步处理的效果

1.接收返回结果

2.Dom 编程

实际演示,如下图:

image.png

3.Actor 模型是轻量级事件处理(1GB内存可容纳百万级别个 ACTOr),因此处理大并发性能高

相关文章
|
11月前
177 Akka详细学习资料
177 Akka详细学习资料
48 0
|
网络架构 开发者 Go
|
消息中间件 存储 API
Akka源码分析-Actor创建
  上一篇博客我们介绍了ActorSystem的创建过程,下面我们就研究一下actor的创建过程。 val system = ActorSystem("firstActorSystem",ConfigFactory.load()) val helloActor= system.actorOf(Props(new HelloActor),"HelloActor") helloActor ! "Hello"    普通情况下,我们一般使用ActorSystem的actorOf来创建actor,当然通过上一篇博客的介绍,我们已经知道actorOf是继承自ActorRefFactory的函数。
2668 0
|
Java 设计模式 安全
akka设计模式系列(Actor模型)
  谈到Akka就必须介绍Actor并发模型,而谈到Actor就必须看一篇叫做《A Universal Modular Actor Formalism for Artificial Intelligence 》的论文,它最早发表于1973年,提出了一种并发计算的理论模型,Actor就源于该模型。
8275 0