# 分布式系统中的幂等性设计


幂等性是分布式系统的老问题，却是高并发场景下最容易踩坑的地方。核心诉求只有一个：**同一个操作执行多次，结果和只执行一次一致**。

## 常见落地手段

1. **数据库唯一约束**：最可靠，通过唯一索引天然去重，适合「创建」类操作。
2. **状态机**：把业务状态流转设计成幂等的，重复请求自然被挡在状态判断之外。
3. **Token / 去重表**：请求先拿 Token，消费一次即失效，适合「提交」类操作。
4. **分布式锁**：保证同一时刻只有一个请求在处理，但要处理好锁的粒度与超时。

## 取舍

没有银弹。唯一约束最稳但局限性强，锁最灵活但引入复杂度。实际项目里往往是组合使用，按业务语义选择最合适的那一层。

---

> 作者: [ZeroCoding](https://zerocoding.online/)  
> URL: https://zerocoding.online/posts/idempotency-design/  

