🧠 图解记忆:使用服务端 cursor,不假设页码在同步期间稳定;点击图片可查看原图。
💡 答案要点
一个合格方案应包含:
- 使用服务端 cursor,不假设页码在同步期间稳定;
- 保存已提交 checkpoint,进程重启后可以继续;
- 对超时、429 和可重试 5xx 使用带 jitter 的退避,并尊重
Retry-After; - 限制并发和内存,不一次加载全部对象;
- schema 校验失败进入隔离区,不能让一个坏对象丢掉整页;
- upsert 幂等,并记录 source version、同步批次和 lineage;
- token 刷新、权限变化和删除事件有独立处理;
- 测试空页、重复页、cursor 失效、限流、半页失败和重启。
如果面试要求现场编码,应先实现正确的串行版本和清晰接口,再在有数据支持时增加受控并发。
