actor简介及应用.ppt

上传人:wuy****n92 文档编号:70100781 上传时间:2023-01-16 格式:PPT 页数:18 大小:986.50KB
返回 下载 相关 举报
actor简介及应用.ppt_第1页
第1页 / 共18页
actor简介及应用.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《actor简介及应用.ppt》由会员分享,可在线阅读,更多相关《actor简介及应用.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Actor简介&实战张波Actor是什么nThe Actor model in computer science is a mathematical model of concurrent computation that treats actors as the universal primitives of concurrent digital computation:in response to a message that it receives,an actor can make local decisions,create more actors,send more message

2、s,and determine how to respond to the next message receivedActor是什么nActor模型在并发编程中是比较常见的一种模型。很多开发语言都提供了原生的Actor模型。例如erlang,scala等nActor,可以看作是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。一个Actor收到其他Actor的信息后,它可以根据需要作出各种相应。消息的类型可以是任意的,消息的内容也可以是任意的。n一个Actor如何处理多个Actor的请求呢?它先建立一个消息队列,每次收到消息后,就放入队列,而它每次也从队列中取出消息体来处

3、理。通常我们都使得这个过程是循环的。让Actor可以时刻处理发送来的消息。nActor在很多语言实现中(scala,erlang等),都以轻量级进程的形式存在,简单的说,一个actor就是一个执行上下文,绑定了actor的相关数据,实际运行时被调度到真正vm线程中运行。Actor是什么nErlang 例子nPid=spawn(Mod,func,Args)%起一个进程nfunc()-receive From,Msg-%收到一个消息%do somethingnPid!From,MsgnScala 例子nval pong=new Pongnclass Pong extends Actor def a

4、ct()case Ping /loop&react /do somethingnpong!PingnAkka 例子nval helloActor=system.actorOf(PropsHelloActor)nclass HelloActor extends Actor def receive=case“hello”=/do somethingnhelloActor!“hello”Actor特性n轻量级进程(非操作系统线程),占用资源非常少,创建速度快nerlang:309字,其中233为堆空间,耗时13微秒nakka:1GB 2.5million actors,50million msg/s

5、ecn分布式计算抽象,把任务切分到细粒度,并发完成任务n沟通基于消息,避免锁的问题n进程完全隔离n.Actor 组件nactor(msg处理,容错)n调度器(Scheduler/Dispatcher)n执行线程n邮箱(Mailbox)n路由(Routing)Actor实现nScala:在java基础上增加了一些语法糖nAkka:重写actor实现,替换scala actor,类似erlang OTPnErlang:比java更早,语言级别支持actornErlang OTP:支持分布式,容错,并发等的一套框架nGo:发展迅猛,目前以协程模拟actornClojure:跑在jvm上,提倡函数式编

6、程Akkan基于 Scalanactor library&frameworkn很容易编写支持并发和分布式的代码n性能非常棒(重写Scala actor和调度器,以及所有操作基于事件)n监控树体系n扩展不错,并有不少扩展包n去中心化架构n一般通过配置来完成负载,路由,远程actor访问等,类似于注册表nerlang也基本这样,封装更全,网络程序通常基于dnsAkkanActor 例子AkkanSupervisor 例子nAkka中每个parent actor都是子actor的supervisor应用nScala 应用案例:nLinked innFacebookntwittern国外比较火热,国内

7、使用较少专题:监控树n相关actor,以树形结构组织,supervisor监控actor,当发生“异常”时,supervisor对事件进行处理nsupervisor有对事件处理的策略,常用有all for one&one for onensupervisor可以有子supervisorn容错n分布式专题:邮箱消息处理nErlang&ScalanAkkaif!msg matchfailure(默认会catch,记录到日志中)扩展篇:erlangn函数式语言n原生支持actor模型n原生支持分布式n容错性好nhot code swapnreal scheduler(用户进程调度,基于时间片)n历史很悠久,系统很稳定nriak&rabbitmq&ejabberd 很棒nweb framework:yaws,mochiweb,cowboy,CouchDBerlang otpnsupervisornbehaviour(通用服务器,fsm,event handler)nevent&logn标准化应用结构nhot code swapnmnesiaerlang 案例n游戏行业(页游中erlang如日中天)n广告行业n互联网&移动互联网 广告平台商n互联网行业ntaobaon非常成功nwhatsapp(2012年已超过200w tcp连接)Thanks!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁