1、什么是幂等性
2、 为什么需要幂等呢?
3、哪些场景需要保证幂等
4、幂等有什么缺点呢
5、如何保证幂等?
6、重复提交表单如何解决?
1、什么是幂等性
数学概念:
软件概念:服务执行一次和任意次的结果是一样的
通俗而言:多次请求。结果保持一致
2、 为什么需要幂等呢?
比如:付款功能。成功一次。 一次成功一次失败。
3、哪些场景需要保证幂等
适用范围:新增、修改、少部分删除.
场景举例:消息消费、接口重试等
select * from xXX where version id =1232131
update table set col1 = xx where col2 = abc
4、幂等有什么缺点呢
增加代码复杂度,并行改成了串行,降低执行效率。解决一致性问题
5、如何保证幂等?
全局ID。雪花算法。业务id
6.重复提交表单如何解决?
1乐观锁解决。版本号机制
2、防重表
3、分布式锁(redis 分布式锁,zookeeper的分 布式锁监听器,watcher)
4、token 令牌