早上看新闻看到 "铁道部网络购票系统一期工程总价超 3 亿仍买票难" http://news.sina.com.cn/c/2012-09-23/014025232225.shtml
然后随便查查它的流量: http://alexa.chinaz.com/?domain=http%3A%2F%2Fwww.12306.cn
我觉得一天大概估计一天有个 1-2 千万的 PV3-5 百万的 UV。
你们觉得你们多少台服务器,多少的人员开发成本就可以搞定?以及维护成本。
我倒是觉得这种大型项目很适合用 erlang 做,erlang 的分布式,轻量级线程,鲁棒性,容错性都适合做这种海量同时访问的,erlang 最近好像出了一本关于 web 开发的书,Building Web Applications with Erlang,网上可以下到电子版,准备有时间看看。 不过瓶颈可能在数据库吧,想起来之前看的 wooga 的 slide,我觉得 erlang+zeromq+ruby+redis+mysql 确实挺强大的 erlang 负责处理海量的访问,zeromq 负责处理 erlang 与 ruby 的消息中转,ruby 方便测试,代码友好,绝对是最适合写逻辑代码的语言,redis 这种 Nosql 数据库查询速度快,Mysql 在最后做数据仓库负责 redis 数据的序列化。再高的处理量也只需要简单的 shard 数据库然后增加 ruby 的 worker 线程了 slide 在此: http://www.slideshare.net/wooga/at-scale-with-style
很不理解为什么需要排队,可以按先付款先得票的原则 下订单只是说要买车票,具体的几车几号等付完款以后再决定 也就是说订单里面只有日期,车次,几等座,乘客等信息,车票相当于库存,订单付完款以后再进行配票 (给订单分配车票),配票完成才减少车票总数,如果配票失败就直接退款,这样可以避免买票的人一直等待,没有票也可以赶紧买别的票 一旦出现因库存不足导致的退款,同日期,车次,座等的票就不能再下订单了,尾票和退票放到窗口去卖
据说高峰时期可以有几千万的 PV。nginx 做到 1 万并发的化,大概需要几千台服务器。一台服务器采购价格大概 2 万,光 web 服务器采购就需要 6000 万吧。1 亿后还有 4000 万怎么花?
#13 楼 @neocanable 是有上升的空间,但是一般都会留有 40%的余量,这里还要考虑维护这些服务器的费用,空调,电力,监控,安保,场地,我们还没有计算后台的数据库中间件的费用。楼主能计算一下搞定要多少钱。中国没有亚马逊的云计算,这种突发计算的请求如果完全靠自己承担,系统使用费用绝对会高的受不了。所以,我觉得铁路如果在春运期间不向京东,淘宝租用计算资源的话,很难承受这么大笔费用。
#12 楼 @jimrokliu 你弄错了,几千万 PV 不是指一秒中有几千万个请求,而且这里面最重要的绝对不是 web 前端机,瓶颈在有业务逻辑的应用服务器,更进一步,我们可以合理猜测瓶颈是遗留系统的能力,关键指标应该是 TPS
@hlxwell 楼主,我觉得一天 1-2 千万的 PV 估算有问题吧,一天几千万 UV 还差不多,PV 肯定上亿;我们公司自己的小业务每天都 2 亿多的访问量,600 万的 UV,全国这么多上网用户,过节不管是回家还是出去玩,流动的肯定上亿人次。
有道理。我觉得上亿肯定有。而且他们估算是全国 6 亿的人口在同一时间使用。所以还需要有很大的冗余。 他们估计这样算的. 1w 的机器 (大批量购置需要便宜点吧) 12000 台 1 万人 2 台应该够了吧,包括 balancing。这样 10000 x 12000 = 120,000,000,balancer 防火墙 估计要几千万了吧,带宽什么的,管理人员每年的工资。开发系统,系统的维护成本。算算也有很多。
有重度国内“中底”用户的网站是不能用 Alexa 做流量估计的。这点上 Alexa 严重不靠谱。
新浪微博上喷 12360 都不是很专业,找的一堆问题都是外围模块的,跟订票没啥关系。
这种高并发的业务,比支付宝不相上下。短短 1 天,要接受上千万的订票需求。天极在这上面没多少积累。话又说回来,国内公司有几个有这种积累的?
另外 3 亿这个数字,如果是真的话,那铁道部真是”太廉洁“了,资金利用率最起码再 80% 以上,只拿 20% 的回扣?打死我不信。
#26 楼 @fleuria 你说的乌云那个?还是http://ww1.sinaimg.cn/large/7cc829d3gw1dxb5e12xacj.jpg 这个。乌云号称拿到漏洞但不敢下手。后者是铁道部网站货运服务的,跟订票的关系不大吧。
不过以网站的粗糙程度,不排除订票服务里也会手写 SQL。