멱등성 — 두 번 눌러도 한 번만 결제되게 · 재시도와 중복 · 测验
멱등성 확인
6道题. 完成作答后会显示正确答案和解析。
客户端没有收到响应时,可以确定什么?
- 请求没有到达服务器
- 无法判断——请求可能已经到达,只是响应没有返回
- 服务器在处理过程中崩溃了
- 发送途中网络中断了
幂等键应保存在哪里?
- 所有实例都能共同访问的位置——DB 或 Redis
- 服务器进程的内存字典
- 服务器本地磁盘上的文件
- 客户端存储
同一个键对应不同请求正文时应该怎么做?
- 以 422 拒绝
- 直接处理
- 覆盖原记录
- 忽略差异
同一个键同时收到 10 个请求时,为什么朴素实现会失效?
- 因为处理缓慢导致请求积压
- 因为十个请求会同时读到“不存在”
- 因为内存不足
- 因为会先发生超时
哪种响应不应该重试?
- 500——服务器内部错误
- 503——暂时过载
- 400——永远都会是 400
- 超时——没有响应
为什么要在重试中加入 jitter?
- 让重试严格按相同间隔到达
- 提高重试速度
- 隐藏重试模式
- 避免多个客户端同时重试,再次压垮服务器