免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
4
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-24 13:05:332015亚冠之西悉尼流浪者
日期:2015-10-09 16:03:47fulanqi
日期:2016-06-17 17:54:25
201 [报告]
发表于 2012-03-14 23:08 |只看该作者
回复 201# 无风之谷

是啊,要向专家学习~:wink:


   

论坛徽章:
0
202 [报告]
发表于 2012-03-27 16:39 |只看该作者
能不能用erlang重写?
据说这个是能应付大数据量的.

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-06-20 22:20:00
203 [报告]
发表于 2012-03-30 09:04 |只看该作者
本帖最后由 crykun 于 2012-03-30 09:09 编辑

这么多天才看到,奖都评过了,来晚了。
上亿人并发,估计也是天价的服务器集群和软件成本,如果铁道部考虑成本,效益等综合优势,12306还是放弃算了。
按CUer的的购票网站方案,有建分站的,有参考彩票系统的,但购票网站有很多不同,主要有:票务实时数据同步查询,上亿人并发访问,网上支付,防止黄牛党这四个任务,还有一个就是短时间需要,不需要像彩票站一样,常年累月都那样养着工作人员。购票网站不知道需要多么庞大的服务器集群,还有不知道需要分布式计算程序要多么稳定和多么高度协同,东西一多,问题就越多,所以,机器设备,软件啊,越少越简单越好。

铁道部需要的是什么呢?要的是一个解决方案,不一定是购票网站。

可以回到老路上去,增加售票窗口。如果单单是增加窗口,场地,人员等都是要配备,费用太大。可以增加无人售票机,类似于ATM。
具体如下:窗口上的工作人员做两件事,一是听旅客的要求,录入电脑。这个可以把工作人员的电脑设计成平板触摸式,让旅客自主操作。
第二件事,就是收钱,可以用POST机或手机支付来实现。
将触摸屏电脑和POST机结合,加上打票及安全系统,这是就自动售票机的硬件部分。
软件部份,加上票务查询,二代身份证识别,POST或手机支付,防止购多张票防止黄牛,票打印等程序系统。安全监控系统,还有就是非春运、国庆购票高峰时期,自动售票机通过云端总控制指令待机节约用电等。
有了自动售票机,部署于小区、车站等地方,可以昼夜不停的售票。非高峰时期由总控室发出指令,待机。
减少窗口人员压力,以1天售票8000万计算,一台自动售票机一天售票200张。全国部署40万台自动售票机足够,各省也就1万台,车站,各地市州,甚至县市区都可以部署。
40万个专用终端对于软件设计来说,已经不是什么大问题。银行就做得很好。关于工作人员,配备自动售票机的维护人员,解决异常、故障处理等问题。
12306改成票务查询等常规任务,自动售票机分布位置查询。
关于扩展和降低成本,当然自动售票机也是需要成本,不仅可以售火车票,也可以汽车票,飞机票,船票(2012的哦,呵呵),这然,这需要很大的领导出面,协调商定了才能进行。

个人愚见,希望每一位在外的游子都能购上票,平安回家。

论坛徽章:
0
204 [报告]
发表于 2012-04-03 21:15 |只看该作者
好帖子 顶了 支持~!!!!!!!

论坛徽章:
0
205 [报告]
发表于 2012-04-04 17:36 |只看该作者
虽然活动已结束了,看到大家讨论得这么热闹,我也发表自己的一些看法。
个人感觉最大的问题不在web服务上,web服务可以集群,大不了各地部署很多web服务器,通过负载均衡和分区访问控制完全可以应付得了。主要问题在数据库模型上,如此海量的用户数据,如果单一数据库,无论数据库性能多高,都无法解决访问拥塞问题。应该考虑各个大表拆分问题,不仅列拆分还要行拆分,如此以来可以把全国的用户数据放置到几十个分库中,根据一个策略数据库基本表,将用户导向到相应的分数据库访问。
以上仅是对用户表的处理,对于火车线路、价格、车次信息,量不会很大,但表结构和表间关系的设计要科学,避免数据冗余。
对于用户购票信息的数据表应放置在另一独立数据库中,已过期(车次已到达目的地)的数据信息要用专门私服进场进行归档处理,保持数据库尽可能小。
另外,通过数据库中实时的统计信息和顾客需求,首先给顾客一个智能可选方案,减少顾客因盲目操作带来的资源浪费。
在支付环节,可以采用手机支付、网银、支付宝等各种网络支付方式,也可以开立银行柜台支付功能,只需用户输入个人账号或者身份证,即可列出顾客已网定车票信息,支付成功后网上更新信息即可。
另一个可供参考的方案是不用b/s模式,采用c/s模式,虽然有客户端软件麻烦,但只要是瘦客户端,安装软件也不太费事。这样的好处是客户机可以担负起数据计算功能,客户端带有轻量级数据库,每次打开后自动更新更新车票线路等信息,因用户信息无需下载,数据库很小,客户的选择决策均在客户端完成。几乎对服务器的操作仅限于确定购买哪个车票后的数据提交操作,负载非常小。
以上是我的拙见。

论坛徽章:
0
206 [报告]
发表于 2012-04-10 19:46 |只看该作者
回复 19# yahoon

这个应该算是最低谷的访问量

   

论坛徽章:
0
207 [报告]
发表于 2012-04-12 11:35 |只看该作者
这个讨论很好  需要学习~!!!!

论坛徽章:
0
208 [报告]
发表于 2012-07-16 23:44 |只看该作者
回复 30# Gray1982
这东西能给你啊

   

论坛徽章:
0
209 [报告]
发表于 2012-08-22 12:52 |只看该作者
我认为主要还是在业务需求拆分上下功夫,做分布计算

论坛徽章:
0
210 [报告]
发表于 2012-08-23 14:32 |只看该作者
已经完了啊~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP