双十一公司抽奖,并发导致红包超发

水平凡 发布于 2014/11/12 08:57
阅读 3K+
收藏 2

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

双十一公司抽奖,并发导致红包超发,请我有啥方式能尽量避免红包的超发还有并发写库带来的问题?
加载中
0
xialeistudio
xialeistudio
数据表加锁就可以了。我之前做过类似的项目。不加锁的话,红包数量都到负数了
0
0
中山野鬼
中山野鬼
哈。同步周期拉大,提高并发。。。。并发和同步是天然相互存在的概念。。。
0
marshalys
marshalys
搞个队列来处理
0
toozyxia
toozyxia
http://www.oschina.net/question/1995445_183781
0
蟋蟀哥哥
蟋蟀哥哥
呵呵,肯定是并发造成的。。用锁吧
0
osc_138331
osc_138331
不用问了,肯定是阿里呀,这晒幸福呢
0
方棱
方棱
还有另一种可能:因领导关系太复杂,导致程序计算单次抽奖结果太耗时。
0
诺维斯基2021
诺维斯基2021
1.秒杀活动,一般做得简单点,大家访问的都是同样的界面,页面全部进行缓存,秒杀按钮一般等到时间到了,才点亮,才生成URL,防止提前通过URL 访问。 

2.秒杀一般请求数特别多,在秒杀开始之前,URL 不开放,页面有缓存,无论用户怎么刷新,也不会给服务器造成压力。 

3.秒杀一旦开始,会有很多请求出现,但是一般我们只允许比如前100个有效请求,这个100个请求进行订单处理,其他请求都进入缓存好的,秒杀结束页面。 

4.实际上我们仅仅对有效请求进行处理,这里的处理办法可以对请求加入队列,当数目达到100,就不在添加,然后可以依次从队列里面提取信息,处理我们需要的结果,不会出现超标的情况。 

5.对于数据库的设计,一般情况下,如果量比较少,可以用专门的服务器来处理有效订单,其实请求就不会太多,压力不会太大了。 

6.在你分布式集群里面,假设你有N台服务器,那么你可以规定每台服务器仅仅处理100/N g个订单,同时你也可以做一个全局计数器,利用分布式缓存框架。 

7.因此你说的数据库压力,以及分布式数据同步的问题,可以得到很好的解决。关于分布式集群之间的通讯这些,可以靠消息中间件,或者延缓等等各种手段处理。 

8.上面仅仅是个人想法, 提供一些参考,有问题请指出~。~
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部