📚 残梦三生

记录技术成长,分享学习心得

← 返回首页

幂等性-美好的幻想

分类:分布式系统 | 日期:2024-05-23

什么是幂等性?

在分布式系统中,幂等性是指:同一个操作,无论执行多少次,其结果都是一样的。就像数学中的幂等函数 f(x) = f(f(x))。

为什么需要幂等性?

在分布式系统中,网络是不可靠的。请求可能会超时、丢失,或者被重复发送。如果操作不是幂等的,就可能导致数据不一致的问题。

常见的幂等性实现方式

1. 幂等键(Idempotency Key)

为每个请求生成一个唯一的 ID,服务端记录已处理的 ID,重复的请求直接返回之前的结果。

2. 数据库唯一约束

利用数据库的唯一约束,防止重复数据的插入。如订单号、流水号等。

3. Token 机制

客户端先获取一个 Token,提交请求时携带 Token,服务端验证后失效该 Token。

4. 状态机

通过状态机控制流程,确保只有符合条件的操作才能执行。

注意事项

幂等性并不总是美好的。有时候我们需要的不是"重复执行结果一样",而是"重复执行不应该出问题"。理解这个区别很重要。

总结

幂等性是分布式系统设计中的重要概念,但要根据实际场景合理应用,不能盲目追求。