1、状态机,通过状态机进行状态约束和状态流转。
2、分布式锁,如redis,对于失败重试,在锁过期时间之后才重试成功,还是会出现数据不一致,无法保证幂等。需要结合数据库的唯一建约束一起保证幂等。
3、数据库的唯一索引,对于分库分表的情况下,则不可用,需要使用分布式锁。
4、先执行select,后执行insert,可能出现并发安全问题。
1、状态机,通过状态机进行状态约束和状态流转。
2、分布式锁,如redis,对于失败重试,在锁过期时间之后才重试成功,还是会出现数据不一致,无法保证幂等。需要结合数据库的唯一建约束一起保证幂等。
3、数据库的唯一索引,对于分库分表的情况下,则不可用,需要使用分布式锁。
4、先执行select,后执行insert,可能出现并发安全问题。