Repolode
dotnet

dotnet/orleans

基于虚拟 Actor 模型的跨平台 .NET 分布式应用框架,用于构建可扩展的云端服务。

Star
10,913
Fork
2,148
未关闭 Issue
645
最近提交
4小时前

这是什么?

Orleans 将 .NET 中熟悉的对象、接口、async/await 和异常处理等编程方式扩展到多服务器环境。开发者把应用实体建模为 grain,每个 grain 拥有稳定的标识、行为和可选状态。Orleans 运行时按需激活 grain、回收闲置实例,并在 silo 集群中定位它们,调用方无需关心 grain 运行在哪台服务器上。

状态可以保存到任意存储系统。框架还提供定时器、持久化提醒、可串行化隔离级别的分布式 ACID 事务、基于 Azure Event Hubs、Amazon Kinesis 等队列的托管流,以及可配置的 grain 放置策略。集群可以从单个 silo 扩展到多个,并能从 silo 故障中自动恢复。

Orleans 支持 Windows、Linux 和 macOS,兼容 .NET Standard 2.0 及更高版本的 .NET 运行时,可部署到 Kubernetes、虚拟机或物理机,也可用于 Azure App Service 等 PaaS 服务。

核心功能

  • 01带稳定标识的 grain,可选择将状态持久化到任意存储系统
  • 02无中心协调者的分布式 ACID 事务,支持可串行化隔离
  • 03基于 Azure Event Hubs、Amazon Kinesis 等队列的托管流处理
  • 04持久化提醒与非持久化定时器,用于调度任务
  • 05可配置的 grain 放置策略与接口版本管理
  • 06用于鉴权、日志和错误处理的 grain 调用过滤器

适用场景

  • 构建物联网后端,将每台设备建模为一个数字孪生 grain
  • 开发需要有状态、低延迟并可横向扩展的云服务
  • 使用带检查点的消费者处理近实时事件流
  • 将单机 .NET 应用逐步演进为高可用的分布式服务

使用前须知

  • 需要 .NET 生态和 C# 才能使用它开发应用。
  • 它是分布式应用框架,运行集群会比单进程应用带来更多的部署与运维工作。

收录于专题

标签

常见问题

orleans 是什么?
基于虚拟 Actor 模型的跨平台 .NET 分布式应用框架,用于构建可扩展的云端服务。 Orleans 将 .NET 中熟悉的对象、接口、async/await 和异常处理等编程方式扩展到多服务器环境。开发者把应用实体建模为 grain,每个 grain 拥有稳定的标识、行为和可选状态。Orleans 运行时按需激活 grain、回收闲置实例,并在 silo 集群中定位它们,调用方无需关心 grain 运行在哪台服务器上。
orleans 可以免费使用吗?用的什么许可证?
orleans 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
orleans 还在维护吗?
活跃维护中。orleans 最近一次提交是在 2026年10月24日。
orleans 适合用来做什么?
构建物联网后端,将每台设备建模为一个数字孪生 grain 开发需要有状态、低延迟并可横向扩展的云服务 使用带检查点的消费者处理近实时事件流 将单机 .NET 应用逐步演进为高可用的分布式服务
在哪里获取 orleans?
源代码和安装说明在 GitHub 上:https://github.com/dotnet/orleans

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目