一个使用.NET构建分布式、高可扩展应用的简捷方法

Orleans提供了一个简单直接的构建分布式高可扩展计算应用,并且不需要学习和掌握复杂的并发或者其他的扩展模式。 它是Microsoft Research为了在云端使用而设计并且创建。

Oreleans已经广泛地被Microsoft数个产品组在Microsoft Azure中使用,最知名的是343 Industries用作Halo Reach、Halo 4 和Halo 5的云服务平台,除此之外在别的一些企业中也有应用。


默认开启开启

Orleans处理了构建分布式系统的复杂性问题,使得你的应用可以横向扩展到数百个服务器上。

低延迟

Orleans允许你在内存中保存状态,这样你的应用可以快速响应收到的请求。

简化并发

Orleans允许你写简单的单线程C#代码来使用actor间的异步消息传递处理并发。

在Orleans中,actor被称作‘grains’,并且使用接口描述。使用异步方法来指明actor接收什么样的消息:

public interface IMyGrain : IGrainWithStringKey
{
    Task<string> SayHello(string name);
}

Orleans框架会执行这些实现:

public class MyGrain : IMyGrain
{
    public Task<string> SayHello(string name)
    {
        return Task.FromResult($"Hello {name}");
    }
}

你可以通过代理对象来把把消息发送给grain,并且调用这些方法:

var grain = GrainClient.GrainFactory.GetGrain<IMyGrain>("grain1");
await grain.SayHello("World");

接下来

学习更多Orleans中的概念,阅读 简介

还有一些step-by-step指南

有关于Orleans的问题,可以来gitter聊天室讨论。

Fork本项目GitHub Repository