设为首页 加入收藏

TOP

sacla之akka
2019-05-12 01:39:32 】 浏览:57
Tags:sacla akka

概述:
akka是rpc轻量级框架 ,Scala 在 2.11.x 版本中将 Akka 加入其中,作为其默认的 Actor,而老版本使用的 Actor 已经废弃

组成:
    master
    worker
    两者之间使用akka中的rpc通信
        通信的业务逻辑:
            1. 启动master和worker
            2. worker通过master引用sender向master发送注册信息(需要先拿到master引用)
                master引用
                    ActorSystem创建master actor
                    actor层级

            3. master接受worker注册信息
            4. master反馈注册成功给worker

      akka Actors遵循Actor模型          
消息传递:
    错误恢复 针对单点故障 会有运行在jvm上的master调控


akka通信项目:
  override def 
    preStart执行完构造代码后只被调用一次
    receive会一直被调用与scala中一次不一样

    利用configFactory来解析配置文件信息获取到对应的config信息
    1. 创建一个ActorSystem它是一个单例对象它负责创建和监督
    host和port
    拿到当前masterActorSystem

创建worker的actor new 简单的测试
通过他的这样的一个方法来获取这样的一个引用包含得了这样的一个途中的内容对应master地址的master的端口master 的actorSyytemuser/拿到当前我们这边master他的
master发送消息如何发送connectmaster经行模式匹配
进行模式匹配master反馈注册成功信息给

利用akka中actor实现简易版的spark 通信框架
通信业务逻辑:
1. 启动master和worker
2. 在worker的preStert方法里拿到master引用可以通过master引用向master发送注册信息
3. master接受worker注册信息将worker的注册信息进行保存master反馈注册成功
4.worker接受master反馈的注册成功信息worker定时的向master发送心跳
5. master接受worker的心跳信息master定时检查超时的worker并将它移除

master接受worker心跳信息首先当前worker
//判断worker是否已经注册 
if (idToWorker.contains.)
判断逻辑
    master接收worker的心跳信息workId
    在master接受master心跳信息获取对应的workerid的workkerinfo
    若何保存上一次的心跳信息
    用于存放worker上一次的心跳时间获取当前系统时间t1赋值给worker上一次心跳时间
    master开始执行定时调度器设置一个检查时间间隔t2
    在定时开始启动后先获取当前系统时间t3时间间隔大于设定时间就
    通过workerId获取workerinfo信息最终就返回了workerinfo当前系统时间,workinfo
    workerInfo对应的上一次心跳时间
    master定时检查的时间间隔checkout
    schedule
    判断我们超时的worker设置了一个定时检查worker的时间间隔
    获取当前系统时间调用当前的系统时间按照表达式判断
    判断过滤出所有超时的workerfilter经行过滤函数输入参数就是uworinfo
    filter 
所用活着的worker总数
按照每个workerinfo的内存大小降序排列

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇初识Docker 下一篇自定义OutputFormat

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目