消息关闭
    暂无新消息!
︿ 0

下一代的 Actor 模型框架 Proto Actor

Stanbridge2017-06-15发布

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

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

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

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

投资和商业银行业务

零售

社交媒体

仿真

游戏和赌博

汽车和交通系统

卫生保健

数据分析

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


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

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

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

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

投资和商业银行业务

零售

社交媒体

仿真

游戏和赌博

汽车和交通系统

卫生保健

数据分析

任何需要高吞吐量、低延迟的业务需求都可以用到 Proto.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 %vn", 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);
    }
}



浏览次数 : 1069
0 条评论

技术交流

  1. QQ群号码:264268059
  2. 关注订阅号(极客起源),每天分享精彩技术文章: