摘要
当团队搜索企业级 Solana relay 正常运行时间、SLA 和随叫随到支持时,他们通常是在比较托管 RPC 提供商实际承诺的内容与他们自己必须构建和配备人员的内容。本文分解了重要的运营信号:如何衡量正常运行时间、服务级别协议应涵盖哪些内容、随叫随到升级如何运作,以及如何在你依赖 Solana RPC 或专用节点设置进行生产之前对其进行测试。
Solana 的吞吐量和 slot 时序给 RPC 基础设施带来了不寻常的压力。一个在以太坊上偶尔延迟的 relay 对于仪表盘来说可能没问题,但在 Solana 上同样的延迟可能意味着错过 slot 数据、账户状态过时或 WebSocket 订阅丢失。如果你正在评估一个用于生产流量的提供商,问题不仅仅是“它今天能工作吗”,而是“当它在凌晨 3 点不工作时会发生什么,谁负责。”
本文关注运营层面:如何解读正常运行时间声明、Solana RPC SLA 实际应涵盖什么、共享和专用设置中的随叫随到升级有何不同,以及如何在将真实流量路由到任何提供商之前对其进行测试。
Solana relay 的生产就绪检查清单
在比较合同或营销页面之前,先确定你的工作负载实际需要什么。此检查清单可帮助你区分共享公共端点和你为付费产品所依赖的基础设施。
| 信号 | 检查内容 | 为何会改变你的选择 |
|---|---|---|
| 流量形态 | 每秒请求数、突发模式、读写比 | 突发工作负载需要余量和明确的速率限制,而不仅仅是平均值 |
| 方法组合 | 标准 JSON-RPC 与 getProgramAccounts、getSignaturesForAddress、大型 getTransaction 调用 | 重型方法在不同提供商处的行为差异很大 |
| 传输 | 仅 HTTP,还是 HTTP 加 WebSocket 订阅 | WebSocket 稳定性是与 HTTP 不同的运营关注点 |
| 数据新鲜度 | 你需要最近的 slot 还是历史/归档数据? | 归档和 trace 访问通常是不同的产品层级 |
| 故障容忍度 | 如果端点不可达 30 秒,你的应用会怎样? | 决定你是否需要故障转移和多提供商路由 |
| 责任归属 | 出问题时谁响应,多快响应? | 这正是 SLA 和随叫随到支持真正重要的地方 |
如果你的答案指向“我们可以容忍偶尔重试,且没有合同需求”,那么共享端点就足够了。如果你的答案指向“停机意味着损失金钱,我们需要明确的升级路径”,那么你就属于专用节点或托管提供商范畴。
Solana relay 的“正常运行时间”应意味着什么
正常运行时间百分比很容易打印,却很难解读。一个单一的头条数字隐藏了多种不同的故障模式:
- 端点可用性 — HTTP 或 WebSocket 端点接受连接并返回有效的 JSON-RPC 响应。
- 链新鲜度 — 节点同步到当前 slot,而不仅仅是响应。
- 方法级成功 — 重型或受速率限制的方法成功,而不仅仅是
getHealth。 - 区域可达性 — 端点从你的用户和服务器实际所在的位置快速且稳定。
一个提供商可能按一种定义是“正常”,但按另一种定义实际上已宕机。当你看到正常运行时间数字时,要问测量的是什么以及从哪里测量。一个只 ping getHealth 的健康检查几乎无法告诉你 getProgramAccounts 在负载下是否会超时。
对于 Solana 而言,新鲜度比许多链更重要,因为 slot 时间很短,应用通常依赖近乎实时的状态。一个技术上可达但落后几个 slot 的 relay 可能会破坏交易逻辑、索引器和通知系统,而不会触发简单的可用性警报。
解读 Solana RPC SLA 而不被误导
服务级别协议是一种承诺,而不是功能列表。当你审查它时,请关注以下组成部分:
- 范围 — 涵盖哪些端点、传输和区域,以及明确排除哪些。
- 测量方法 — 如何计算正常运行时间,在什么时间窗口内,从哪些观察点。
- 排除项 — 计划维护、上游链问题和客户导致的故障通常被排除。了解剩下什么。
- 补救措施 — 如果未达到目标,你实际获得什么(服务积分、升级或什么都没有)。
- 支持条款 — 响应时间、升级渠道,以及工作时间之外是否有随叫随到覆盖。
一个有用的心智模型:SLA 的强度取决于其测量方法和补救措施。一个高数字但测量模糊且没有补救措施,只是营销声明。一个中等数字但测量清晰、排除项明确且有真实升级路径,在运营上更强。
如果你在 Solana 上运行付费产品,直接询问提供商他们如何衡量可用性、是否发布状态历史,以及事件期间的升级路径是什么样的。能够具体回答这些问题的提供商比只引用百分比的提供商更容易信任。
共享 RPC 与专用节点:支持和 SLA 的差异
支持和责任模型因你使用的层级而显著不同。
| 维度 | 共享/公共 RPC | 专用节点 |
|---|---|---|
| 资源隔离 | 在许多用户之间共享 | 为你的工作负载保留 |
| 速率限制 | 通常池化并强制执行 | 根据你的流量调整大小 |
| WebSocket 稳定性 | 负载下尽力而为 | 更可预测、隔离 |
| 自定义方法/归档 | 通常有限 | 通常可配置 |
| 支持模型 | 社区或标准支持 | 明确的升级和随叫随到选项 |
| SLA 适用性 | 很少具有合同性 | 通常是协议的一部分 |
这是查询背后的核心权衡。如果你需要合同性的正常运行时间承诺和事件期间能响应的人,这通常意味着专用基础设施或带有支持协议的托管提供商层级——而不是免费的公共端点。
OnFinality 同时提供共享 RPC API 访问和专用节点,因此你可以从共享端点开始,并随着可靠性需求的增长迁移到隔离基础设施。正确的层级取决于你的工作负载,而不是通用建议。
随叫随到支持在实践中如何运作
“随叫随到支持”可能意味着非常不同的事情。在评估提供商时,请明确你获得的是以下哪一种:
- 工作时间支持 — 团队在定义的时间窗口内响应,通常通过工单系统。
- 延长时段覆盖 — 在正常时间之外可以联系到支持,但响应时间可能更长。
- 24/7 随叫随到并升级 — 从首次响应到工程团队的明确路径,具有定义的响应目标。
- 专属技术联系人 — 熟悉你设置的特定人员或团队。
对于大多数生产 Solana 应用,实际问题是:我如何开启事件?首次响应目标是什么?如果第一响应者无法解决,谁会收到寻呼?是否有我可以查看的状态页面或事件频道?
了解提供商能修复什么、不能修复什么也很有帮助。提供商可以解决端点可用性、节点健康和基础设施问题。他们无法修复 Solana 网络范围的拥塞事件、你客户端中的错误或你自己代码中配置错误的 commitment 级别。良好的支持关系可以帮助你快速区分。
在提交之前测试 Solana relay
你不需要等待事件来了解提供商的行为。在将生产流量路由到任何候选端点之前,对其运行一个小型、可重复的测试。
从通过 JSON-RPC 进行基本健康和新鲜度检查开始:
curl -s https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlot",
"params": [{"commitment": "confirmed"}]
}'
然后检查你的应用实际使用的更重的方法,并计时:
curl -s -w "\nTotal: %{time_total}s\n" https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "getLatestBlockhash",
"params": [{"commitment": "confirmed"}]
}'
对于依赖 WebSocket 的应用,单独验证订阅稳定性,因为 HTTP 成功并不能保证订阅通道健康。一个最小的 Node.js 探针可以确认 slot 通知到达:
import WebSocket from "ws";
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
ws.on("open", () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "slotSubscribe"
}));
});
ws.on("message", (data) => {
console.log("slot notification:", data.toString());
});
ws.on("error", (err) => console.error("ws error:", err.message));
从你的用户访问的相同区域定期运行这些探针,并随时间记录延迟和错误率。该历史记录比任何单一基准测试都有用得多,并且如果你以后更换提供商,它为你提供了比较的基线。
值得跟踪的监控信号
一旦上线,一小组信号会比单一的正常运行时间数字告诉你更多:
- Slot 延迟 — 端点最新 slot 与网络当前 slot 之间的差异。
- 按方法的错误率 — 某些方法在负载下比其他方法更容易失败。
- p95/p99 延迟 — 平均值隐藏了用户实际感受到的尾部。
- WebSocket 重连频率 — 频繁重连通常先于可见故障。
- 故障转移事件 — 你的客户端切换端点的频率及原因。
如果你运行多个端点,请按端点跟踪这些指标,以便了解哪个先退化。这也是你希望带入支持对话的数据,因为它将“感觉慢”转变为具体、可操作的报告。
何时从共享 RPC 迁移到专用基础设施
没有单一的阈值,但这些模式通常表明是时候迁移了:
- 你在正常流量下就触及速率限制,而不仅仅是峰值时。
- WebSocket 断开连接正在影响面向用户的功能。
- 你需要归档数据、自定义方法或特定的节点配置。
- 你需要合同 SLA 和定义的随叫随到升级路径。
- 你的合规或内部审查流程要求有文档化的支持条款。
当这种情况发生时,查看 RPC 定价 以了解层级差异,如果你跨多个链运营,请比较支持的 RPC 网络。对于 Solana 具体而言,Solana 网络页面 涵盖了端点详细信息和传输支持,包括 HTTP 和 WebSocket。
关键要点
- 只有当你知道测量什么、从哪里测量以及在什么时间窗口内测量时,正常运行时间声明才有意义。
- Solana RPC SLA 应定义范围、测量、排除项、补救措施和支持条款——而不仅仅是一个百分比。
- 随叫随到支持差异很大;在依赖它们之前,明确响应目标、升级路径和工作时间。
- 共享端点适合许多工作负载,但合同 SLA 和明确的升级通常需要专用基础设施。
- 在路由生产流量之前,使用可重复的 HTTP 和 WebSocket 探针测试任何候选 relay。
- 跟踪 slot 延迟、按方法的错误率、尾部延迟和重连频率作为你的核心可靠性信号。
常见问题
更高的正常运行时间百分比总是意味着更好的可靠性吗?
不。测量方法比头条数字更重要。一个端点可能可达但过时,或者对轻量方法快速但对重型方法不可靠。询问如何计算正常运行时间以及包含哪些方法和传输。
Solana RPC SLA 应包含什么?
至少包括:范围内的端点和区域、如何衡量可用性、排除什么(维护、上游链问题)、如果未达到目标适用什么补救措施,以及支持和升级条款。
共享 RPC 计划是否提供随叫随到支持?
支持模型因提供商和层级而异。共享或公共端点通常附带有限或社区支持,而专用基础设施和托管计划更可能包括定义的升级和延长时段覆盖。在提交之前确认具体细节。
在生产中使用 Solana relay 之前如何测试它?
为你实际使用的方法运行定期的 JSON-RPC 探针,从目标区域测量延迟和错误率,并单独测试 WebSocket 订阅稳定性。保留结果作为比较基线。
何时应从共享端点迁移到专用 Solana 节点?
常见触发因素包括持续速率限制、影响用户的 WebSocket 不稳定、需要归档或自定义配置,以及需要具有明确升级路径的合同 SLA。
提供商能保证 Solana 网络可用性吗?
没有提供商控制 Solana 网络本身。提供商可以承诺其自身基础设施和端点的可用性和健康,并应明确说明哪些不在范围内,例如网络范围的拥塞事件。