orleans/Documentation

福利

奥尔良的主要好处是︰开发人员工做效率,甚至为非专家程序员;和默认的透明可伸缩性与程序员没有特别努力。咱们扩大每一个下面这些好处。前端

开发人员的生产力

奥尔良的编程模型经过提供如下关键的抽象、 担保和系统服务引起的专家和非专家程序员的生产力。mysql

  • 熟悉面向对象编程 (OOP) 范式。行为者实施的.NET 类声明.NET 演员接口使用异步方法。所以演员这彷佛对程序员来讲是能够直接调用其方法的远程对象。这为程序员提供了熟悉的面向对象范式的转成消息的方法调用,将它们路由到正确的终结点,调用目标演员方法处理失败和角状况下,在彻底透明的方式。
  • 单线程执行的行动者。运行时保证,演员历来没有超过一个线程上执行一次。再加上从其余行动者隔离,程序员永远不会面临并发演员一级,所以永远不会须要使用锁或其余同步机制来控制对共享数据的访问。这一功能使分布式应用程序开发为非专家程序员温顺。
  • 透明激活。运行时激活演员做为须要只有当它处理的消息。这干净地分离建立引用到的演员,是可见并由应用程序代码和演员在内存中,这是对应用程序透明的物理活化控制的概念。在许多方面,这是相似于虚拟内存,由于它决定何时"页出"(停用) 或"页面中"(激活) 的演员;应用程序具备不间断的接触充分"内存空间"的逻辑建立行动者,不管他们是否在任何特定时刻的物理内存在时间。透明激活使动态、 自适应负载平衡经过放置和迁移的演员跨硬件资源池。此功能是传统角色模型,在哪一个演员一辈子是应用程序管理有重大改善。
  • 位置透明性。主角引用 (代理对象),程序员使用来调用演员的方法或传递给其余组件只包含逻辑的演员身份。翻译的这位演员的逻辑身份对其物理位置和相应路由的消息由奥尔良运行时透明地完成。应用程序代码进行通讯与行动者没有注意到它们的物理位置,可能因为故障或资源管理时间的推移,或由于演员被停用时调用。
  • 与持久存储区的透明集成。奥尔良容许演员的内存中状态到持久存储区的声明式映射。它将同步更新,以透明方式保证调用方接收结果的持久性状态已成功更新后才。延长和/或自定义现有持久性存储提供程序可用集是直截了当的。
  • 错误的自动传播。运行库会自动传播与异步和分布式的 try-catch 语义调用链中向上的未处理的错误。所以,错误不会丢失在应用程序中。这容许程序员把错误处理逻辑在适当的地方,没有手动传播错误的每一个级别的繁琐工做。

默认状况下的透明可扩展性

奥尔良的编程模型被为了指导程序员下来路径有可能成功地扩展他们的应用程序或服务经过几个数量级。这是经过结合行之有效的最佳作法和模式,并提供较低的能级系统功能有效地执行。这里有几个关键因素,使可伸缩性和性能。git

  • 隐式细晶粒分区的应用程序状态。经过使用直接寻址的实体做为演员,程序员隐式分解及其应用程序的总体状态。虽然的奥尔良编程模型并无规定如何大或小演员应当是,在大多数状况下它意义有相对大量的行动者 — — 数以百万计或更多 — — 与每一个元素表明一个天然的实体的应用程序,如用户账户、 采购订单等。演员被单独可寻址与抽象出来了由运行时其物理位置,奥尔良有极大的灵活性,在平衡负载和处理热点在透明和通用的方式,没有任何思想从应用程序开发人员。
  • 自适应资源管理。与行动者关于他们交互因为位置透明性与其余演员现场制做没有假设,运行时能够管理和调整可用的硬件资源的分配在一个很是动态的方式使细粒决定按安置/迁移的演员跨计算群集中反应来加载和通讯模式没有传入的请求。经过建立多个副本的一个特定的演员运行时能够提升吞吐量的演员若有必要,不须要更改任何应用程序代码。
  • 复用通讯。在奥尔良行为者逻辑终结点,而它们之间消息传递多路复用在一套固定的所有共物理链接 (TCP 套接字)。这容许运行时主机寻址的实体,与每位演员较低的操做系统开销很是大号 (百万)。此外,激活/取消激活的演员并不招致的注册注销一个物理端点,例如 TCP 端口或一个 HTTP URL,或甚相当闭 TCP 链接的成本。
  • 高效调度。运行时安排跨与每一个物理处理器核心线程的自定义线程池执行大量的单线程的演员。与演员代码写在非阻塞延续基于风格 (奥尔良编程模型要求) 应用程序的代码运行在一个很是有效的"合做"多线程的方式与没有争用。这可以使系统达到较高的吞吐量和运行在 CPU 使用率很高 (达 90%以上) 与极大的稳定性。在系统和负载行为者的人数增加不会致使额外的线程或其余 OS 基元的事实帮助各个节点和整个系统的可扩展性。
  • 显式异步。奥尔良编程模型使得导游程序员编写非阻塞异步代码与分布式应用程序显式异步性质。与异步消息传递、 高效调度相结合,这样,很大程度的分布式并行性和总体吞吐量无需显式使用多线程。

 

系统必备组件

奥尔良是一套的.NET 库。要使用奥尔良,须要.NET 框架4.5.1 或更高和Visual Studio 2015 或更高版本的副本。请注意,快递版本的 Visual Studio 不支持扩展包,但您能够经过直接添加引用 NuGet 程序包使用奥尔良。程序员

在生产中,奥尔良须要持久存储。如下技术支持 (只须要其中之一)︰github

Nuget 程序包

1.3.1 版奥尔良 NuGet 程序包

有 4 关键的 NuGet 程序包,您将须要在大多数状况下使用︰sql

微软奥尔良生成时间代码生成

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

创建粮食接口和执行项目的支持。将它添加到您的粮食接口和执行项目,使粮食引用和序列化程序的代码生成。 和包是过期和提供仅用于向后兼容性和迁移。Microsoft.Orleans.Templates.InterfacesMicrosoft.Orleans.Templates.Grains数据库

微软奥尔良核心库

PM> Install-Package Microsoft.Orleans.Core 

包含 Orleans.dll,定义大多数奥尔良公共类型和奥尔良客户端。引用它构建库和客户端应用程序使用奥尔良类型但不须要任何包含提供者。apache

微软奥尔良服务器库

PM> Install-Package Microsoft.Orleans.Server 

包括一切您须要运行一个筒仓。编程

微软奥尔良客户端库

PM> Install-Package Microsoft.Orleans.Client 

包括一切你须要的奥尔良客户端 (前端)。服务器


附加的软件包

下列的软件包提供额外的功能。

供应商和扩展

微软奥尔良蔚蓝的实用程序

PM> Install-Package Microsoft.Orleans.OrleansAzureUtils 

包含基于 Azure 表群集成员资格提供程序,简化的筒仓和 Azure 工人/Web 角色、 持久性提供程序 Azure 表和 Azure Blob 和 Azure 队列流供应商中的客户端实例化的包装类。

微软奥尔良 Sql 实用程序

PM> Install-Package Microsoft.Orleans.OrleansSqlUtils 

包含基于 SQL 群集成员身份和持久性提供与 SQL Server、 MySQL、 PostgreSQL 和其余 SQL 数据库一块儿使用。

微软奥尔良提供商

PM> Install-Package Microsoft.Orleans.OrleansProviders 

包含一组内置的持久性和流服务供应商。包括在 Microsoft.Orleans.Client 和 Microsoft.Orleans.Server。

微软奥尔良 ServiceBus 实用程序

PM> Install-Package Microsoft.Orleans.OrleansServiceBus 

包括流提供商 Azure 事件集线器。

微软奥尔良领事实用程序

PM> Install-Package Microsoft.Orleans.OrleansConsulUtils 

包括用于存储群集成员资格数据使用领事的插件。

微软奥尔良饲养员实用程序

PM> Install-Package Microsoft.Orleans.OrleansZooKeeperUtils 

包括用于存储群集成员资格数据使用 ZooKeeper 的插件。

微软奥尔良遥测消费者-性能计数器

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI 

Windows 性能计数器的奥尔良遥测 API 执行的状况。

微软奥尔良遥测消费者-Azure 应用程序的看法

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI 

包括遥测消费者对 Azure 应用程序的看法。

微软奥尔良遥测消费者-NewRelic

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic 

包括为 NewRelic 遥测消费者。

微软奥尔良债券序列化程序

PM> Install-Package Microsoft.Orleans.Serialization.Bond 

包括对债券的序列化程序的支持。

主办和测试

微软奥尔良运行时

PM> Install-Package Microsoft.Orleans.OrleansRuntime 

核心运行时库的 Microsoft 奥尔良承载并执行谷物筒仓内。

微软奥尔良筒仓主机

PM> Install-Package Microsoft.Orleans.OrleansHost 

包括默认筒仓主机-OrleansHost.exe。能够用于在内部部署或做为一个进程外筒仓主机在 Azure 工做者角色。包含在 Microsoft.Orleans.Server 中。

微软奥尔良服务结构支持

PM> Install-Package Microsoft.Orleans.ServiceFabric 

主办微软奥尔良服务织物上的支持。

微软奥尔良测试主机图书馆

PM> Install-Package Microsoft.Orleans.TestingHost 

包括用于承载筒仓在测试项目库。

微软奥尔良代码生成

PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator 

包括运行的时代码生成器。包括在 Microsoft.Orleans.Server 和 Microsoft.Orleans.Client。

工具

微软奥尔良性能计数器工具

PM> Install-Package Microsoft.Orleans.CounterControl 

包括 OrleansCounterControl.exe,注册 Windows 性能计数器类别,奥尔良统计,并为部署的粮食类。须要提高权限。能够在 Azure 做为角色启动任务的一部分执行。包含在 Microsoft.Orleans.Server 中。

微软奥尔良管理工具

PM> Install-Package Microsoft.Orleans.OrleansManager 

包括奥尔良管理工具-OrleansManager.exe。

本站公众号
   欢迎关注本站公众号,获取更多信息