Proto Actor 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Proto Actor 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
开发语言: C# Google Go 查看源码 »
操作系统: 跨平台
收录时间: 2017-02-03
提 交 者: 红薯

ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能。在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 Erlang/Akka 风格的 Actor 模型;以及微软的“虚拟Actor”或者成为“Grains” 的风格。这两种风格有各自的优缺点。

而 Proto.Actor 将这两种风格结合在一起形成一个通用的框架。同时解决了另外一个主要的问题 —— 目前已有的 Actor 框架或者是语言无法在不同平台间进行通讯,选择了一种框架会导致你锁定到某一个特定平台上。

这也就是为什么 Proto.Actor 引入了“Actor 标准协议”的概念,这是一个可以被不同语言实现的基础原语的协议。这改变了 Actor 系统中的游戏规则,你可以自由的为你基于 Actor 的微服务选择不同的语言,这在之前是不可想象的。

Proto.Actor 提供了可伸缩、实时的事务处理,适用的场景包括:

  • 投资和商业银行业务

  • 零售

  • 社交媒体

  • 仿真

  • 游戏和赌博

  • 汽车和交通系统

  • 卫生保健

  • 数据分析

任何需要高吞吐量、低延迟的业务需求都可以用到 Proto.Actor 。

Actors :

关于 Actor 模型的介绍:

Actor模型在并发编程中是比较常见的一种模型。很多开发语言都提供了原生的Actor模型。例如erlang,scala等。

Actor,可以看作是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。一个Actor收到其他Actor的信息后,它可以根据需要作出各种相应。消息的类型可以是任意的,消息的内容也可以是任意的。这点有点像webservice了。只提供接口服务,你不必了解我是如何实现的。

一个Actor如何处理多个Actor的请求呢?它先建立一个消息队列,每次收到消息后,就放入队列,而它每次也从队列中取出消息体来处理。通常我们都使得这个过程是循环的。让Actor可以时刻处理发送来的消息。

Go 示例代码 https://github.com/AsynkronIT/protoactor-go  :

type Hello struct{ Who string }
type HelloActor struct{}

func (state *HelloActor) Receive(context actor.Context) {
    switch msg := context.Message().(type) {
    case Hello:
        fmt.Printf("Hello %v\n", msg.Who)
    }
}

func main() {
    props := actor.FromInstance(&HelloActor{})
    pid := actor.Spawn(props)
    pid.Tell(Hello{Who: "Roger"})
    console.ReadLine()
}

C# 示例代码 https://github.com/AsynkronIT/protoactor-dotnet  :

using System;
using Proto;

class Program
{
    static void Main(string[] args)
    {
        var props = Actor.FromFunc(ctx =>
        {
            if(ctx.Message is string)
                ctx.Respond("hey");
            return Actor.Done;
        });
        var pid = Actor.Spawn(props);

        var reply = pid.RequestAsync<object>("hello").Result;
        Console.WriteLine(reply);
    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Proto Actor 的相关资讯

还没有任何资讯

Proto Actor 的相关博客

下一代的 Actor 模型框架 Proto Actor

ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能。在过去几年,我们...

Proto.Actor 介绍(一)

github proto.actor docs Proto.Actor 介绍(一) 什么是 Proto.Actor? Proto.Actor 被称之为下一代的 Actor 模型框架。 在过...

Proto.Actor模型

Proto.Actor模型 http://proto.actor/ https://github.com/axzxs2001/ProtoActorSample https://www.cnblogs.com/axzxs2001/...

CSP vs Actor Go vs Erlang

源于从Erlang到Go的一些思维碰撞,就像当初从C++到Erlang一样,整理下来记于此。 Actor Actor模型,又叫参与者模型,其”一切...

有状态的服务其实可以做更多的事情

简介 对于初学者,心里对“有状态服务”的理解可能比较模糊,但是从面向对象编程思想的角度去理解也许会明朗很多。面向对象编...

程序员修神之路--有状态的服务其实可以做更多的事情

菜菜哥,你换形象啦? 这么巧,你也换啦!听说是不会画画的菜嫂经过九牛二虎之力的功劳哦!鼓掌...... 前几天我出去面试了,面...

基于Actor模型的CQRS、ES解决方案分享

开场白 大家晚上好,我是郑承良,跟大家分享的话题是《基于Actor模型的CQRS/ES解决方案分享》,最近一段时间我一直是这个话题...

Actor模型的状态(State)+行为(Behavior)+邮箱(Mailbox)

状态(State)+行为(Behavior)+邮箱(Mailbox) 基于Actor模型的CQRS、ES解决方案分享 开场白 大家晚上好,我是郑承良,跟大...

Actor 模型 / CSP模型 / 共享内存模型

CSP模型 通信顺序进程,其实就是基于channel的消息通信,在ROS中,这种channel称作主题topic erlang是actor的代表性语言,go是...

Github上优秀的.NET Core项目

原文:Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合。内容包括:库、工具、框架、模板引擎、身份认证、...

Proto Actor 的相关问答

还没有任何问答,马上提问

评论 (11)

加载中
源代码框架lind.ddd(后台管理系统,电商系统,API,SSO,xamarin,ko,各组件单元测试) +lindCore源碼+LindAgility(敏捷框架) +免費升級+tfs實時代碼+課件源碼+demo源码 第一次 看到国内讲 ddd的 网上基本没有 联系qq 3249381568 60块钱低价出售 40讲全套视频
2017/10/26 18:24
回复
举报
留一个阿里云优惠券->http://www.izhuanyer.com 请叫我雷锋
2017/09/08 07:12
回复
举报
打分: 力荐
代码质量很好。
2017/07/16 22:25
回复
举报
hi,各位go语言爱好者 Beego axtaxie谢大和好雨云社区一起推出了beego开发者大赛,使用Beego框架进行开发,作品种类、大小、形式不限,可以尽情发挥你天马行空的想象力,还有各种礼品等你来拿,期待大家踊跃参赛,https://t.goodrain.com/t/beego/297
2017/04/20 10:41
回复
举报
打分: 力荐
学习
2017/02/28 14:19
回复
举报
2017/02/08 09:41
回复
举报
打分: 力荐
C++的Actor并发框架(基于stackful/stackless) https://git.oschina.net/hamasm/cpp-actor-framework
2017/02/04 16:41
回复
举报
打分: 力荐
Akka 的作者终于将Actor 带到了Golang 世界
2017/02/03 16:13
回复
举报
打分: 力荐
支持不同语言的互动
2017/02/03 16:07
回复
举报
打分: 力荐
赞~
2017/02/03 15:51
回复
举报
更多评论
11 评论
85 收藏
分享
返回顶部
顶部