Rivet 引擎
什么是 Rivet 引擎?
Rivet 引擎是驱动 Rivet Actor 大规模运行的后端引擎。它是 Rivet 生态系统的可选组件,提供企业级基础设施,用于运行具有长生命周期进程、持久化状态和实时能力的有状态工作负载。
虽然你可以在开发中使用 RivetKit(TypeScript 库)配合文件系统或内存驱动,但 Rivet 引擎提供生产就绪的基础设施,用于:
- 自动扩展:从零到数百万并发 Actor
- 分布式状态管理:通过快速内存状态存储实现
- Actor 生命周期管理:支持休眠和即时唤醒
- 内置韧性:具备自动故障转移和恢复能力
- 边缘部署:实现低延迟的全球分发
可以将其视为生产运行时,它使你的 RivetKit Actor 能够轻松扩展并分布在分布式基础设施上。
核心特性
- 生产就绪的扩展能力:自动从零扩展到数百万并发 Actor,无冷启动延迟
- 分布式状态存储:状态存储在与计算相同的机器上,实现超快读写,无数据库延迟
- Actor 生命周期管理:Actor 在空闲时自动休眠,按需即时唤醒,仅在活跃时消耗资源
- 内置实时支持:原生支持 WebSocket 和 SSE,用于实时状态更新和广播
- 韧性基础设施:自动故障转移和恢复,同时保持状态完整性
- 边缘就绪:将 Actor 部署在靠近用户的位置,实现即时交互
- 多运行时支持:兼容 Node.js、Bun、Deno 和 Cloudflare Workers
- API 集成:提供 RESTful API 用于管理 Runner、Actor 和命名空间
- 基于 Web 标准构建:使用标准 HTTP、WebSocket 和 SSE 协议
使用场景
Rivet 引擎为需要以下能力的应用提供支持:
- AI Agent:具有持久化记忆和实时流式能力的耐用 AI 助手
- 实时协作:具有 CRDT 和实时同步能力的协作文档、白板等工具
- 持久化工作流:具有自动状态管理和恢复的多步骤工作流
- 本地优先应用:具有服务端同步和冲突解决能力的离线优先应用
- 聊天机器人和自动化:具有持久化对话状态的 Discord、Slack 或自主机器人
- 用户级数据库:每个用户隔离的数据存储,实现零延迟访问
- 多人游戏:具有实时状态同步能力的权威游戏服务器
- 后台处理:无需外部队列基础设施的定时和重复任务
- 速率限制:具有内存计数器和状态的分布式速率限制
工作原理
Rivet 引擎提供后端运行时,用于:
- 管理 Actor:协调分布式基础设施上的 Actor 生命周期、休眠和唤醒
- 处理状态:将 Actor 状态存储在内存中以实现快速访问,并持久化备份到存储后端
- 路由请求:高效地将客户端请求路由到正确的 Actor 实例
- 动态扩展:根据需求自动创建和销毁 Actor 实例
- 确保韧性:监控健康状况并自动恢复失败的 Actor,同时保持状态
与 RivetKit 的集成
Rivet 引擎与用于构建 Actor 的 TypeScript 库 RivetKit 无缝协作:
- 开发:在本地开发中使用 RivetKit 配合文件系统或内存驱动
- 生产:部署到 Rivet 引擎以实现自动扩展和企业级功能
- 自托管:在自有基础设施上运行 Rivet 引擎以实现完全控制
- 托管服务:使用 Rivet Cloud 实现一键部署和托管基础设施
部署选项
在以下平台部署 Rivet 引擎:
- 自托管(Coolify、Docker、Kubernetes)
- 云平台(Vercel、Railway、AWS ECS、Google Cloud Run、Hetzner)
- Rivet Cloud(托管服务,一键部署)
存储后端
Rivet 引擎支持多种 Actor 状态的存储后端:
- PostgreSQL
- 文件系统
- 内存(用于开发/测试)
- 自定义存储适配器
