orleans

Is it possible to run Orleans hosted within Windows Service

十年热恋 提交于 2021-02-06 11:26:57
问题 Please, point me out if there are any direct methods to run Orleans hosted within Windows Service. If there are no direct methods, then are there any indirect methods of doing that? Thank you in advance 回答1: Note: this is for v1.x Orleans. 2.x configuration changed quite a bit Here's a topshelf based sample. referencing https://github.com/migrap/Topshelf.Orleans static void Main() { HostFactory.Run(c => { c.Service<OrleansService>(s => { s.ConstructUsing(sc => { sc.ConfigFileName(

Is it possible to run Orleans hosted within Windows Service

北慕城南 提交于 2021-02-06 11:23:01
问题 Please, point me out if there are any direct methods to run Orleans hosted within Windows Service. If there are no direct methods, then are there any indirect methods of doing that? Thank you in advance 回答1: Note: this is for v1.x Orleans. 2.x configuration changed quite a bit Here's a topshelf based sample. referencing https://github.com/migrap/Topshelf.Orleans static void Main() { HostFactory.Run(c => { c.Service<OrleansService>(s => { s.ConstructUsing(sc => { sc.ConfigFileName(

Orleans 知多少 | Orleans 中文文档上线

妖精的绣舞 提交于 2020-12-13 16:33:43
Orleans 简介 Orleans是一个跨平台框架,用于构建健壮,可扩展的分布式应用程序 Orleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务。Orleans可从单个本地服务器扩展到云中全局分布的高可用性应用程序。 Orleans采用了对象,接口,async/await和try/catch等熟悉的概念,并将其扩展到多服务器环境。这样,它可以帮助具有单服务器应用程序经验的开发人员过渡到构建弹性,可扩展的云服务和其他分布式应用程序。因此,Orleans通常被称为“ 分布式.NET ”。 它是由Microsoft Research 创建的,并介绍了Virtual Actor Model作为一种新方法来构建面向云时代的新一代分布式系统。Orleans的核心贡献是它的编程模型,它在不限制功能,以及对开发人员施加繁重约束的情况下,降低了高并发分布式系统固有的复杂性。 中文文档说明 2019年10月,我在Orleans官网提了一个Issue,希望开展Orleans文档本地化的工作,一年时间过去了,是时候该给自己,给社区一个交代了,目前Orleans中文文档已部署上线,文档地址:https://orleans.azurewebsites.net。 目前文档仍旧在完善当中,期望更多读者能参与到校对工作中为.NET生态建设添砖加瓦。 Orleans中文文档

.NET分布式大规模计算利器-Orleans(一)

南楼画角 提交于 2020-12-13 14:30:52
写在前面 Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式。我在2015年下半年开始应用Orleans,当时公司的交易系统采用的架构就是基于Orleans框架的,其展现出来的高性能、高并发以及惊人的稳定性深深地吸引了我,也让我认识到了传统三层无状态架构的缺陷。本文主要关注Orleans的思想基础,Actor模型及其应用。 Orleans思想基础:Actor模型 传统三层无状态架构的缺陷 在讨论Actor模型之前,我们可以先讨论一下传统三层架构在当前高并发环境中所面临的尴尬境遇。 三层架构包括表示层、业务逻辑层或者叫做中间层、数据访问层(也就是存储层),其架构图如下所示: 正如我们在实践中所知道的那样,中间层和数据访问层在伸缩性方面有着很大的限制,同时存储层常常会成为系统的瓶颈,这就意味着整套系统也会因为存储层的限制而变得低效。通常的做法是在中间层与存储层中间加一层缓存逻辑出来,以提升系统性能,但是很快就会遇到存储层与缓存层的数据一致性问题,这无疑为开发人员和运维人员增加了额外的工作量。 试想一下,如果我们中间层本身就携带着状态或者简单来说中间层与缓存层是合二为一的,那么我们的系统性能是不是就提升了一个级别,答案是肯定的。那么该如何去做呢

有状态的服务其实可以做更多的事情

谁都会走 提交于 2020-10-16 18:32:28
简介 对于初学者,心里对“有状态服务”的理解可能比较模糊,但是从面向对象编程思想的角度去理解也许会明朗很多。面向对象编程思想提倡的是用编程语言去描述世间万物,所以面向对象编程的语言都会提供描述对象的容器以及对象行为的表达方式。举一个很简单的栗子,在c#或者java中,表达对象的容器就是class,对象的行为通过一系列的接口或者函数来表达。更进一步,对象抽象出来之后,大多数对象都有自己的内部状态,体现到代码上也就是常见的类的属性。 面向对象编程的基本思想本质上是对现实世界的一种抽象,万物皆可抽象。 根据业务把对象抽象出来之后,每一个实例化的对象其实都可以有自己的状态,比如:在最常见的游戏场景中,每一个玩家都是“玩家"这类对象的一个实例,每一个玩家都有自己的名字,性别,等级,HP等属性,这些属性本质上就是玩家的状态,随着时间的推移,每个玩家的HP,等级等属性会随之变化,这些变化其实就是这个玩家状态的变化。对应到有状态的服务也是如此,之所以称之为有状态,是因为服务内部的对象状态会随着业务有着对应的变动,而这些变动只发生在这个服务内部,在外界看来,这个服务好像是有状态的。 有状态的服务本质上是一些有状态对象的集合,这些对象状态的变化只发生在当前服务进程中。 优势和劣势 有状态服务之所以被称为有状态,一个很大的原因是它可以追溯状态的变化过程,也就是说一个有状态的服务保存着状态变化的记录

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

只愿长相守 提交于 2020-08-15 04:37:13
.Net Conf: Focus on Microservices 是 .Net Conf 社区在 2020 年 7 月 30 日举办的线上分享活动。整个活动视频长达近 10 个小时。今天我们来看看都发生了什么。 章节汇总 本次分享由十多位来自全球的资深技术专家在线分享,涵盖了当前 .Net 在微服务领域的利器。包括有以下这些内容: .Net 最新特性与微服务 为何关注微服务(Why You Should Care About Microservices) 保持技术敏锐(Stay Sharp) 使用 Steeltoe 开启 .NET 微服务旅程(A Journey into .NET Microservices with Steeltoe) Orleans 在微软中的应用(Orleans at Microsoft) DARP 助力您的 .NET 微服务(Adding a Little DAPR to Your .NET Microservices) Tye 让您快乐开发微服务(Developing and Deploying Microservices With ‘Tye’) 不仅只有 REST 和 RPC,还有异步事件和消息模式(Beyond REST and RPC:Asynchronous Eventing and Messiging Patterns) 微服务、DDD 和

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

大城市里の小女人 提交于 2020-08-14 12:30:12
.Net Conf: Focus on Microservices 是 .Net Conf 社区在 2020 年 7 月 30 日举办的线上分享活动。整个活动视频长达近 10 个小时。今天我们来看看都发生了什么。 章节汇总 本次分享由十多位来自全球的资深技术专家在线分享,涵盖了当前 .Net 在微服务领域的利器。包括有以下这些内容: .Net 最新特性与微服务 为何关注微服务(Why You Should Care About Microservices) 保持技术敏锐(Stay Sharp) 使用 Steeltoe 开启 .NET 微服务旅程(A Journey into .NET Microservices with Steeltoe) Orleans 在微软中的应用(Orleans at Microsoft) DARP 助力您的 .NET 微服务(Adding a Little DAPR to Your .NET Microservices) Tye 让您快乐开发微服务(Developing and Deploying Microservices With ‘Tye’) 不仅只有 REST 和 RPC,还有异步事件和消息模式(Beyond REST and RPC:Asynchronous Eventing and Messiging Patterns) 微服务、DDD 和

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

百般思念 提交于 2020-08-13 18:19:48
.Net Conf: Focus on Microservices 是 .Net Conf 社区在 2020 年 7 月 30 日举办的线上分享活动。整个活动视频长达近 10 个小时。今天我们来看看都发生了什么。 章节汇总 本次分享由十多位来自全球的资深技术专家在线分享,涵盖了当前 .Net 在微服务领域的利器。包括有以下这些内容: .Net 最新特性与微服务 为何关注微服务(Why You Should Care About Microservices) 保持技术敏锐(Stay Sharp) 使用 Steeltoe 开启 .NET 微服务旅程(A Journey into .NET Microservices with Steeltoe) Orleans 在微软中的应用(Orleans at Microsoft) DARP 助力您的 .NET 微服务(Adding a Little DAPR to Your .NET Microservices) Tye 让您快乐开发微服务(Developing and Deploying Microservices With ‘Tye’) 不仅只有 REST 和 RPC,还有异步事件和消息模式(Beyond REST and RPC:Asynchronous Eventing and Messiging Patterns) 微服务、DDD 和

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

删除回忆录丶 提交于 2020-08-10 09:26:49
.Net Conf: Focus on Microservices 是 .Net Conf 社区在 2020 年 7 月 30 日举办的线上分享活动。整个活动视频长达近 10 个小时。今天我们来看看都发生了什么。 章节汇总 本次分享由十多位来自全球的资深技术专家在线分享,涵盖了当前 .Net 在微服务领域的利器。包括有以下这些内容: .Net 最新特性与微服务 为何关注微服务(Why You Should Care About Microservices) 保持技术敏锐(Stay Sharp) 使用 Steeltoe 开启 .NET 微服务旅程(A Journey into .NET Microservices with Steeltoe) Orleans 在微软中的应用(Orleans at Microsoft) DARP 助力您的 .NET 微服务(Adding a Little DAPR to Your .NET Microservices) Tye 让您快乐开发微服务(Developing and Deploying Microservices With ‘Tye’) 不仅只有 REST 和 RPC,还有异步事件和消息模式(Beyond REST and RPC:Asynchronous Eventing and Messiging Patterns) 微服务、DDD 和

【Orleans开胃菜系列2】连接Connect源码简易分析

穿精又带淫゛_ 提交于 2020-08-07 10:59:59
【Orleans开胃菜系列2】连接Connect源码简易分析 简要说明 //连接代码。 using ( var client = await StartClientWithRetries ( ) ) { } 从方法看,只是一个简单允许重试的启动客户端。追踪进去会发现关于重试逻辑的实践,Socket编程的实践,基于内存的消息队列的实践,依赖注入。再看源码的基础上,最好能配合一些理论书籍来看。理论指导实践,实践反馈理论,才是技术成长的步骤。 这篇文章只涉及Connect所引用方法的部分说明,一步一步来加深理解。 本来我是打算把orleans研究透之后再来写一篇,但看了一周之后,发下connect里面调用了很多类,每个类又有很多方法,这样下去没有尽头,到最终估计什么也写不成。 分析源码本来就是循环渐进的过程,也是一个熟悉框架/原理/实践的过程。直接跳过这个步骤,必然损失良多。所以这部分就叫开胃菜吧。在查看connect过程,会越来越接触到各种知识。 本篇暂不涉及数据持久化,主要依赖.netcore内置方法操纵内存实现。 您会接触到的扩展知识 扩展知识之Timer&TimerQueue Timer Timer 在设置的间隔后生成事件,并提供生成重复事件的选项 TimerQueue 时间队列 扩展知识之信号量 SemaphoreSlim SemaphoreSlim 实现 //信号量