Home > Chinese - 中文 > 在线拍卖系统

在线拍卖系统

September 30th, 2009 Bali Leave a comment Go to comments

早上,习惯性地打开新浪,小心地在广告链接中穿行,点新闻看。一则关于淘宝一元秒杀的新闻,很有意思。故事大概是:9/25日晚8时,淘宝将价值数千元的商品,以一元标价在淘宝上拍卖,庆祝成立6周年。结果搞砸了。很多用户还未看到开始页面就结束了,还有人用作弊器同时拍到了多个商品。

此事从商务角度来说,淘宝是毫无疑问的赢家。此次拍卖的目的并非真的拍卖,而是赚人气,赚眼球。尚不清楚,淘宝是否真的故意造成争议话题,让大家去议论,正如电影拍摄中常常传出男女主角的桃色新闻一样。从技术角度来说,如果要较完善设计此系统的话,至少有几点值得商榷。

(1)Use server push instead of client pull. 有淘宝用户留言,

我从19:50开始,不断刷新页面,都是显示“即将开始”,再刷新,活动已经结束!MLGB…

在线拍卖讲究的就是时效性,大家都想以最低的价格得到某样商品,所以非常想知道最新的价格,这时候就疯狂刷页面,造成服务器压力很大。另外一种做法是Server Push, “你们都不要刷了,有消息会告诉你们的,回家等着吧。” 这种东东就叫做Server Push。也不是什么新的概念,用Java applet等插件N年前都能实现,但让每个人都装这么个插件显然代价太大。现在的SilverLight, Flex也能实现类似功能,但需要安装插件。Dojo的Comet很好地解决了这个问题。code在这里。不用装插件,可以穿越防火墙,而且scalability很好,也可以做cluster。淘宝的兄弟们真应该考虑一下这个东西。对Java天然支持。很可能将是Servlet 3.0的一部分,HTML5中也有类似的概念了。Server Push的应用范围主要在Server需要主动传递信息给client的情况,如在线拍卖,聊天,股票报价等。下面是一个介绍的slide,有兴趣的朋友,仔细看看。5分钟就可以用maven弄一个玩玩。

(2)用一点anti-spamming技术吧,在这里就是验证码(CAPTCHA)。只有人能拍,程序不能拍。

(3)防一下DoS攻击,把疯狂刷页面的同学的IP暂时放入黑名单,或者弹出一个验证码页面。

  1. happydodo
    September 30th, 2009 at 14:14 | #1

    我也能看懂了,呵呵。

  1. No trackbacks yet.