Spark内部通信/akka

Spark的Client、Master、Worker之间的通信使用akka完成。

模块之间的通信机制可以分为基于消息的传递和基于资源共享的同步机制。

在Spak中的Client、Master和Worker实际上都是一个actor。


akka是一个基于actor模型的并发处理框架。

Actor模型

在java中,角色是通过继承UntypedActor类及实现onReceive方法来实现的。

所有对象都可以是Actor。Actor之间完全独立。Actor之间只有发送信息这一种通信方式。消息通信的方式看似不如直接方法调用来的直接,但是大量的消息可以同时执行。同时,消息让Actor之间解耦。
Actor执行的唯一事件是接收到一个消息,而一个Actor很可能会做多件事情。模型需要一种消息分发机制,把消息分发到相应的代码段,并指定各自需要的参数。

每一个Actor都拥有自己的属性和操作、邮箱、子Actor和一个监管策略,所有这些包含在一个Actor Reference里。
Actor能创建更多的Actor,发送更多的消息。
Actor模型内在设计是并行的、异步的。
Actor之间不共享状态,如果要获取其他actor的信息,必须通过消息请求方式。交换的信息存放在接收方的邮箱中。

每个actor有且仅有一个监管者,就是创建它的那个actor。如果一个actor对某种状况无法进行处理,它会发送相应的失败消息给它的监管者请求帮助,这样递归结构使得失败能够在正确的层次进行处理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值