免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

如何设计高并发高流量的12306在线票务系统 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2012-01-18 00:02 |只看该作者
村口老柳树 发表于 2012-01-17 22:50
觉得后台的数据库没有把各个车次分开,或者说订单没有分开,导致太多的系统资源争用,所以在点击订票的时候 ...


嗯,这个也不错。还有一点,很多购票者都是临时注册,临时购票,而且会多次注册,利用多个ID来抢票。这一方面也会增加系统的负载。
用户注册和用户购票可以进行应用分割,后端数据同步。这就是我前面提到的用户信息(数据库)和票务信息(数据库)分离。

论坛徽章:
0
62 [报告]
发表于 2012-01-18 09:18 |只看该作者
yanyangtian4502 发表于 2012-01-17 16:06
说实在的,我之前没有使用过12306,最近也是看到很多朋友放映12306不给力,我就看了下!
首先不说别的,页 ...


这个是问题,但不是目前的瓶颈,因为它也是有做cdn的,目前的瓶颈不在这块,打开1230**的首页还是很快的,只是打开动态页面时才慢,明显是服务器问题。

当然他们做cdn也有问题,动态内容也走cdn了,并不是一个很好的方式,个人认为动态内容也走cdn会导致更慢,虽然cdn厂商不这样认为。

论坛徽章:
0
63 [报告]
发表于 2012-01-18 09:19 |只看该作者
gotolinux 发表于 2012-01-17 19:04
我认为这篇讨论大部分地方可以参考:http://bbs.chinaunix.net/thread-3626937-7-1.html

主要值得提出来 ...

顶一记,分省部属分流确实不错!

论坛徽章:
0
64 [报告]
发表于 2012-01-18 09:26 |只看该作者
hellioncu 发表于 2012-01-17 16:07
瓶颈应该在前端过多的、无效的查询上面。

Web服务器按区域部署



越买不到票, 越是刷无效的请求。

应该说, 这个不是问题本质,但是问题的最表面。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
65 [报告]
发表于 2012-01-18 09:31 |只看该作者
本帖最后由 renxiao2003 于 2012-01-20 22:45 编辑

临近春节了,在各大网站上火爆的不是春节怎么过,而是春节怎么“回”,一张小小的火车票,成为了中国人最伤不起的焦点话题。“小伙连续3天守电脑前抢火车票,称‘想砸电脑’”、“订票网刷500次才能买一张票”。据说铁道部官方订票网站www.1230**每天点击量超过14亿次。身为苦逼的IT民工,我也是当前抢票一族。在经历了整整一天的刷票无果之后,我那叫一个——感慨万千。
首先掰掰现在流行的各大自动购票软件,说白了就是原来需要人手动干的事儿,现在用程序来完成,不停帮你重复。没什么太深奥的地方,虽说人再快也赶不上机器,但是大家都开始用了也就起不到什么作用了。基本原理就是用程序抓取.cn页面,将用户名密码填写后,程序自动登陆,如果登陆不上,自动重试,直到登陆成功。查询和订票过程也是一样,12306上现在用算术来验证,也都可以破解的。这个东西电商上现在卖家很多,价格也不高,实在走投无路的兄弟可以一试。但是要小心他盗取你的帐户密码。
在用机器刷票的无聊期,我上微博去逛了一圈。也看看大家对春运都吐了什么槽。偶然发现一篇微博,觉得有点意思,拿出来分享下:
  

这个倒是启发了我,如果架构允许的话,火车购票网还真的可以并且非常适合用云计算搭建。这个网站去年6月就开始使用了,但是为啥一直没发现问题?原因很简单,以前没有全国人民一起抢票的阵势!正是一时间集中的浏览量和交易量,导致服务器负载过大,不能承受业务峰值,而搭建网站的传统服务器无法完成快速扩展,难以满足目前的业务需求。


火车票其实也算典型的季节性热销品,五一、十一、春运的时候一票难求,而平日一些动车部分车厢也会空空荡荡。以前大家都扛着铺盖排通宵,所有车站都可以买票。今年鼓励网络售票,只有一个网站入口,上亿群众一起往里冲,服务器没瘫痪就是不幸中的万幸。传统服务器模式的一大弊端就是扩展非常缓慢,如果要满足春运这一个月的需求,必须事先准备大量的服务器,这不仅需要巨大的硬件成本支出,而且这些服务器在平时根本派不上用场,处于闲置状态,高峰来了临时准备来不及,处理的时候基本就是废铁一堆,一文不值。而云计算具有快速弹性扩展的特点,当业务高峰来临的时候,可以在很短的时间内部署完成云主机,而当高峰过后,立即删除。据我所知,国内有些云计算,如盛大云,已经精确到小时计费了,真正按需使用,可以节省不小的成本。虽说铁道部不差钱,但是节省下来的费用,希望也能多修几条铁路,开通一些临客,尽早让“春运”这一具有中国特色的名词成为历史。


快到春节了,分外想家,和父母一起亲亲热热地吃顿年夜饭,看看春晚,放放鞭炮,这一年的辛苦就仿佛得到了慰藉。我想所有有兴趣看这个帖子的人都有同样的感受。去年一年,国内的云计算取得了非常快速的发展,盛大云、阿里云等等都在化云为雨,多了不少成功的云计算实践案例。此刻,写下这个帖子,只是希望有一天,能够依靠技术的力量,让每个离家在外的中国人都能坐上回家的列车。

论坛徽章:
0
66 [报告]
发表于 2012-01-18 09:32 |只看该作者
阿辉 发表于 2012-01-18 09:18
这个是问题,但不是目前的瓶颈,因为它也是有做cdn的,目前的瓶颈不在这块,打开1230**的首页还是很快的 ...


我也赞同,其实CDN,负载均衡本身,他们肯定有做,只是达不到理想的效果。
其实问题本身可能是应用的问题,如何提高应用的内部响应,对应用进行合理分割,减少应用内部负载才是解决问题的关键。

论坛徽章:
0
67 [报告]
发表于 2012-01-18 09:33 |只看该作者
老男孩linux培训 发表于 2012-01-17 16:19
这个思路非常的新颖,赞!
其实这个问题出问题的时候,我和几个朋友探讨过。
不过还真没登陆过!


同意。

首先必需说目前的www.1230**做得太烂,他们完全可以做得更好再拿出来,不要让人觉得像个小学生或新手写的网站。

其次就是高并发的问题并不像大家说的那么简单。有下面几个原因:

1.凡是涉及到钱的场合,很多nosql的东西可能并不适用。

2.一般网站用的分库分表技术也不一定适合

3.因为同时也有电话订票。据我估计他们应该是有一个中心服务器,提供接口给电话和网站服务来查询和订票。肯定不是直接操作DB,应该是通过一个类似订票接口(可以理解成中间件)来操作的。

最后我认为,他们的瓶颈在于数据库,他们需要优化的是他们的中心服务器和数据库,如订票接口和设计架构。但是我们都不了解现在的架构,就不乱说了。

论坛徽章:
0
68 [报告]
发表于 2012-01-18 09:48 |只看该作者
网上有个订票流程,大家可以看看。

论坛徽章:
0
69 [报告]
发表于 2012-01-18 10:14 |只看该作者
这种量级,当然应该使用memcache,采用oracle, db2或者PostgreSQL其实并不是太重要,有纪录的处理能力,在一个银行应用里面,PostgreSQL每秒能处理18000个事务,所以重要的是系统的设计跟做设计的人

帖子开头计算的每秒事务量是一万一,都太乐观了,因为考虑的一天24小时是平均的,平滑的,如果考虑到峰值,比这个量还要大许多。

哥最厌恶的就是动动嘴的专家,说的比唱的好听,一做事情,就那个熊样……

论坛徽章:
0
70 [报告]
发表于 2012-01-18 10:27 |只看该作者
回复 67# 阿辉


    不能用nosql这种数据库不是绝对的,传统的数据库重要的一个特性就是保证ACID, 完全可以把ACID做在数据库之上,应用逻辑内,建议看看那本书 <事物处理>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP