Orleans提供了一个简单直接的构建分布式高可扩展计算应用,并且不需要学习和掌握复杂的并发或者其他的扩展模式。 它是Microsoft Research为了在云端使用而设计并且创建。
Oreleans已经广泛地被Microsoft数个产品组在Microsoft Azure中使用,最知名的是343 Industries用作Halo Reach、Halo 4 和Halo 5的云服务平台,除此之外在别的一些企业中也有应用。
在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。