目录 介绍 使用 简单例子 配置 注入到 DI 容器 添加多个 Client 全局 Orleans 服务配置 介绍 Orleans.MultiClient 是一个 Orleans 复合客户端,只需要简单配置就可以简单高效连接和请求 Orleans 服务. Orleans.MultiClient 可以轻松连接多个不同服务的 Orleans 服务,在请求 Orleans 时会根据请求的接口自动寻找 Orleans 客户端,使用者无需关心底层的实现. Orleans.MultiClient 的开源地址…
Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码地址:https://github.com/dotnet/orleans 简介: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 框架可以构建大规模.高并发.分布式应用程序,而不需要学习专业分布式以及并发知识框架.它是由微软研究和设计应用于云计…
一.配置指南 1,客户端配置 2,服务端配置 3,典型配置 4,配置.NET垃圾收集 5,SQL系统存储 二.监控 1,运行时监视 2,silo错误代码监测 3,客户端错误代码监测 三.解决部署问题 四.异构silos 五.开始使用Azure Web Apps 六.Docker部署 七.服务结构托管 一.配置指南 本配置指南介绍了关键配置参数以及如何在大多数典型使用场景中使用这些参数. Orleans Configuration xsd file is located here. Orleans…
[Orleans开胃菜系列2]连接Connect源码简易分析 /** * prism.js Github theme based on GitHub's theme. * @author Sam Clarke */ code[class*="language-"], pre[class*="language-"] { color: #333; background: none; font-family: Consolas, "Liberation Mono…
一.Nuget包Orleans NuGet软件包从v1.5.0开始在大多数情况下,您需要使用4个关键的NuGet包: 1,Microsoft Orleans Build-time Code Generation PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build 为Grain接口和实现项目提供支持.将其添加到grainaaa接口和实现项目中,以启用Grain引用和序列化程序代码生成.Microsoft.Orleans.…
开发一个Grain 在开发Grain之前请先阅读Grains 这篇文章 Grain 接口 Grains通过调用各自定义在接口中的方法相互作用,一个grain实现了事先定义好的一个或多个接口,grain接口中的方法必须返回Task(如果没有返回值) 或者Task<T>(如果有类型返回值) 如下事例样本: //an example of a Grain Interface public interface IPlayerGrain : IGrainWithGuidKey { Task<IGa…
先决条件 Orleans 是一个.net 类库集,为了使用它,你需要.net 4.5.1 或者更高版本,开发工具集需要visual studio 2015 或者更高版本或者其他支持的开发工具,不支持Visual Studio的简化版本或者拓展包,但是你可以直接引用Orleans ,通过NuGet. 在生产环境中,Orleans 需要持久化存储,目前只支持一下技术产品之一: Azure - Tested with Azure SDK 2.4 - 2.8 SQL Server 2008 or hig…
Orleans 术语解读 上面这张图中包含了Orleans中的几个核心概念: Grain Silo Orleans Cluster Orleans Client 从这张图,我们应该能理清他们之间的关系. Grain作为最小的执行单元 Silo 是 Grain 的宿主运行环境,用来暴露具体的服务 Orleans Server 提供Silo的运行环境 一个Server可以运行多个Silo服务 多个Silo组成一个Cluster集群 一个Cluster中的Grain是可以直接进行交互 客户端通过Orl…
原文:https://devblogs.microsoft.com/dotnet/orleans-3-0/ 作者:Reuben Bond,Orleans首席软件开发工程师 翻译:艾心 这是一篇来自Orleans团队的客座文章,Orleans是一个使用.NET创建分布式应用的跨平台框架.获取更多信息,请查看https://github.com/dotnet/orleans. 我们激动的宣布Orleans3.0的发布.自Orleans2.0以来,加入了大量的改进与修复,以及一些新特性.这些变化是由许…
项目结构 开始Orleans之前,我们都知道Orleans主要可以分为俩部分,Host和Client. 所以我们可以创建如下的项目结构: IGrain 一个包含Grain接口的库(.NET Standard 2.1) Grain 一个包含Grain类的库(.NET Standard 2.1) Host 一个控制台应用程序,用来托管我们的Silo(.NET Core 3.1) Client 一个控制台应用程序,用来做我们的Orleans客户端(.NET Core 3.1) Orleans引用 Nu…
以下为本篇文章的 作者: 艾心 出处: https://www.cnblogs.com/edison0621/ 原文:https://devblogs.microsoft.com/dotnet/orleans-3-0/ 作者:Reuben Bond,Orleans首席软件开发工程师 翻译:艾心 这是一篇来自Orleans团队的客座文章,Orleans是一个使用.NET创建分布式应用的跨平台框架.获取更多信息,请查看https://github.com/dotnet/orleans. 我们激动的宣…
关于这个翻译文档的一些说明: 之前逛博客园的时候,看见有个园友在自己的博客上介绍Orleans. 觉得Orleans 是个好东西. 当时心想:如果后面有业务需要的时候可以用用Orleans框架. 当真的有业务需要的时候, 我惊奇的发现很多介绍Orleans框架的人,都只是写了一个入门的示例. 关于Orleans框架的中文资料似乎很少. 直到翻到csdn博客中有个叫闫辉的人有一个系列博客叫<Orleans 2.0 官方文档>, 我非常开心的点了进去,然后我就悲剧的发现这文档几乎是机器翻译, 当然…
aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAEmAyADASI…
netcore6项目,微服务框架选orleans ,国内似乎没什么项目在用,坑多无资料.orleans文档可以解决几乎,只能看官方资料. Introduction | Microsoft Orleans 中文文档 服务异常客户端怎么接收,链接释放,内存泄露等各种问题都迎刃而解.早先弄了几个服务测试,发现同一个请求或者同几个请求,都只集中在一个服务上,而且不管服务多耗时间,都是无限等待一个请求完再下一个,除非一个挂了,下一个就顶上.这显然不是想要的效果(这里的服务是cpoy改文件就行).这就是遇到…
1.客户端是一个OutSideRuntimeClient,在这个客户端类中有一个消息代理中心transport(类型为ProxiedMessageCenter) 2.ProxiedMessageCenter通过取模,将消息请求负载到Silo集群中(即不同的GatewayConnection中) 3.消息首先进入负载得到的GatewayConnection的请求队列中(requestQueue) 4.GatewayConnection实例中具有特定的Silo地址和Socket实例,最终通过这里的S…
客户端配置 通过一个ClientBuilder和多个补充选项类,以编程方式配置一个用于连接Silo集群并将请求发送至Grain的客户端. 客户端配置示例: var client = new ClientBuilder() // 集群信息 .Configure<ClusterOptions>(options => { options.ClusterId = "my-first-cluster"; options.ServiceId = "MyOrleansSe…
简介 Orleans用起来的确很爽,更爽的是咱们有能监控它的工具. OrleansDashboard 这个工具是一个可视化的Silo监控工具,Silo和Grain的活跃状态一目了然,各个接口的响应速度也可以很清晰的统计到. 安装 使用NuGet引用 OrleansDashboard 然后修改 SiloHostBuilder 的配置,添加Dashboard: new SiloHostBuilder() .UseDashboard(options => { }) .Build(); 启动Silo,然…
在上一篇:微软分布式云计算框架Orleans(1):Hello World,我们大概了解了Orleans如何运用,当然上一篇的例子可以说是简单且无效的,因为用了Orleans不可能只写一个Hello World吧,Orleans是为分布式和云计算而生的框架,那么今天我们就简单说一说容灾.集群.容灾与集群在Orleans中的运用. 集群是什么? 下面摘抄自百度百科: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,…
接触Orleans 有一段时间了,之前也翻译了一系列官网文档,今天我们就来一个实际的例子,来看看到底如何用这个东西来开发项目,当然经典的也是醉人的,我们就从HelloWorld开始吧. 通过前面的知识准备我们知道Orleans 项目需要n个服务端(就是silohost),n个客户端(就是调用方),然后就是提供的actors(在Orleans 中成为grain),废话少说. 首先建立一个解决方案,叫做OrleansSamples 然后,增加一个模块解决方案,叫做HelloWorlds,在解决方案下…
这一节,我们来说说orleans 中的几个实用工具,OrleansHost.OrleansCounterControl.OrleansManager.ClientGenerator. 1.OrleansHost 这个工具是一个主机寄宿或者部署的一个控制台应用程序,下面我们看一下他的用法. 从那里获取呢,直接点的办法就是在源码包里找到这个项目然后编译后得到的就是你需要的. 另外一种就是当你创建服务端然后安装了Microsoft.Orleans.Server包的时候,编译这个项目也会在编译包下生成出…
orleans   Orleans 客户端请求的消息流转以及消息在Silo中再路由机制 Witte 2015-04-29 21:58 阅读:196 评论:0     一种基于Orleans的分布式Id生成方案 Witte 2015-02-16 17:30 阅读:333 评论:2     Orleans 高级特性-目录 Witte 2015-02-12 12:32 阅读:344 评论:0     使用Immutable优化复制 Witte 2015-02-11 18:40 阅读:384 评论:0 …
微软分布式框架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例子再进一步 这是Orleans系列文章中的一篇.首篇文章在此 步骤 现在我想再添加一个方法,到IGrains项目内,这个方法里面有个延迟3秒,然后返回一个Task<string>.就叫做DelayedMsg吧,如下图所示: 我调用了这个DelayedMsg,同时又调用了SayHello函数,看看效果:注意这个DelayedMsg的调用方法没有await. 虽然我的SayHello的调用时间紧随着DelayedMsg之后, 可是发现SayHello仍然延迟了3秒才出来,这是因为S…
这是Orleans系列文章中的一篇.首篇文章在此 我费力费心的翻译过官方的教程,但是本人英语词汇量不高,可是架不住电子词典啊-只要肯花时间,我这些内容谁都可以做出来.所以这个事例告诉我们一个道理,那就是码农有三好,钱多话少死得早.我也许只有后两好. 当初阿尔法狗在围棋上战胜人类的时候,人工智能一时大热,不管老小,都大肆谈论一番深度神经网络学习算法等等,我当时也是一时兴起去拿出我崭新的书本,说起来都是泪,大学并没有好好学习,都玩游戏了-不过不管如何,数学系毕业的,底子好点,翻看完必要的知识后,就去…
Orleans简单配置 这是Orleans系列文章中的一篇.首篇文章在此 话说曾几何时,我第一次看到xml文件,心中闪过一念想:"这<>是什么鬼?"-用ini或者json多简单易懂,现在发觉作为配置文件,json有赶超xml的趋势.不过xml用多了,也觉得顺眼多了.不觉得<>难看了,反而它能折叠让我觉得组织起来也更方便了.这说明一个道理:不是你上了大学,而是大学上了你.你觉得痛苦到方便的过程,就是这种转变的佐证.所以C++又名C艹.你们细细体会一下. Orlea…
Orleans-一些概念 这是Orleans系列文章中的一篇.首篇文章在此 这个文章聊一聊Orleans的概念.以下文章大部分翻译自官方教程,还有一些结合实际的应用经验,并对以前文章留下的坑进行填平.如果有哪个坑没有填,还请告诉我. Grain的生命周期: 一个Grain在逻辑上是永远存在的,并在逻辑上拥有一个不变的标识.程序的代码永远不会去创造或者销毁一个Grain,你可以认为Grain永远存在于内存中,就等着响应你的请求.当然在物理上,按照需求由Orleans运行时自动的激活一个Grain,…
Orleans的集群构建 这是Orleans系列文章中的一篇.首篇文章在此 听闻一周前,微软公布了.net core2.0,以及各种各样的其他core2.0.大家都很兴奋.微妈的诚意真是满满的.这次开源势头让我感觉到了微妈的技术实力之雄厚.我在这里祝福C#越来越好.细心的人似乎发现Orleans在github中是和net core分在一起的.Orleans的2.0何时发布呀- 现在我们面对的Orleans1.5(github上是1.6)已经是一个成熟的框架了.涉及到分布式的方方面面,我突然觉得我…
Orleans入门例子 这是Orleans系列文章中的一篇.首篇文章在此  一.铺垫. 虽然是个入门例子,还是需要一些铺垫. Orleans的最小完全体,应该分为2个部分.一个是Orleans客户端,一个是Orleans服务端,这里为什么要加上"Orleans"这个限定词语呢?那是因为Orleans的完全体,才是普通意义上的服务端主程.它们共同构成了游戏服务器,网站服务器等等. 在Orleans客户端中,我们使用GrainClient类以及Grain类,在Orleans服务端内,我们主…
一.Reentrant Grains二.请求上下文三.激活垃圾收集四.外部任务和Grains五.序列化六.代码生成七.在Silo内的应用程序引导八.拦截器九.取消令牌十.Powershell客户端十一.Grains版本控制十二.Event Sourcing十三.多群集支持 一.Reentrant Grains Grain类有以下两个方法 Task Foo() { await task1; // line 1 return Do2(); // line 2 } Task Bar() { await…