受 Erlang/OTP 启发的 Go 参与者模型框架,用于构建可监督、网络透明的分布式系统。
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 数据每日更新。
相关项目
NATS 服务端,一个高性能消息系统,用于连接服务、设备与边缘系统,属于 CNCF 项目。
Rivet 是一个开源编排器,用持久化的 Actor 承载智能体、工作流和实时应用的有状态任务。
面向 Rust 的 Actor 框架,基于 Tokio 运行时,支持类型化消息和 Actor 监督。
基于强一致键值存储构建的云原生分布式 SQL 数据库,兼容 PostgreSQL 协议。
面向后台任务、AI 智能体和持久化工作流的编排引擎,支持 Python、TypeScript、Go 和 Ruby。