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
包包含在 Client
和 Server
包中。
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.Serialization 的 System.Text.Json 集成。 |
Microsoft.Orleans.Serialization.FSharp | 对 Microsoft.Orleans.Serialization 的 F# 核心类型支持。 |
Microsoft.Orleans.Serialization.NewtonsoftJson | Microsoft.Orleans.Serialization 的 Newtonsoft.Json 集成。 |
事务
NuGet 程序包 | 说明 |
---|---|
Microsoft.Orleans.Transactions | 服务器上使用的 Orleans 的核心事务库。 |
Microsoft.Orleans.Transactions.AzureStorage | Azure 存储支持的 Orleans 事务存储提供程序。 |
工具
一种流行的 Orleans 工具是 OrleansDashboard NuGet 包。 此仪表板提供了一些简单的指标,以及对 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 中执行。