17 | 分布式计算模式之Actor:一门甩锅的艺术
聂鹏程
该思维导图由 AI 生成,仅供参考
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
我在前两篇文章中,带你一起学习了 MapReduce 和 Stream 计算模式,相信你对批处理和流计算也有了一定的了解。虽然这两种计算模式对数据的处理方式不同,但都是以特定数据类型(分别对应静态数据和动态数据)作为计算维度。
在接下来两篇文章中,我将从计算过程或处理过程的维度,与你介绍另外两种分布式计算模式,即 Actor 和流水线。分布式计算的本质就是在分布式环境下,多个进程协同完成一件复杂的事情,但每个进程各司其职,完成自己的工作后,再交给其他进程去完成其他工作。当然,对于没有依赖的工作,进程间是可以并行执行的。
你是不是想说,分布式进程那么多,如果需要开发者自己去维护每个进程之间的数据、状态等信息,这个开发量可不是一般得大,而且特别容易出错。那么,有没有什么办法可以让开发者只关注自己的逻辑呢?
答案是肯定的,Actor 计算模式就能满足你的需求。也就是说,你可以把数据、状态等都扔给 Actor。这是不是“一门甩锅的艺术”呢?
接下来,我们就一起打卡分布式计算模式中的 Actor 模式。
什么是 Actor?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Actor模型是一种分布式并行计算模型,通过Actor之间的消息传递和异步通信实现高并发的分布式系统。该模型具有非阻塞性、无需使用锁、并发度高和易扩展等特点,适用于异步场景中的应用。本文介绍了Actor模型的三要素、工作原理以及几个当前支持Actor编程模型的框架和语言,如Erlang/OTP、Akka和Quasar。此外,还介绍了Akka集群中节点故障的检测方法。文章提到了Actor模型的局限性,如缺少继承和分层、不适用于对消息处理顺序有严格要求的系统等。总的来说,Actor模型在分布式系统中的应用广泛,能够满足高并发性需求。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》,新⼈⾸单¥59
《分布式技术原理与算法解析》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(17)
- 最新
- 精选
- 南国怎么感觉actor类似于RPC,同样是发一条消息,然后进行某种计算,最后返回值
作者回复: Actor的核心是封装了自己的状态和行为,Actor之间采用异步通信,它代表的是一种分布式并行计算模型。RPC通常指的是远程过程调用。
2020-07-222 - luffyactor能否理解为1条数据,如果计算的是图的话,每条数据都可以发消息到它相邻的点,这些相邻的点收到消息后,可以继续发消息和计算当前的点。
作者回复: Actor 代表的是一种分布式并行计算模型。这种模型有自己的一套规则,规定了 Actor 的内部计算逻辑,以及多个 Actor 之间的通信规则。在 Actor 模型里,每个 Actor 相当于系统中的一个组件,都是基本的计算单元。Actor并非是一条数据。
2020-05-311 - Ethan Liu为什么认为Actor模式是计算模式呢?感觉更属于通信模式啊2019-11-119
- LDxyActor 模型不适用于对消息处理顺序有严格要求的系统。因为在 Actor 模型中,消息均为异步消息,无法确定每个消息的执行顺序。虽然可以通过阻塞 Actor 去解决顺序问题,但显然,会严重影响 Actor 模型的任务处理效率。2019-10-3028
- 胖虎阻塞则需要锁,actor本来的目的就是去锁化,与初衷背道而驰。2019-12-0913
- _______Harvey凝枫😗全程都是在通信呢,跟计算有啥关系? 为什么这个算是计算模式的内容,而不是通信技术2019-11-162
- 钱Actor 是否可以采用阻塞方式去运行呢,原因是什么呢? 说不可以,因为和设计初衷相悖,性能会下降,可用率也会下降。如果不在乎这些也就没什么不可以了,不违反自然规律,编程世界可以爱咋地就咋地😁2020-02-171
- GaGi文中说Actor的工作原理部分:Actor2 处理完 Actor1 的消息后,更新内部状态,并且向其他 Actor 发送消息,然后处理 Actor3 发送的消息。 老师,这里为什么Actor2更新完内部状态后要想其他Actor发送消息?发送什么消息呢?2021-03-30
- 文刀流是不是可以理解如果把现有的系统全部都模块化然后给每一个模块分配一个消息队列来处理本模块的逻辑,用一个线程池来执行每个模块队列里面的消息,这样也是无需考虑加锁的.异步也能达到高并发。是不是就有点像akka2020-10-201
- 一毛钱如果使用阻塞的形式,各个actor会发生雪崩的现象,导致整个系统不可用2019-11-14
收起评论