主题:【原创】好吧,给一个铁道部订票系统的正确答案 -- 布老虎
按我理解,布老虎同学的方案其实要点有这么几个:
1. 事先存钱减少外部依赖。
2. 查询车次、有无票的请求绝对不能直接压数据库,解决方案是把相关数据分离到一个定时刷新的副本。这里问题在于查票时看到的情况和最终数据库里的未必一致 —— 但考虑到所有人同时上来查票买票的情况,这本来就无法避免。
3. 所有实际买票的请求,先进队列,方便削峰填谷,避免数据库超载。
4. 所有车票数据,分散到若干各自独立的数据库里(术语叫 sharding),这样互不干涉的买票操作可以并行完成。
在我看来,布老虎的方案直击要点,一把抓住了单台数据库服务器负载能力有限这个瓶颈。由此判断,布老虎应该确实有处理高并发的经验。
事实上,这个总体方案一定,最后具体机器上数据库是选 MySQL 还是 Oracle,其实已经无关大局了。纠缠开源软件不可靠的说法,我感觉根本没有明白问题的核心在哪里。谈什么政治责任的,更是莫名其妙:买了 IBM/Oracle 还出问题,拍板人员就不用负责任了?如果铁道部上上下下真是这么想的,那我还真觉得有追究一下“政治责任”的必要了!
不过也要劝布老虎一句,说话语气太冲不是好事,技术人员也要讲究沟通方法的。否则被毛也不懂的外行忽悠去了话语权,最后也是双输的局面。
- 相关回复 上下关系8
🙂最省事的 1 fe5 字330 2013-11-07 11:14:52
🙂实际上还有一个问题 fhqiolj 字298 2013-11-05 04:15:18
🙂业务上就可以避免 百年 字0 2014-01-04 23:30:49
🙂支持布老虎的技术方案
🙂好久没来,嗯,那些苍蝇都不见了 布老虎 字237 2014-01-26 14:55:57
🙂买oracle的确不用负责任 2 四处张望 字30 2013-11-05 02:49:11
🙂我的确不懂“买 Oracle 就不用负责任”这种见鬼逻辑 1 志大才疏 字459 2013-11-08 00:08:23
🙂官僚体制下如果资金足够,或者说钱不是问题 1 四处张望 字278 2013-11-09 01:02:37