20万的用户,在开抢的那一刻20万的请求都直接进入到DB,肯定是不合理的,如何在web层面,或者只要在进入应用层之前的层面限制住流量,只让100个流量进入?
问题:这个限制住流量,让100个流量进入到PHP层面的具体的设计原理是怎么样的?
web层的流量是不可避免的,现在需要的是快速返回。
加锁,拿不到锁就认为没抢到。
阻塞队列,满了之后直接丢弃。
还可以在nginx上面做控制。
一词以毙之:random
开抢那一刻设置个开抢资格概率,这样可以过滤一部分用户,然后抽到开抢资格的用户,直接去memcache或者redis中操作,20w小意思,2000w都可以!