小程序是旅游业务的主战场,重构后我们仍遇到重复提交、登录态过期、大文件上传失败等痛点。我负责梳理关键链路并提升可用性,最终将成功率拉到 99.3%+。以下是核心思路。
1. 订单幂等与熔断
- 通过业务 ID + Redis 时间窗实现幂等校验,避免重复扣款。
- 使用 Sentinel 定义熔断策略,保障第三方支付波动时系统仍可降级处理。
2. 分片上传与续传
- 对动辄 200MB 的素材上传,引入 OSS 分片接口,客户端记录上传进度;服务器端校验 MD5,允许断点续传。
- 成果:大文件失败率从 12% 降到 1% 以内。
3. 登录态续期
- 在 Sa-Token 的基础上设计刷新 token 机制,前端在 token 即将过期时自动续期。
- 配合 Redis 存储用户 Session,避免频繁重新登录。
4. 监控与演练
- 建立链路追踪日志,实时观测下单、上传、支付、票据查询等环节。
- 每周进行压测与故障演练,验证重试策略。
通过这次复盘,我意识到“细节即体验”,也把这些实践迁移到学校的竞赛报名系统,效果同样显著。