尚未开放。托管应用还没有向账户开放。本页按目前正在构建的样子介绍 Rivet,开放前可能还会变化。
Rivet 运行按键寻址的长期存在的 actor:每个 actor 都保存自己的状态、一个 SQLite 数据库、一个队列和实时连接,没有请求时休眠。一次安装就是一个你自己的 Rivet 引擎,版本 3.0.0 (Apache-2.0),由平台打包:你的 runner(用 RivetKit 构建的你的应用)和你的客户端连接到它。它的源代码在 rivet-dev/rivet。
glac install rivet --set disk_gib=20安装由什么构成
| 组成部分 | 说明 |
|---|---|
应用 <name>-engine |
引擎:一个有状态的方块服务,端口 6420,运行在自己的实例上。没有请求 idle_seconds 秒后休眠,请求会唤醒它。 |
它的存储卷 engine/data |
引擎的磁盘,位于 /var/lib/rivet:最近写入的日志和读缓存各占 40%。 |
它的存储桶 actors |
每个 actor 的数据的持久副本,由引擎保存在对象存储中、安装自己的前缀下。 |
| 它的管理员令牌 | 安装时生成一次,作为项目的机密保存;出现在 admin_token 和 endpoint 中。 |
参数
| 参数 | 说明 |
|---|---|
size.vcpus |
引擎最多使用的 vCPU:1 到 8,默认 1。 |
size.memory_gib |
它最多使用的内存,单位 GiB:0.5 到 16,默认 1。 |
disk_gib |
它的存储卷大小,单位 GiB:2 到 1,024,默认 10。创建后固定。 |
idle_seconds |
没有请求时引擎保持运行多久才休眠(秒):10 到 600,默认 600。 |
输出
| 输出 | 说明 |
|---|---|
url |
引擎的地址,对互联网提供服务。 |
endpoint |
RivetKit 的 runner 和客户端作为 RIVET_ENDPOINT 使用的值:带有管理员令牌的地址。机密。 |
admin_token |
引擎的管理员令牌,用于需要它的调用 (Authorization: Bearer …)。机密。 |
private_url |
引擎在项目私有网络上的地址:http://<name>-engine.internal:6420,供你在该网络上的应用和沙箱使用。 |
创建的响应中有全部输出;之后,机密输出只对有 admin 权限范围的密钥显示,控制台中也能看到。
使用
把你的 runner 和客户端指向 endpoint(在项目自己的应用和沙箱中,也可以带上管理员令牌指向 private_url)。引擎第一次启动后,平台会创建它的默认 runner 池(default,位于命名空间 default 中),你的 runner 加入这个池,池创建好后安装即为 ready:引擎在存储能接受命令之前稍早就会回应健康检查,在这期间发出的调用会以 overloaded 被拒绝(可重试)。actor 的状态归引擎管理:它先写入存储卷,再持久保存到存储桶,所以不随引擎的实例消失。
通过 API 查看健康状况
GET /v1/managed/rivet/{installation}/health 在引擎的实例上询问它的状况(会唤醒实例),并返回它的回答:{"object": "rivet_health", "installation_id": "ins-…", "engine": {"status": "ok", "version": "3.0.0", …}}。引擎没有响应时,返回 503 engine_not_ready(可重试)。需要有 read 权限范围的密钥。
费用
按方块的价格,为引擎实例的用量、存储卷和存储桶付费(安装的费用)。它的计算器按下面这些输入给出一个月的费用:1 vCPU 和 1 GiB 全天候运行,CPU 有 5% 的时间忙碌,10 GB 的存储卷,存储桶中 1 GB 数据,一百万次请求,以及 1 GB 发往互联网的流量:
| 计量项 | 每月 |
|---|---|
| CPU | 36 vCPU·小时 |
| 内存 | 720 GiB·小时 |
| 请求 | 1,000,000 |
| 存储卷数据 | 11 GB·月 |
| 存储卷缓存 | 10 GB·月 |
| 发往互联网的流量 | 1 GB |
引擎休眠时不占用 CPU 时间和内存;它休眠期间保存的内容和任何休眠实例一样计费。