论坛首页 Java企业应用论坛

淘宝的秒杀我感觉并不复杂,用二次事务模式可以很容易的实现

浏览 19350 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (11)
作者 正文
   发表时间:2010-11-15  
在有事务处理的DB下,这个基本上没啥讨论的
还弄出来个页面AJAX2次判断,,,,
主要考虑压力问题就够了
这要靠从DB SERVER和memcached这些解决了
其他没啥问题
0 请登录后投票
   发表时间:2010-11-15  
假设有10万个请求抢购20个物品,理论上只有20个有效请求。如果把其他请求也都丢到数据库或者KV系统去处理,就是很失败的架构设计。
0 请登录后投票
   发表时间:2010-11-16  
引用
define:  allowNextStep = 1000 in cache server, it is an atom k/v;

int allowNextStep = 0;
static volitale bool  allowAccessCache  = true;
if(allowAccessCache) {
allowNextStep = allowNextStep.getAndDecrement() ;

if(allowNextStep < 0){
   allowAccessCache=false;
}
}else{
      ///reject all other user.
      //support: 1000 users can enter payment step and done check.
}


0 请登录后投票
   发表时间:2010-11-16  
dabian_guo 写道
假设有10万个请求抢购20个物品,理论上只有20个有效请求。如果把其他请求也都丢到数据库或者KV系统去处理,就是很失败的架构设计。


对,直接在应用那边就筛掉了
0 请登录后投票
   发表时间:2010-11-16  
能秒杀到的都东西都是垃圾东西啊  好东西是秒不到的啊 啊啊 
ipad iphone4啊啊啊啊
0 请登录后投票
   发表时间:2010-11-16  
操, 还不复杂阿, 看你这标题我就感觉很复杂了
0 请登录后投票
   发表时间:2010-11-16  
lz的意思是 先用信号量来过滤掉大部分的请求。减少对数据库的压力。不过当集群中机子多到一定数量时,这个给数据库带来的压力也还是不小。
另外同时多商品秒杀时,其信号量的管理是个问题。
秒杀前用户持续刷新商品页也是一个要考虑的问题
0 请登录后投票
   发表时间:2010-11-16  
还秒上隐了,大家,呵呵~

其实没有这么复杂的~
0 请登录后投票
   发表时间:2010-11-26  
tedeyang 写道
做互联网的还有不用k/v的吗?
用了k/v还有不知道原子操作的吗?
知道了原子++--还有什么悬念吗?

0 请登录后投票
   发表时间:2010-12-13  
使用缓存的,不考虑事务的
万一秒杀过程中某一台缓存服务器当机了怎么办?
部份数据丢失怎么考虑?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics