Proto Actor 下一代的 Actor 模型框架 Proto Actor

xuanbao • 3943 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能。在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 Erlang/Akka 风格的 Actor 模型;以及微软的“虚拟Actor”或者成为“Grains” 的风格。这两种风格有各自的优缺点。 而 Proto.Actor 将这两种风格结合在一起形成一个通用的框架。同时解决了另外一个主要的问题 —— 目前已有的 Actor 框架或者是语言无法在不同平台间进行通讯,选择了一种框架会导致你锁定到某一个特定平台上。 这也就是为什么 Proto.Actor 引入了“Actor 标准协议”的概念,这是一个可以被不同语言实现的基础原语的协议。这改变了 Actor 系统中的游戏规则,你可以自由的为你基于 Actor 的微服务选择不同的语言,这在之前是不可想象的。 Proto.Actor 提供了可伸缩、实时的事务处理,适用的场景包括: 投资和商业银行业务 零售 社交媒体 仿真 游戏和赌博 汽车和交通系统 卫生保健 数据分析 任何需要高吞吐量、低延迟的业务需求都可以用到 Proto.Actor 。 Actors : ![image](https://static.oschina.net/uploads/space/2017/0203/155501_8jgC_12.png) 关于 Actor 模型的介绍: Actor模型在并发编程中是比较常见的一种模型。很多开发语言都提供了原生的Actor模型。例如erlang,scala等。 ![image](https://static.oschina.net/uploads/img/201702/03153527_boFV.jpg) Actor,可以看作是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。一个Actor收到其他Actor的信息后,它可以根据需要作出各种相应。消息的类型可以是任意的,消息的内容也可以是任意的。这点有点像webservice了。只提供接口服务,你不必了解我是如何实现的。 一个Actor如何处理多个Actor的请求呢?它先建立一个消息队列,每次收到消息后,就放入队列,而它每次也从队列中取出消息体来处理。通常我们都使得这个过程是循环的。让Actor可以时刻处理发送来的消息。 Go 示例代码 [https://github.com/AsynkronIT/protoactor-go](https://github.com/AsynkronIT/protoactor-go)  : C# 示例代码 [https://github.com/AsynkronIT/protoactor-dotnet](https://github.com/AsynkronIT/protoactor-dotnet)  :
授权协议:
Apache
开发语言:
C# Google Go 查看源码»
操作系统:
跨平台
3943 次点击  
加入收藏 微博
1 回复  |  直到
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传