A10中级

幂等性思维训练

30 分钟设计新功能时

格式:给定操作,判断它是否幂等,如果不是,如何让它变成幂等。

什么是幂等:同一个操作执行一次和执行十次,结果应该一样。

练习:判断以下操作是否幂等:

操作 幂等? 为什么?
设置用户名为"小明" ✅ 是 设置10次还是"小明"
给账户余额加100元 ❌ 否 加10次就变成1000元了
发送欢迎邮件 ? 你来判断
删除 ID 为 123 的帖子 ? 你来判断
创建一个新订单 ? 你来判断
更新用户年龄为25 ? 你来判断
给帖子点赞 ? 你来判断

为什么重要:网络不稳定时,请求可能发送了两次。如果"下单"不是幂等的,用户可能被扣两次钱。

解决方案概念

  • 幂等键(Idempotency Key):每个请求带一个唯一 ID,服务端检查是否处理过
  • "设置"比"增加"天然幂等:balance = 200 vs balance += 100

我的笔记