一、需要避免的问题
1.用户多次点击提交 2.用户退回页再次提交 3.微服务调用,由于网络问腿,导致请求失败,feign触发重试机制 …
二、一些自带幂等的操作
1.同样的select,delete语句, 2.固定的update语句 ,把1改成0等等 3.insert语句以ID为主键插入。
三、如何保证幂等
1.令牌机制
获得令牌,对比令牌,删除令牌应该是个原子性操作
2.锁
1.悲观锁 select * from tab where id =1 for update 2,乐观锁 带版本号的更新
3.唯一约束
1.数据库唯一约束 主键,唯一索引等 2.redis set防虫 例如MD5值唯一等