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),因此处理大并发性能高

相关文章
|
6月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
5017 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
4月前
|
资源调度
Vue3 + Vite 构建组件库发布到 npm
这篇文章介绍了如何使用Vue3和Vite构建组件库并发布到npm,包括初始化项目、配置项目结构、创建组件目录、设置入口文件以及导出组件等步骤。
657 0
Vue3 + Vite 构建组件库发布到 npm
|
监控 Java 数据库连接
详解Spring Batch:在Spring Boot中实现高效批处理
详解Spring Batch:在Spring Boot中实现高效批处理
2467 12
|
监控 负载均衡 Java
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
本文图文详解 Spring Cloud 的五大核心组件,帮助深入理解和掌握微服务架构。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
|
3月前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
584 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
7月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
281 1
|
存储 负载均衡 监控
redis 集群模式(redis cluster)介绍
redis 集群模式(redis cluster)介绍
|
存储 负载均衡 算法
[go 面试] 一致性哈希:数据分片与负载均衡的黄金法则
[go 面试] 一致性哈希:数据分片与负载均衡的黄金法则
|
存储 监控 安全
对称加密在生产环境下的实践与注意事项
对称加密实践中,选择AES作为安全高效的算法,如在银行系统中。管理密钥要谨慎,避免硬编码,可借助KMS。使用如AES-CBC模式增强安全性,加盐哈希确保认证和完整性,如HMAC在API通信中的应用。注意性能优化,如并行处理和硬件加速在大数据场景。监控系统,适应新威胁,确保信息安全。【6月更文挑战第18天】
302 3