Orleans NuGet 包

Orleans 的使用者依赖各种 NuGet 包来实现特定的期望行为。 有几个常见的包和抽象,以及许多单独的单一用途包。 本文提供了一些见解,帮助开发人员了解应使用哪些 Orleans 包。

关键包

在编写 Orleans 应用时,引用两个互斥的 NuGet 包中的一个,具体取决于选择的工作负载。 例如,在编写 Orleans 接收器时,将引用 Microsoft.Orleans.Server NuGet 包。 在编写 Orleans 客户端应用时,将引用 Microsoft.Orleans.Client NuGet 包。 所有 Orleans 项目(如抽象或 grain 类库)都引用 Microsoft.Orleans.Sdk NuGet 包。 Microsoft.Orleans.Sdk 包包含在 ClientServer 包中。

NuGet 程序包 说明
Microsoft.Orleans.Client Orleans 客户端所需的客户端独占包。
Microsoft.Orleans.Sdk 所有 Orleans 应用、服务器和客户端包所需的元包都依赖此包。
Microsoft.Orleans.Server Orleans 接收器所需的服务器独占包。

有关安装 NuGet 包的信息,请参阅以下选项:

Hosting

NuGet 程序包 说明
Microsoft.Orleans.Hosting.AzureCloudServices Orleans 的适用于 Azure 云服务的托管实用工具。
Microsoft.Orleans.Hosting.Kubernetes 对 Kubernetes 的 Orleans 托管支持。
Microsoft.Orleans.Runtime Orleans 的核心运行时库,在接收器中托管和执行 grain。

群集提供程序

NuGet 程序包 说明
Microsoft.Orleans.Clustering.AzureStorage Azure 表存储支持的 Orleans 群集提供程序。
Microsoft.Orleans.Clustering.AdoNet ADO.NET 支持的 Orleans 群集提供程序。
Microsoft.Orleans.Clustering.DynamoDB AWS DynamoDB 支持的 Orleans 群集提供程序。

提醒提供程序

NuGet 程序包 说明
Microsoft.Orleans.Reminders 服务器上使用的 Microsoft Orleans 的提醒库。
Microsoft.Orleans.Reminders.AzureStorage Azure 表存储支持的 Orleans 提醒提供程序。
Microsoft.Orleans.Reminders.AdoNet ADO.NET 支持的 Orleans 提醒提供程序。
Microsoft.Orleans.Reminders.DynamoDB AWS DynamoDB 支持的 Orleans 提醒提供程序。

grain 存储提供程序

NuGet 程序包 说明
Microsoft.Orleans.Persistence.AdoNet ADO.NET 支持的 Orleans 持久性提供程序。
Microsoft.Orleans.Persistence.AzureStorage Azure 表存储支持的 Orleans 持久性提供程序。
Microsoft.Orleans.Persistence.DynamoDB AWS DynamoDB 支持的 Orleans 持久性提供程序。
Microsoft.Orleans.Persistence.Memory Orleans 的内存中存储。

流提供程序

NuGet 程序包 说明
Microsoft.Orleans.Streaming 在客户端和服务器上使用的 Orleans 的流式处理库。
Microsoft.Orleans.Streaming.AzureStorage Azure 队列存储支持的 Orleans 流式处理提供程序。
Microsoft.Orleans.Streaming.EventHubs Azure 事件中心支持的 Orleans 流式处理提供程序。
Microsoft.Orleans.Streaming.SQS AWS SQS 支持的 Orleans 流式处理提供程序。

其他包

NuGet 程序包 说明
Microsoft.Orleans.Analyzers 适用于 Orleans 的 C# 分析器。
Microsoft.Orleans.CodeGenerator Microsoft.Orleans.Serialization 的代码生成库。
Microsoft.Orleans.EventSourcing 用于创建具有事件源状态的 Orleans grain 的基类型。
Microsoft.Orleans.Connections.Security 支持在 Orleans 中使用 TLS 进行安全通信。

开发和测试

NuGet 程序包 说明
Microsoft.Orleans.TestingHost 用于在测试项目中托管接收器的 Orleans 库。
Microsoft.Orleans.Transactions.TestKit.Base 用于事务的测试工具包基库。
Microsoft.Orleans.Transactions.TestKit.xUnit 用于事务的 xUnit 测试工具包库。
Microsoft.Orleans.Serialization.TestKit 用于使用 Microsoft.Orleans.Serialization 的项目的测试工具包。

序列化程序

NuGet 程序包 说明
Microsoft.Orleans.Serialization 适用于 .NET 的快速、灵活且版本容错的序列化程序。
Microsoft.Orleans.Serialization.Abstractions Orleans 的序列化抽象。
Microsoft.Orleans.Serialization.SystemTextJson Microsoft.Orleans.SerializationSystem.Text.Json 集成。
Microsoft.Orleans.Serialization.FSharp Microsoft.Orleans.Serialization 的 F# 核心类型支持。
Microsoft.Orleans.Serialization.NewtonsoftJson Microsoft.Orleans.SerializationNewtonsoft.Json 集成。

事务

NuGet 程序包 说明
Microsoft.Orleans.Transactions 服务器上使用的 Orleans 的核心事务库。
Microsoft.Orleans.Transactions.AzureStorage Azure 存储支持的 Orleans 事务存储提供程序。

工具

OrleansDashboard NuGet 包是很受欢迎的 Orleans 工具之一。 此仪表板提供了一些简单的指标,以及对 Orleans 应用内发生的情况的见解。 有关详细信息,请参阅 GitHub:Orleans 仪表板

关键包

在大多数情况下,需要使用 5 个关键 NuGet 包:

Orleans 核心抽象

Install-Package Microsoft.Orleans.Core.Abstractions

包含 Orleans.Core.Abstractions.dll,该文件定义开发应用程序代码( grain 接口和类)时所需的 Orleans 公共类型。 任何 Orleans 项目都需要直接或间接引用此包。 请将它添加到定义 grain 接口和类的项目中。

Orleans 生成时代码生成

  • Microsoft.Orleans.OrleansCodeGenerator.Build

    Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build
    

    出现在 Orleans 1.2.0 中。 对 grain 接口和实现项目的生成时支持。 请将它添加到 grain 接口和实现项目中,以启用 grain 引用和序列化程序的代码生成。

  • Microsoft.Orleans.CodeGenerator.MSBuild

    Install-Package Microsoft.Orleans.CodeGenerator.MSBuild
    

    作为 Orleans 2.1.0 的一部分出现。 可以替代 Microsoft.Orleans.OrleansCodeGenerator.Build 包。 利用 Roslyn 进行代码分析,以避免加载应用程序二进制文件并改进对增量生成的支持,从而缩短生成时间。

Orleans 服务器库

Install-Package Microsoft.Orleans.Server

用于轻松生成和启动 silo 的元包。 包括以下包:

  • Microsoft.Orleans.Core.Abstractions
  • Microsoft.Orleans.Core
  • Microsoft.Orleans.OrleansRuntime
  • Microsoft.Orleans.OrleansProviders

Orleans 客户端库

Install-Package Microsoft.Orleans.Client

用于轻松生成和启动 Orleans 客户端(前端)的元包。 包括以下包:

  • Microsoft.Orleans.Core.Abstractions
  • Microsoft.Orleans.Core
  • Microsoft.Orleans.OrleansProviders

Orleans 核心库

Install-Package Microsoft.Orleans.Core

包含应用程序代码和 Orleans 客户端(前端)使用的大多数 Orleans 公共类型的实现。 引用该包可以生成使用 Orleans 类型但不处理托管或接收器的库和客户端应用程序。 包含在 Microsoft.Orleans.Client 和 Microsoft.Orleans.Server 元包中,由其他大多数包直接或间接引用。

Hosting

Orleans 运行时

Install-Package Microsoft.Orleans.OrleansRuntime

用于配置和启动 silo 的库。 请在 silo 主机项目中引用它。 包含在 Microsoft.Orleans.Server 元包中。

Orleans 运行时抽象

Install-Package Microsoft.Orleans.Runtime.Abstractions

包含 Microsoft.Orleans.OrleansRuntime 中实现的类型的接口和抽象。

Azure 云服务上的 Orleans 托管

Install-Package Microsoft.Orleans.Hosting.AzureCloudServices

包含用于将接收器和 Orleans 客户端托管为 Azure 云服务(辅助角色和 Web 角色)的帮助器类。

Orleans Service Fabric 托管支持

Install-Package Microsoft.Orleans.Hosting.ServiceFabric

包含用于将 silo 托管为无状态 Service Fabric 服务的帮助器类。

群集提供程序

以下包包含用于在各种存储技术中持久保存群集成员身份数据的插件。

Azure 表存储的 Orleans 群集提供程序

Install-Package Microsoft.Orleans.Clustering.AzureStorage

包含使用 Azure 表来存储群集成员身份数据的插件。

ADO.NET 提供程序的 Orleans 群集提供程序

Install-Package Microsoft.Orleans.Clustering.AdoNet

包含使用 ADO.NET 将群集成员身份数据存储在受支持数据库之一中的插件。

Orleans Consul 实用工具

Install-Package Microsoft.Orleans.OrleansConsulUtils

包含使用 Consul 来存储群集成员身份数据的插件。

Orleans ZooKeeper 实用工具

Install-Package Microsoft.Orleans.OrleansZooKeeperUtils

包含使用 ZooKeeper 来存储群集成员身份数据的插件。

AWS DynamoDB 的 Orleans 群集提供程序

Install-Package Microsoft.Orleans.Clustering.DynamoDB

包含使用 AWS DynamoDB 来存储群集成员身份数据的插件。

提醒提供程序

以下包包含用于在各种存储技术中持久保存提醒的插件。

Orleans 提醒 Azure 表存储

Install-Package Microsoft.Orleans.Reminders.AzureStorage

包含使用 Azure 表来存储提醒的插件。

Orleans 提醒 ADO.NET 提供程序

Install-Package Microsoft.Orleans.Reminders.AdoNet

包含使用 ADO.NET 将提醒存储在受支持数据库之一中的插件。

AWS DynamoDB 的 Orleans 提醒提供程序

Install-Package Microsoft.Orleans.Reminders.DynamoDB

包含使用 AWS DynamoDB 来存储提醒的插件。

grain 存储提供程序

以下包包含用于在各种存储技术中持久保存 grain 状态的插件。

Orleans 持久性 Azure 存储

Install-Package Microsoft.Orleans.Persistence.AzureStorage

包含使用 Azure 表或 Azure Blob 来存储 grain 状态的插件。

Orleans 持久性 ADO.NET 提供程序

Install-Package Microsoft.Orleans.Persistence.AdoNet

包含使用 ADO.NET 将 grain 状态存储在受支持数据库之一中的插件。

Orleans 持久性 DynamoDB

Install-Package Microsoft.Orleans.Persistence.DynamoDB

包含使用 AWS DynamoDB 来存储 grain 状态的插件。

流提供程序

以下包包含用于传递流事件的插件。

Orleans 服务总线实用工具

Install-Package Microsoft.Orleans.OrleansServiceBus

包含 Azure 事件中心的流提供程序。

Orleans 流式处理 Azure 存储

Install-Package Microsoft.Orleans.Streaming.AzureStorage

包含 Azure 队列的流提供程序。

Orleans 流式处理 AWS SQS

Install-Package Microsoft.Orleans.Streaming.SQS

包含 AWS SQS 服务的流提供程序。

Orleans Google Cloud Platform 实用工具

Install-Package Microsoft.Orleans.OrleansGCPUtils

包含 GCP PubSub 服务的流提供程序。

其他包

Orleans 代码生成

Install-Package Microsoft.Orleans.OrleansCodeGenerator

包含运行时代码生成器。

Orleans 事件溯源

Install-Package Microsoft.Orleans.EventSourcing

包含一组基本类型,用于创建具有事件溯源状态的 grain 类。

开发和测试

Orleans 提供程序

Install-Package Microsoft.Orleans.OrleansProviders

包含一组将数据保存在内存中的持久性和流提供程序。 用于测试。 一般情况下,不建议用于生产,除非可以接受在 silo 发生故障时丢失数据。

Orleans 测试主机库

Install-Package Microsoft.Orleans.TestingHost

包含用于在测试项目中托管 silo 和客户端的库。

序列化程序

Orleans Bond 序列化程序

Install-Package Microsoft.Orleans.Serialization.Bond

包含对绑定序列化程序的支持。

Orleans Google 实用工具

Install-Package Microsoft.Orleans.OrleansGoogleUtils

包含 Google 协议缓冲区序列化程序。

Orleans protobuf-net 序列化程序

Install-Package Microsoft.Orleans.ProtobufNet

包含 protobuf-net 版本的协议缓冲区序列化程序。

遥测

Orleans 遥测使用者 - 性能计数器

Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.Counters

Orleans 遥测 API 的 Windows 性能计数器实现。

Orleans 遥测使用者 - Azure Application Insights

Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI

包含 Azure Application Insights 的遥测使用者。

Orleans 遥测使用者 - NewRelic

Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic

包含 NewRelic 的遥测使用者。

事务

Orleans 事务支持

Install-Package Microsoft.Orleans.Transactions

包含对跨 grain 事务的支持 (beta)。

Azure 上的 Orleans 事务

Install-Package Microsoft.Orleans.Transactions.AzureStorage

包含用于在 Azure 表中持久保存事务日志的插件 (beta)。

工具

Orleans 性能计数器工具

Install-Package Microsoft.Orleans.CounterControl

包含 OrleansCounterControl.exe,该文件为 Orleans 统计信息和已部署的 grain 类注册 Windows 性能计数器类别。 需要提升权限。 可以作为角色启动任务的一部分在 Azure 中执行。