php-并发编程那点事(二)

    前面一篇文章说道利用mysql执行update操作返回受影响的行数来判断是否走接下来的业务逻辑,这样做是对于pv流量不是那么大的应用能够很好的保护你的程序不受黑客入侵(说的有点离谱),但是带来的坏处就是一旦你的qps达到一定的量(受你的架构影响),那你的mysql就会离你远去(宕机)。

    那我们如何在站点流量增大的情况下防止这种并发操作,造成自己的业务出现重大bug,例如没用防止的情况,出现100块钱的提现操作到账超过100、短时间大量并发做验证码暴力破解等等。

    假设我们的架构就是 linux + nginx + php + mysql, 而出于成本没办法对单机服务器硬件进行升级,或者做分布式架构,那该如何解决呢。宕机就重启也是一个解决方法啦,不过这种解决方案是一种极端,要么能访问,要么你访问的页面飞走了,我们都知道高速在过收费站的时候会有几个通道,每个通道车辆会一辆接一辆的过去,当高速路上堵车的时候,会采取限流操作,挡住一部分车辆不让它过去,等前面通畅的时候,再一辆接一辆的过去,这样能保证你要么等待,要么离开,所以保证了部分车辆能够正常在高速路上行驶,所以对于我们这种情况下也可以使用限流操作,至少能让部分用户进行访问,其它用户等待某个用户释放连接的时候等待的用户继续访问。

     技术参考文章https://www.cnblogs.com/mr-amazing/p/4935672.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值