控制处理范围
解码前按地址或程序筛选。仅需要哈希和计数时使用区块元数据。只有解码器支持对应切片时才启用数据切片。将低流量订阅合并到一个连接;测量确认存在竞争后,再拆分高流量程序。限制工作量与内存
等待异步处理可控制并发,但不会让 CPU 密集任务自动并行。复杂解析应使用有限队列和 worker。明确队列满时的处理:暂停、采样可丢弃指标,或停止后补齐持久数据。监控队列长度与最旧的待处理 slot。使用有限重试重连
先将快速入门中的辅助代码保存为同一目录的stream.mts。以下示例使用相同的环境变量与依赖。
示例以退避和随机抖动重试元数据订阅,在八次中断后退出。认证失败应先修复,再启动。
reconnect.mts
显式补齐数据间隔
下游写入成功后再保存处理进度。重连时发送完整订阅,并使用可用 RPC 历史或新账户快照补齐缺失范围。只有端点确认支持回放及保留范围时才使用回放;不要假设可回放任意 slot。对回放更新去重。根据测量调整
- 从部署主机比较欧洲与美国端点;ICMP ping 不能单独代表数据流延迟。
- 消息超过限制时先减少内容;再根据客户端版本设置接收上限,并预留内存。
- 回复服务端 ping。传输层 keepalive 与订阅 ping 是不同机制。
- 对重复断线、解码错误、队列增长、进度停滞和写入失败设置告警。
- 使用实际下游数据库测试中断与恢复。