thinkphp 云服务器 低成本 解决 发红包 场景下的 高并发 和 访问量激增 问题

微信与各个企业的关系越来越密切,发红包成为企业营销重要且有效的手段

但是像我曾经服务的客户公众号最多的有几百万粉丝,少的也有四五万,这些人看到某个时段有红包放出,会拼命来领红包,很容易形成“高并发”和“大流量”,以下讨论也是在这个前提之下,并不是有上亿用户,程序的瓶颈是出现在CPU 内存方面,并不会出现硬盘读取的瓶颈和内网通信的瓶颈

和朋友在网上讨论过这些问题,以下给出我在实际工作中使用的方法,力求程序简单 可靠 省钱,都是在云服务器上完成

并发问题

方法一

  1. 提前算出各个红包钱数 并存入表里
  2. 每个红包增加一个额外的字段,比如 isuse 默认 0
  3. 当请求过来的时候,首先把isuse 的 0 update 为 1
  4. 判断上述update 影响行数,为1则该请求合理,为0则该请求是并发产生,在他之前已经有人抢过这个红包

原理:mysql在update时会自动加锁,不管是行锁还是表锁,总之是“串行”的,是没有并发的,那就只能有一个人是从0到1的变化,从而有效防止了并发带来的红包超额发放

参考:
http://blog.csdn.net/gnicky/article/details/51324821
http://www.cnblogs.com/metoy/p/5545580.html

流量激增

方法一

未完待续...

相关文章

此处评论已关闭