github.com/dotnet/orleans

Orleans is a framework that provides a straight-forward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns.

It was created by Microsoft Research implementing the Virtual Actor Model and designed for use in the cloud.

Orleans has been used extensively running in Microsoft Azure by several Microsoft product groups, most notably by 343 Industries as a platform for all of Halo 4 and Halo 5 cloud services, as well as by a number of other projects and companies.

Installation

Installation is performed via NuGet. There are several packages, one for each different project type (interfaces, grains, silo, and client).

In the grain interfaces project:

PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build

In the grain implementations project:

PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build

In the server (silo) project:

PM> Install-Package Microsoft.Orleans.Server

In the client project:

PM> Install-Package Microsoft.Orleans.Client

Official Builds

The stable production-quality release is located here.

The latest clean development branch build from CI is located: here

Building From Source

Clone the sources from the GitHub repo

Run run the Build.cmd script to build the binaries locally, then reference the required NuGet packages from Binaries\NuGet.Packages\*.

Documentation

Documentation is located here

Code Examples

Create an interface for your grain:

public interface IHello : Orleans.IGrainWithIntegerKey
{
  Task<string> SayHello(string greeting);
}

Provide an implementation of that interface:

public class HelloGrain : Orleans.Grain, IHello
{
  Task<string> SayHello(string greeting)
  {
    return Task.FromResult($"You said: ‘{greeting}‘, I say: Hello!");
  }
}

Call the grain from your Web service (or anywhere else):

// Get a reference to the IHello grain with id ‘0‘.
var friend = GrainClient.GrainFactory.GetGrain<IHello>(0);

// Send a greeting to the grain and await the response.
Console.WriteLine(await friend.SayHello("Good morning, my friend!"));

Community

License

This project is licensed under the MIT license.

Quick Links

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments

时间: 2024-10-29 00:43:50

github.com/dotnet/orleans的相关文章

GitHub的dotnet core CI实践(.net core + xUnit + OpenCover + Appveyor + Coveralls.net)

最近利用业余时间实现.ner core 版本的 casbin ,即 Casbin.NET.之前的CI都使用的是公司搭建的jenkins和gitlab-runner,对开源社区的工具链并不是很熟悉,在casbin的原作者(hsluoyz )的“要求”下,只能被迫在项目的README.md加入下面这些徽标: NOTE:其实我只加了coverage 和 appveyor build 徽章. 使用的工具和平台如下: Appveyor OpenCover coveralls coveralls.net d

.NET的Actor模型:Orleans

Orleans是微软推出的类似Scala Akka的Actor模型,Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务, 可用于实现DDD+EventSourcing/CQRS系统. 传统的三层体系结构包括无状态的前端,无状态的中间层和存储层在可伸缩性方面是有限制的,由于存储层在延迟和吞吐量方面的限制,这对于每个用户请求都有影响.通常办法是在中间层和存储层之间添加缓存层来提高性能.然而,缓存会失去了大部分的并发性和底层存储层的语义保证.为了防止缓存和存

akka.net与微软分布式框架Orleans

微软分布式框架Orleans开源了 开源地址: https://github.com/dotnet/orleans 昨天编译了一下,这个最新的Orleans安装程序(用github源码编译的) 下载地址:http://pan.baidu.com/s/1bntoEtD Orleans官方文档:https://github.com/dotnet/orleans/wiki Orleans白皮书: http://research.microsoft.com/pubs/210931/Orleans-MSR

Orleans框架------基于Actor模型生成分布式Id

一.Actor简介 actor模型是一种并行计算的数学模型. 响应于收到的消息,演员可以:做出决定,创建更多Actor,发送更多消息,并确定如何响应接收到的下一条消息. 演员可以修改自己的状态,但只能通过消息相互影响(避免需要任何锁). actor是一个计算实体,当其收到消息时,可以并发执行如下操作: 1. 发送有限数量的消息给其他actor 2. 创建有限数量的新actor 3. 指定收到下一消息时的行为 在Orleans中使用的是虚拟Actor方式,详细:http://dotnet.gith

微软分布式云计算框架Orleans(1):Hello World

自从写了RabbitHub框架系列后的一段时间内一直在思索更加轻量简便,分布式高并发的框架(RabbitHub学习成本较高),无意间在网上级联看到了很多新框架:从helios到Akaa.NET在到Orleans在到Azure Service Fabric,最终选择了Orleans作为研究对象,理由是微软官方出品,Service Fabric还没有正式版,下面我们来进入Orleans的大门. 什么是Orleans? 来自官网的解释: 一种构建分布式. 高规模(伸缩)的应用程序,在.NET 简单方法

转:微软分布式云计算框架Orleans

http://www.cnblogs.com/ants/p/5122068.html 一种构建分布式. 高规模(伸缩)的应用程序 微软对奥尔良计划(Project Orleans)云计算框架开源.奥尔良计划广泛应用于微软 Azure 云服务的建设,并且是游戏<光环4>的线上基础设施的后台支持.受益于这项开源举措,在建设分布式系统方面的非专业开发者们得以更高效地建设云级别的应用. Orleans 是一种新的编程模式,用来提升微软通用语言运行库(CLR)的抽象水平,它引入了"grains

Microsoft Orleans 之 入门指南

Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码地址:https://github.com/dotnet/orleans 简介:Orleans 框架可以构建大规模.高并发.分布式应用程序,而不需要学习专业分布式以及并发知识框架.它是由微软研究和设计应用于云计

Orleans的入门教程

Orleans的入门教程  官方Hello World 地址 https://github.com/dotnet/orleans/tree/master/Samples/2.0/HelloWorld Doc地址 http://dotnet.github.io/orleans/Documentation/tutorials_and_samples/Hello-World.html 手绘流程图 原文地址:https://www.cnblogs.com/AnAng/p/9892866.html

Akka.net开发第一个分布式应用

Akka.net开发第一个分布式应用 系列主题:基于消息的软件架构模型演变 既然这个系列的主题是”基于消息的架构模型演变“,少不了说说Actor模型.Akka.net是一个基于Actor模型的分布式框架.如果你对分布式应用还非常陌生,当别人在谈”分布式“.”云计算“等名词时你感到茫然,那么本篇文章将带你进行一次分布式开发之旅. 一.什么是Actor模型 Actor模型由Carl Hewitt于上世纪70年代早期提出并在Erlang语言中得到了广泛应用,目的是为了解决分布式编程中一系列问题.其主要