thinkphp 云服务器 低成本 解决 发红包 场景下的 高并发 和 访问量激增 问题
微信与各个企业的关系越来越密切,发红包成为企业营销重要且有效的手段
但是像我曾经服务的客户公众号最多的有几百万粉丝,少的也有四五万,这些人看到某个时段有红包放出,会拼命来领红包,很容易形成“高并发”和“大流量”,以下讨论也是在这个前提之下,并不是有上亿用户,程序的瓶颈是出现在CPU 内存方面,并不会出现硬盘读取的瓶颈和内网通信的瓶颈
和朋友在网上讨论过这些问题,以下给出我在实际工作中使用的方法,力求程序简单 可靠 省钱,都是在云服务器上完成
并发问题
方法一
- 提前算出各个红包钱数 并存入表里
- 每个红包增加一个额外的字段,比如 isuse 默认 0
- 当请求过来的时候,首先把isuse 的 0 update 为 1
- 判断上述update 影响行数,为1则该请求合理,为0则该请求是并发产生,在他之前已经有人抢过这个红包
原理:mysql在update时会自动加锁,不管是行锁还是表锁,总之是“串行”的,是没有并发的,那就只能有一个人是从0到1的变化,从而有效防止了并发带来的红包超额发放
参考:
http://blog.csdn.net/gnicky/article/details/51324821
http://www.cnblogs.com/metoy/p/5545580.html
流量激增
方法一
未完待续...
最后更新于 2017-08-17 04:45:06 并被添加「thinkphp 云服务器 低成本 解决 发红包 场景下的 高并发 和 访问量激增 问题」标签,已有 665 位童鞋阅读过。
此处评论已关闭