-
说一下对@SpringBootApplication这个注解的了解。
-
高并发下如何保证接口的幂等性(表单重复提交)。
2.1 先select再(insert或update)
根据唯一字段数据判断是否已存在表单数据,存在用update,反之则用insert(这种方案不适合高并发场景)。
2.2 悲观锁
使用以下锁单行数据
select * from user id=123 for update
2.3 乐观锁
表中添加一个version字段,用于记录数据的版本信息,更新数据时使用加一操作
update user set amount=amount+100,version=version+1 where id=123 and version=1
2.4 加唯一索引
加了唯一索引之后,重复插入数据会报异常,捕获异常直接返回成功即可
2.5 加分布式锁
redis setnx
- 分布式事务一致性。
参考文献:
https://segmentfault.com/a/1190000039737646