分布式压测系统详细介绍八:akka actor模型基本介绍

actor模型

先上一张图,网上弄来的:
在这里插入图片描述
一看好像是发送邮件,可以把这个模型看成发送邮件,而且有信箱,好像就是多人通信,一个actor就是一个人,actor之间相互通信,用的是邮件。平时都用过邮件的吧,邮件的特点是什么呢,就是异步非阻塞的优点,发送者可以不关心接受者什么时候收到,是否已经处理,他只管发送到他的邮箱咯,当然接受者也是,他不关心谁给他发的,他想处理邮件就从邮箱中拿出来处理,根据具体邮件内容来进行处理。

特点

  1. 异步非阻塞,写信的归写信,写完放到信箱里就完事了,收信的归收信,想啥时候处理就啥时候,其实就是类似消息队列,发送个消息到队列里完事了,继续干其他的去,即线程可以无需等待。
  2. 数据相互隔离,事件驱动,写信的无法控制收信的,收信的想做什么他自己决定,他自己的数据只能自己修改,相对其他的是隔离,也就是无需共享数据,各自维护自己的数据,只会根据收信来修改数据,而且信在队列里是有序的,处理的时候是1封封处理的,因此不存在并发的数据共享问题
  3. 无需同步锁,不存在共享数据,也不需要同步锁了
  4. 并发性能很好,线程之间无需为了共享资源同步,极大的提高了线程的利用率

akka系统结构

整个actor其实是属性结构的,应该是方便统一管理和调度以及查询:
在这里插入图片描述

akka核心元素

在这里插入图片描述

akka核心元素之间依赖的关系

可以看到,actorCell可以访问Actor,但是actorCell是内部的,Actor不能直接访问,因此,Actor无法直接去修改另外的Actor的状态,可以做到线程安全
在这里插入图片描述

akka actor系统初始化流程

在这里插入图片描述

akka actor系统创建节点流程

在这里插入图片描述

akka actor发送消息和处理消息

在这里插入图片描述

上面都是源码中理出来的,可能有不对的地方,具体的一些细节还是要自己去看啦。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值