欢迎访问法甲下注_法甲竞猜_法甲联赛下注-官网有限公司官网 !

法甲下注_法甲竞猜_法甲联赛下注-官网

联系我们

全国咨询热线:0755-33506161

公司名称:深圳市法甲下注有限公司
电话:0755-33506161
传真:0755-33605535
手机:13922830701
地址:深圳市宝安区松岗镇广田路天恒石材市场8号厂房

[法甲联赛下注]高频面试题:讲讲高并发下的接口

文章来源:http://www.cityml.com 发表时间:2020-04-21 作者:[db:作者]

法甲联赛下注是24小时提供时政新闻,国内新闻,国际新闻,生活新闻,时事热点,新闻图片,军事,历史,生活,的专业时事报道门户网站。

作者:抽离的心

作者:抽离的心

实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如:

前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的; 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。

等等很多重要的情况,这些逻辑都需要幂等的特性来支持。

幂等性概念

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。

这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername和setTrue”函数就是一个幂等函数.

更复杂的操作幂等保证是利用唯一交易号(流水号)实现.

我的理解:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的

技术方案

1. 查询操作查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作

2. 删除操作删除操作也是幂等的,删除一次和多次删除都是把数据删除。(注意可能返回结果不一样,删除的数据不存在,返回0,删除的数据多条,返回结果多个)

3.唯一索引,防止新增脏数据比如:支付宝的资金账户,支付宝也有用户账户,每个用户只能有一个资金账户,怎么防止给用户创建资金账户多个,那么给资金账户表中的用户ID加唯一索引,所以一个用户新增成功一个资金账户记录

要点:唯一索引或唯一组合索引来防止新增数据存在脏数据 (当表存在唯一索引,并发时新增报错时,再查询一次就可以了,数据应该已经存在了,返回结果即可)

4. token机制,防止页面重复提交

业务要求:

页面的数据只能被点击提交一次

发生原因:由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交