小程序发红包 公众号发红包开发中遇到的问题 大并发 频繁提现 刷接口

在开发小程序红包 和公众号发红包

首先是商家端  可以发红包 用户来抢红包

抢到的红包 我们先存在他的帐号下  然后这个用户再申请提现

好了,现在开始来问题了。那就是大并发的用户提现问题了。

部分用户频繁提现,不停的刷接口。

举例来说吧,假使小黑他自己发3元钱红包,然后他自己抢,抢到以后,我们把他的钱存在一个字段里,等待他来提现。

现在问题就在这里了,他使用一些抓包软件,在同一秒钟发送数十次请求提现。这个时候我们程序是怎么执行的呢?

1.获取小黑的提现申请,比如3元,在数据库里查这个小黑账户里是否有3元钱,发现有,就让他提现。如果不足3元就不允许他提现。

一切看起来好像天衣无缝。结果没想到小黑不停的刷红包接口。账户里的钱,白白的就消失了。。。看着让人心疼啊。

这一切是什么原因呢?

原来问题就是出在小黑在一秒钟之内,发起的数十次请求,我们知道一秒钟是1000毫秒。

假使小黑发起10次请求

也就是第一请求在       第1毫秒

第二次发起的请求在第101毫秒

第三次发起请求在第201毫秒

第四次发起的请求在第301毫秒

第五次发起的请求在第401毫秒

以此类推。。。。。。

那我们的数据库和服务器有关系,也许返回的结果没那么快。

假设我们从接到小黑的第一次请求到查询小黑的账户余额还有多少钱,然后程序来判断能不能让他提现走这3元。假设这中间需要320毫秒。

那么也就是说第一次,第二次,第三次,第四次这四次的请求,程序都判断他账户里还有3元钱,都让他提现走了。。。。

这下小黑一下就拿走了4*3=12元。

所以问题就在这里了。

那么我们就要对每次的请求做好相应的记录,标记每次请求的唯一性,不让这样的情况发生。

 

  我,秋峰,phper,目前自创业,做项目系统开发,php后端加小程序前端结合  今天就给大家分享到这里,希望对大家有所帮助。欢迎交流  大家相互学习 共同提高 我的 微信号:qiufeng2999

转载于:https://www.cnblogs.com/xinweiyun/p/7674922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值