五千年(敝帚自珍)

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

共:💬185 🌺732 🌵9 新:
全看树展主题 · 分页首页 上页
/ 13
下页 末页
家园 看来您缺少社会经验,没有领教过一些旅客的厉害。
家园 是的,这想法太幼稚,每考虑到实际情况的复杂性。
家园 兄台分析这么多,可否请你先回答一下我的问题?

12306 出了那么多问题,好几次在高峰时刻几乎不能用 —— 请问哪位同志出来负“政治责任”了?

更进一步,假设有哪位 NB 到不行、我们技术人员必须在他手里讨饭吃的同志出来负了“政治责任”,对实际解决问题又能有什么帮助?有人出来自裁政治生命这个网站就能用了吗?

家园 支持布老虎的技术方案

按我理解,布老虎同学的方案其实要点有这么几个:

1. 事先存钱减少外部依赖。

2. 查询车次、有无票的请求绝对不能直接压数据库,解决方案是把相关数据分离到一个定时刷新的副本。这里问题在于查票时看到的情况和最终数据库里的未必一致 —— 但考虑到所有人同时上来查票买票的情况,这本来就无法避免。

3. 所有实际买票的请求,先进队列,方便削峰填谷,避免数据库超载。

4. 所有车票数据,分散到若干各自独立的数据库里(术语叫 sharding),这样互不干涉的买票操作可以并行完成。

在我看来,布老虎的方案直击要点,一把抓住了单台数据库服务器负载能力有限这个瓶颈。由此判断,布老虎应该确实有处理高并发的经验。

事实上,这个总体方案一定,最后具体机器上数据库是选 MySQL 还是 Oracle,其实已经无关大局了。纠缠开源软件不可靠的说法,我感觉根本没有明白问题的核心在哪里。谈什么政治责任的,更是莫名其妙:买了 IBM/Oracle 还出问题,拍板人员就不用负责任了?如果铁道部上上下下真是这么想的,那我还真觉得有追究一下“政治责任”的必要了!

不过也要劝布老虎一句,说话语气太冲不是好事,技术人员也要讲究沟通方法的。否则被毛也不懂的外行忽悠去了话语权,最后也是双输的局面。

家园 买oracle的确不用负责任

这个都不知道,说明你的确是不懂

家园 实际上还有一个问题

订票网站上的票来源不是固定的,而是从售票车间的后台转出来的。也就是说订票网站和售票车间共用一个票库,而且车间的优先级比网站要高。这样的话如果在网站上做cache,很有可能这张票已经从车间卖出去了。

而且事前存钱,如果买不到票退钱的话,压力照样会集中在某一个具体的逻辑上,而且客户的相应处理可能也会头疼的。

家园 最省事的

取消即时处理,每个人每次就是提交一个request

1 身份证

2 账号

3 手动填写五个车次 第一志愿到第五志愿(时刻表?请订票的童鞋们自力更生。)

提交request的时候系统再加一个timestamp。

后台每次处理一批requests。按timestamp sort。首先根据志愿找车次。车次定了去账号提钱。中间只要有一个错误,就回个failure+error code,然后处理下一个request。

家园 我的确不懂“买 Oracle 就不用负责任”这种见鬼逻辑

老实说我没在铁道部工作过,也没有在其他纯粹国有大企业工作的经历。但是这种“买 Oracle 就不用负责任”、“买 IBM 出了事就不是你的问题”的论调,确实在很多场合听到过。于是我就弄不懂了,铁道部花钱培养起来的技术部门、高薪聘请的技术决策人员,到头来只要决定付钱给 IBM、Oracle、EMC 买他们的解决方案,接着不管出什么技术问题就都不用负责任了?

如果这是真的,那这日子还真是简单而滋润啊,中学生都能胜任了。另外我还想问一句:到时候如果还是出了问题,IOE 会双倍退还项目金额不?

家园 官僚体制下如果资金足够,或者说钱不是问题

那么会选择看起来风险最小的,或者是领导看起来风险最小的。举个实际的例子,如果你用mysql,服务和支持怎么办,有什么有名的大公司支持?就是这类实际的问题。官僚体制下思维方式就是这样的。实际上和是不是国企问题不太大。

换另外一种思路,就是这软件能免费嘛????我们预算很少,只能给工钱。

家园 你这些都是些很基础的问题,可以略过不讲滴

略过不讲估计你又要跳起来了,那搜索下产品说明书吧,不要再发明轮子啦。

你们的根本问题在于不懂铁道业务。不要追求最完美的,要追求最适合的。好好想想我说的对不对。

家园 业务上就可以避免
家园 花之,讲到问题核心了

不过我还是要支持下布老虎的,因为布老虎的方案肯定会带来铁道部购票网2.0版的升级。。

客户做的烂才有饭吃啦。

家园 不能用一个烂系统取代另一个烂系统吧

事实上,铁道售票的这个问题归根到底就是个流量的问题。如果不能做到分流,啥流程都得完蛋。

真的比较的话,可以把整个查询流程看作谷歌或百度的搜索特例。想一想谷歌和百度是怎么解决搜索的高流量问题就可以知道铁道售票问题相比之下根本就是小菜一碟。

家园 谷歌和百度的业务特点和铁道部不同自然不能套用

谷歌和百度都不保证结果实时性和正确性滴

所以嘛,什么排队啦,存钱啦,治标不治本的啦。这种通用思维我相信铁道部很早就用上了。。

家园 应该说在这个问题上讨论技术没什么大意思

其实讨论已经隐隐约约提到了,这个问题根本在于业务模式的问题。你1200台服务器就算能解决问题吧,考虑冗余了么,考虑运营成本了么,你只解决了高峰时候的瓶颈问题,但是春运以外的316天呢,不要说1200台,100台都太多了吧。一个软件的生命一般在5年,你的方案考虑到5年后的客流量了么。。

最后,你考虑过你的方案里客户付出多少,回报多少么??你想想客户本来就可以卖出去那么多票,你花了那么多钱只是能帮助他们更快的卖出去,本来卖1天的,花了那么多钱,只需要5分钟就可以卖完了。。。客户要疯了呵呵。从这个角度来说,就是不可能成功忽悠到客户钱滴。。

所以这个问题里技术只是很小一部分,很不起眼一部分。先想想你客户的IOE在哪里。。

全看树展主题 · 分页首页 上页
/ 13
下页 末页


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

Copyright © cchere 西西河