Skip to Content
路由与可靠性

路由与可靠性

Gateway 先查询 Accelerator,再通过 Route 把一个公开入口连接到一个或多个 Endpoint。Endpoint 选择、故障切换和回源重试只有在 Route 中配置了有效目标后才会生效。

两种路由策略

Priority failover

按配置顺序优先使用 Endpoint。当前 Endpoint 被过滤、Circuit 暂停或发生可重试失败时,才尝试下一个。

适合有明确主节点、备用节点顺序的场景。健康状态本身不会无条件改变优先级。

Load balance

按权重抽样候选,并结合已观测的健康状态和延迟选择。权重代表相对流量,不是固定百分比。

适合多个同等上游分担请求。只有一个候选时仍会使用该 Endpoint,不能把负载均衡当作可用性保证。

候选过滤

Route 可以按以下条件过滤 Endpoint:

  • Endpoint 是否启用;
  • 最低信任等级;
  • 已观测延迟是否超过 Route 上限;
  • Circuit 是否暂时阻止新的尝试;
  • Endpoint 是否与 Gateway 的链、网络和协议一致。

没有延迟观测的 Endpoint 不会仅因为“未知”而被排除。

重试策略

safe_onlyidempotent 描述的是允许重试的失败类型,Gateway 不会根据方法名自动判断请求是否幂等。

策略行为
safe_only只切换尚未明确产生业务结果的连接、配置和特定上游拒绝
idempotent额外允许对超时、响应中断和部分 4xx/5xx 进行有限重试

写入类调用默认应使用 safe_only。只有业务确认重复发送安全时,才使用 idempotent。有效的上游 JSON-RPC application error 是最终响应,不会触发故障切换。

总尝试次数同时受 Route 和部署级上限约束,因此配置多个 Endpoint 不表示每次都会遍历全部目标。

限流

JSON-RPC 和 TRON HTTP API 使用相互独立的额度,并可能按全局、IP、Account 和 App 限制。生产额度由平台策略决定,文档不承诺固定 RPS。

  • JSON-RPC 限流:HTTP 200,error code -32029data.retry_after_ms 给出等待时间,并返回 Retry-After Header。
  • TRON HTTP API 限流:HTTP 429,并返回 Retry-After Header。

客户端应使用指数退避和随机抖动,并限制最大重试次数。

Accelerator 与回源

Accelerator 只覆盖明确的方法和参数。命中时不会选择 Endpoint;未命中时才进入 Route。没有 Endpoint 的请求会在未命中后返回 -32004,不会向未知公共节点回源。

缓存结果可能短暂滞后,且不保证每个历史高度、Slot 或 Hash 都存在。客户端应按链上 RPC 语义验证时间敏感结果,不要依赖 Gateway 必然命中、写入或刷新缓存。TRON HTTP API 不使用 Accelerator。

Last updated on