最近这段时间接触了些新的东西:Orleans框架。今天是春节前最后一天班,把我这段时间学习的东西总结一下分享给大家。

一、什么是Orleans

(文档地址。这里我就直接翻译官方的介绍,有点地方翻译的有些蹩脚大家见谅。后面在使用场景上我会结合我们自己项目来说)

A straightforward approach to building distributed, high-scale applications in .NET

一个简单直接的大规模分布式的.Net应用

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 Research and designed for use in the cloud.

Orleans 是一个提供简单直接的大规模分布式的计算应用,而不需要去了解复杂的高并发和其他相关。由微软研究和设计用于云端。

Orleans has been used extensively 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 growing number of other companies.

Orleans 已经被几个微软的产品组用在Microsoft Azure云。值得一提的就是343公司《光环4》和《光环5》的云平台服务,和越来越多的其他公司

Orleans as a Stateful Middle Tier

Orleans 作为一个有状态的中间层

Orleans provides an intuitive way of building a stateful middle tier, where various business logic entities appear as sea of isolated globally addressable .NET objects (grains) of different application defined types distributed across a cluster of servers (silos).

Orleans提供一个直观的方式建造一个有状态的中间层,各种业务逻辑对象存在于一个可以全局定位的独立的不通应用类型.NET对象 的集群海洋里。

二、用法

In Orleans, grains are the building blocks of application code. Grains are instances of .NET classes that implement a conforming interface. Asynchronous methods of the interface are used to indicate which operations the grain can perform:
在Orleans里,谷物是用来建造应用程序的基础(大概是一个基础单位的意思)。谷物是一个实现了一个确定的.Net接口的类的实例。接口的异步方法用来指明这个谷物能提供哪些操作。
public interface IMyGrain : IGrainWithStringKey
{Task<string> SayHello(string name);
}

The implementation is executed inside the Orleans framework:

实现是在Orleans框架里执行的

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

You can then invoke the grain by obtaining a proxy object (a grain reference), and calling the methods:

你可以通过获取一个代理对象(一个谷物的接口)触发一个grain,并且掉用他的方法。

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

三、总结

Orleans就是一个把高并发等复杂的细节隐藏在后面的分布式框架,让我们能快速的实现一个大规模可扩展的分布式应用。

在Orleans编程的世界里,你最主要有两个关注点:

1、定义接口

2、所有方法皆异步

当然还有很多其他的feature和注意点,需要我们去探索

转载于:https://www.cnblogs.com/mrblue/p/8447978.html

Orleans学习总结(一)--入门认识相关推荐

  1. Orleans学习总结(二)--创建工程

    通过第一篇Orleans学习总结(一)--入门认识我们大致知道知道是干嘛的了,下面我们来动手造一个传说中的神秘的高并发集群Orleans程序. 一.创建四个C#工程 1.IGrain工程,用来定义各种 ...

  2. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  3. [Embeding-2]文本表示学习-词嵌入入门理解

    转载自Scofield Phil: http://www.scofield7419.xyz/2017/09/25/文本表示学习-词嵌入入门理解/ 之前一段时间,在结合深度学习做NLP的时候一直有思考一 ...

  4. numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践

    <<深度学习框架PyTorch入门与实践>>读书笔记 <深度学习框架PyTorch入门与实践>读后感 小作者:马苗苗  读完<<深度学习框架PyTorc ...

  5. 强化学习之基础入门_强化学习基础

    强化学习之基础入门 Reinforcement learning is probably one of the most relatable scientific approaches that re ...

  6. 如何学习Linux / 新手入门

    如何学习Linux / 新手入门 一.从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用 ...

  7. nginx学习笔记-01nginx入门,环境搭建,常见命令

    nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...

  8. React学习笔记:入门案例

    React学习笔记:入门案例 React 起源于 Facebook 内部项目,因为市场上所有 JavaScript MVC 框架都不令人满意,公司就决定自己写一套,用来架设 Instagram 的网站 ...

  9. python从入门到_Python学习路线从入门到上手,如何快速Python学习?

    因为清晰易读的风格,广泛的适用性,Python已经成为最受欢迎的编程语言之一.在TIOBE 排行榜中位居第四,是名副其实的人工智能第一语言. 风靡的另一个原因是,Python有非常多的第三方库.比如用 ...

最新文章

  1. 5G+AI成产业新引擎 安防行业切入点在哪里?
  2. (无奈之举)2011年01月26号日志
  3. #define用法以及#define和typedef区别
  4. AI换脸在电竞圈火了!大司马PDD大秀肌肉辣舞,网友:上头,流鼻血了
  5. ubuntu 命令收集
  6. VTK:相互作用之RubberBand2DObserver
  7. [二叉树]序列化二叉树 (剑指offer61)
  8. vc2010+openCV1.0实现将指定目录下的所有jpg文件缩放后存放到目标文件夹
  9. 葡萄酒质量和时间的关系
  10. DevExpress XtraTreeList的复选框 禁用
  11. 高效记忆/形象记忆(14)110数字编码表 81-90
  12. 【5G核心网】 GTP协议
  13. 怎么关闭计算机管理窗口,桌面窗口管理器已停止工作并应关闭这应该怎么解决啊...
  14. VMware Fusion Player 个人免费版
  15. 优家益购——JavaWeb项目(Jsp+Servlet+MySQL+tomcat)
  16. Windows系统的Chrome 调试运行在 IOS-safari (iPad/iPhone)上的页面
  17. 一些文学常识。。。。。。
  18. 动力电池产业剧变中,宁德时代拿什么保住“一哥”地位?
  19. 小说作者推荐:臣年合集
  20. 难以置信,根本就没拖延症!

热门文章

  1. 裸考大学英语四级写作核心词汇及模板
  2. svn update 时总是提示 Password for '(null)' GNOME keyring: 输入密码
  3. 【深入浅出WF】——持久化的过程
  4. Flutter图像绘制原理深入分析
  5. Arcgis License的安装及破解
  6. 利用WIX制作安装包(2)
  7. python使用opencv实现人脸识别系统
  8. Vue 学习笔记 — css属性计算的问题
  9. 常见的数据库连接字符串收集
  10. 一对多的两个表,查询主表的信息和主表在子表中的记录条数