西西河

主题:【原创】好吧,给一个铁道部订票系统的正确答案 -- 布老虎

共:💬185 🌺732 🌵9 新:
全看分页树展 · 主题 跟帖
家园 这些都不是大问题

1. 任何一个queue系统都可以处理。注意,这里的数据量很小,几乎所有的订票请求(不是查询请求)都来自每天发布的新车次,那么也就3000车次x1000张票,也就是在最坏情况下,瞬间3百万张票的请求,平均每个server1万个请求,这TMD算啥?排队而已,这又不是实时系统。唯一要注意的是扣钱和占座的次序。我觉得铁道部作为温总理手下的一个衙门,道德的血液应该不少,那么先订票再扣钱,如何?订票的这个queue可能需要persistent。2亿的预算,扣掉30%的所得税,应该有人愿意干。

再说一遍,这个系统的关键是所有的查询请求全部被挡在前端web服务器,进入后端的服务器的请求非常少。因为前端服务器的数量可以几乎无限制地horizontally scale out,所以这个系统可以应付全国人民的要求。

2. Hashmap直接在前端web server上。比如"2月1日起点广州终点上海”索引值为一个html的<div>string“<div>卧铺10张,硬座20张</div>”,直接插入到httpservletresponse里面。我具体不知道铁路内部票控的规矩,大概的排列组合有多少,给你一个判据,几十万左右的用一个hashmap, 几百上千万的组合的话--应该不可能--hash两次,用多个hashmap(自己找consistent hashing去学习一下)。memory实在装不下就放进cache cluster里面,有点延迟无所谓,反正这玩意实时性也不高,差个一两秒的延迟没关系。

P.S.

草,还得修改一次,关于预算...这两个亿里面,不止扣税,还得打足回扣的费用。2亿不一定够啊,丑话说在前头。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河