Orleans的深入】的更多相关文章

Orleans是微软推出的类似Scala Akka的Actor模型,Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务, 可用于实现DDD+EventSourcing/CQRS系统. 传统的三层体系结构包括无状态的前端,无状态的中间层和存储层在可伸缩性方面是有限制的,由于存储层在延迟和吞吐量方面的限制,这对于每个用户请求都有影响.通常办法是在中间层和存储层之间添加缓存层来提高性能.然而,缓存会失去了大部分的并发性和底层存储层的语义保证.为了防止缓存和存…
基于Orleans的分布式Id生成方案,因Orleans的单实例.单线程模型,让这种实现变的简单,贴出一种实现,欢迎大家提出意见 public interface ISequenceNoGenerator : Orleans.IGrainWithIntegerKey { Task<Immutable<string>> GetNext(); } public class SequenceNoGenerator : Orleans.Grain, ISequenceNoGenerator…
Orleans Remote Deployment Table of Contents Overview: 1 Prerequisites. 2 Deployment Steps. 2 Orleans Deployment Manifest 3 Orleans Silo Configuration. 4 Gateway Load Shedding. 5 Orleans Powershell Scripts. 6 Deploying Orleans using Powershell Script…
Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码地址:https://github.com/dotnet/orleans 简介:Orleans 框架可以构建大规模.高并发.分布式应用程序,而不需要学习专业分布式以及并发知识框架.它是由微软研究和设计应用于云计…
福利 奥尔良的主要好处是︰开发人员工作效率,甚至为非专家程序员;和默认的透明可伸缩性与程序员没有特别努力.我们扩大每个下面这些好处. 开发人员的生产力 奥尔良的编程模型通过提供以下关键的抽象. 担保和系统服务引发的专家和非专家程序员的生产力. 熟悉面向对象编程 (OOP) 范式.行为者实施的.NET 类声明.NET 演员接口使用异步方法.因此演员这似乎对程序员来说是可以直接调用其方法的远程对象.这为程序员提供了熟悉的面向对象范式的转成消息的方法调用,将它们路由到正确的终结点,调用目标演员方法处理…
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 implem…
自从写了RabbitHub框架系列后的一段时间内一直在思索更加轻量简便,分布式高并发的框架(RabbitHub学习成本较高),无意间在网上级联看到了很多新框架:从helios到Akka.NET在到Orleans在到Azure Service Fabric,最终选择了Orleans作为研究对象,理由是微软官方出品,Service Fabric还没有正式版,下面我们来进入Orleans的大门. 什么是Orleans? 来自官网的解释: 一种构建分布式. 高规模(伸缩)的应用程序,在.NET 简单方法…
在上一篇:微软分布式云计算框架Orleans(1):Hello World,我们大概了解了Orleans如何运用,当然上一篇的例子可以说是简单且无效的,因为用了Orleans不可能只写一个Hello World吧,Orleans是为分布式和云计算而生的框架,那么今天我们就简单说一说容灾.集群.容灾与集群在Orleans中的运用. 集群是什么? 下面摘抄自百度百科: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,…
官网:http://dotnet.github.io/orleans/ 文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码:https://github.com/dotnet/orleans 来自官网的解释: 奥尔良是一个框架,提供一个简单的方法来构建分布式的高规模计算应用程序,而无需了解并应用复杂并发或其他伸缩模式.它是由微软研究院创建和设计在云计算中使用. 它是一种构建分布式. 高规模(伸缩)的应用程序,类似于Akka的Ac…
这里将介绍一些Orleans的高级特性,适合对Orleans已经有不少了解的用户,先列出一个索引,博客文章慢慢补充 1.使用Immutable 优化复制 2.自定义序列化 (待完成) 3.可重入 Grain &单线程执行模型 4.定时器和提醒器 Timers and Reminders 5.扩展任务和Grains (待完成) 6.请求上下文 Request Context (待完成) 7.Grain实例垃圾回收 Activation Garbage Collection (待完成) 8.运行监控…
开源地址: 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-TR-2014-41.pdf 本次…
Timers and Reminder 定时器和提醒器 Orleans runtime 允许开发人员通过一种叫做timer和另一种叫做reminder的机制为grain添加周期性行为.接下来我分别为大家介绍Timer和Reminder Timers 定时器    Timer用于创建grain的定时任务,但这个定时任务并非跨实例的(StateLessWorker允许多个实例)周期性任务,类似于System.Threading.Timer,但不同的是,它需要它依赖的grain实例来保证单线程执行模式…
Orleans在默认情况下只创建一个grain的实例,并以单线程模型执行.如果同一个grain实例,在Orleans存在多个实例,就会产生并发冲突,单线程执行模型就可以完全避免并发冲突了. 但在特殊场景下,有些实例是需要创建多个实例或者以非单线程的执行方式来满足性能的需要; 如何支持创建多个实例 对于了解负载均衡的人,如果web服务器支持无状态(分布式Sesson或者cookie身份识别),会很容易做负载.同样的,对于grain来说,如果是无状态的,那么在系统中创建任意多的实例都是一样的,不存在…
接触Orleans 有一段时间了,之前也翻译了一系列官网文档,今天我们就来一个实际的例子,来看看到底如何用这个东西来开发项目,当然经典的也是醉人的,我们就从HelloWorld开始吧. 通过前面的知识准备我们知道Orleans 项目需要n个服务端(就是silohost),n个客户端(就是调用方),然后就是提供的actors(在Orleans 中成为grain),废话少说. 首先建立一个解决方案,叫做OrleansSamples 然后,增加一个模块解决方案,叫做HelloWorlds,在解决方案下…
这一节,我们来说说orleans 中的几个实用工具,OrleansHost.OrleansCounterControl.OrleansManager.ClientGenerator. 1.OrleansHost 这个工具是一个主机寄宿或者部署的一个控制台应用程序,下面我们看一下他的用法. 从那里获取呢,直接点的办法就是在源码包里找到这个项目然后编译后得到的就是你需要的. 另外一种就是当你创建服务端然后安装了Microsoft.Orleans.Server包的时候,编译这个项目也会在编译包下生成出…
https://azure.microsoft.com/en-us/blog/containers-docker-windows-and-trends/ https://channel9.msdn.com/Series/Exploring-Microservices-in-Docker-and-Microsoft-Azure/02 http://research.microsoft.com/en-us/projects/orleans/ https://azure.microsoft.com/e…
Introduction Orleans is a framework that provides a straightforward 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 Res…
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 …
.NET的Actor模型:Orleans   Orleans是微软推出的类似Scala Akka的Actor模型,Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务, 可用于实现DDD+EventSourcing/CQRS系统. 传统的三层体系结构包括无状态的前端,无状态的中间层和存储层在可伸缩性方面是有限制的,由于存储层在延迟和吞吐量方面的限制,这对于每个用户请求都有影响.通常办法是在中间层和存储层之间添加缓存层来提高性能.然而,缓存会失去了大部分的…
微软分布式框架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开篇之hello world 什么是orleans Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务.Orleans项目基本上被认为是并行计算模型Actor Model的分布式版本 虽然已经存在Erlang 和Akka这样利用Actor Model的框架,用户仍然需要做很多工作来确保那些actors保持在线以及能够处理故障和恢复.Orleans框架着眼复杂项目和actor管理,让用户能够编写分布式项目而无需担心. Orleans是微软的…
Orleans简介. Orleans是微软开源的分布式actor模型框架.actor模型的原理网络上有很多文章.有许多理论性的文章,深刻地我都不知道怎么应用.在这里我就不赘述了.既然是博客,就说说自己的理解. 对于编程来说,不管是前台还是后台,在现在的计算机环境下,多线程编程是不可避免的.多线程带来的很多好处,也带来的很多编程上的"坏处".好处就是,什么并发.高效,高资源利用率等等高大上的词语.这些就不详细说了.就说说坏处. 多线程带来的最大的变化就是:我先前保存的变量A,在我想要再次…
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之EventSourcing 这是Orleans系列文章中的一篇.首篇文章在此 引入: 如果没有意外,我再这篇文章中用ES代替EventSourcing,如果碰到"事件回溯","事件溯源","事溯"等词语,都一般代表Eventsourcing. 如果引入Orleans而不用es的话,那就只用了Orleans一半的优点,多线程编程的逻辑\排错的简化以及可分布式.下面我聊聊重头戏ES,这些都是我个人理解,如果有错误欢迎指正. 有时候产生…
这是Orleans系列文章中的一篇.首篇文章在此 我共享以下我现在写教程的简单的Orleans例子源码. 这个代码已经是我为了写word改动过了的.不过大体内容是通用的. 我写博客总体想法是:去除所有嘈杂的因素,主要体现主要方面.这样才能让人更容易懂并理解主要方面. 地址是:https://pan.baidu.com/s/1eS4C15w…
Orleans入门例子 这是Orleans系列文章中的一篇.首篇文章在此  一.铺垫. 虽然是个入门例子,还是需要一些铺垫. Orleans的最小完全体,应该分为2个部分.一个是Orleans客户端,一个是Orleans服务端,这里为什么要加上"Orleans"这个限定词语呢?那是因为Orleans的完全体,才是普通意义上的服务端主程.它们共同构成了游戏服务器,网站服务器等等. 在Orleans客户端中,我们使用GrainClient类以及Grain类,在Orleans服务端内,我们主…