集思广益:为铁道部设计网上订票系统
1/10
集思广益:为铁道部设计网上订票系统2/10
2012年春节临近,买火车票再次成为“老大难”问题。与往年不同的是,铁道部首次推出网上订票系统,并且面向所有车次。3/10
有了网上订票系统,你可以不必在这寒冷的季节里,伫立在冷风中,却一无所获。尽管铁道部有这样一条规定:“购票排队等候不超过20人”。4/10
取而代之的是在电脑前,不停地输入用户名、密码。如果你有幸登录上了,并有幸付了款,等待你的也许是一张火车票,也许是……没有票!5/10
作为IT界的精英们,为了以后的以后我们能轻松买上火车票,让我们集思广益,一同拯救铁道部的网上订票系统吧!你可以在ITPUB论坛上参与我们的讨论。
帖子地址:http://www.itpub.net/thread-1563232-1-1.html6/10
抛砖引玉,先说说我的想法:中国人多,毋庸置疑,春运是每年一度的人口迁徙。同样,淘宝人也不少,尤其是逢年过节打折的时候,跟网上订票系统的负载压力最为接近。因此,淘宝的架构值得参考。7/10
引用淘宝开放平台架构师岑文初的微博:他认为买票系统的设计可以分成两步走:1.买票并发通过简单的计数器模式搞定,然后快速的给有资格的人颁发code。2.获得code的人拿着这个有时效性的code就直接去走另外一个通道买票。那么压力主要在前端,只要返回足够快就好了,而后端的处理慢慢来。这个系统其实淘宝贡献两个组件就够了TEnginx和Tair。8/10
ITPUB论坛的网友也发表了自己的看法:starhot认为可以开发一个小的客户端,将类似站点信息,如起点,终点信息以及客户个人信息保存在客户端,从而减轻网络流量,也减轻数据库服务器的压力;客户端进行的票务查询和订票操作才需要对后台数据库进行访问。付款要与第三方做很好的对接。9/10
引用网友所谓码农表示,网上订票系统可以从几个方面下手:
1.使用异步排队的方式,当购票请求提交后提示用户“您正在排队,您前面有XXXX位。。”,当排队成功后,一天之内付款,购票成功!这样就可以避免购票者不断提交造成的压力。
2.提高系统并发,使用nginx作为HTTP服务器,据说nginx的并发高达3万,这个我没有具体测试,当然这个也取决于业务逻辑的复杂度。
3.缓存所有车票信息,提高查询的响应时。10/10
你的想法呢?快来ITPUB进行讨论吧!帖子地址:http://www.itpub.net/thread-1563232-1-1.html
突然想起了那句“有钱没钱回家过年”。祝大家都能买到票,回家过个团圆年!