突然发现一个问题,火车票是不是不能合并支付是什么意思

火车票代购网站夹缝中生存:跑腿模式盈利艰难
3月14日,国务院&大部制改革&方案获得全国人大通过,铁道部被撤销并将其职能一分为三。当天,北京市复兴路10号大院门口的铁道部牌匾,成为了数百群众排队留影合照的另类景点,有人调侃&铁道部到摘牌都没能解决排队问题&。
与此同时,号称致力于减轻消费者排队买票负担的火车票网购也火了一把。携程旅行网&铁保行&产品在上周经历了先推出又突然下线的过程,昨天&铁保行&再次上线,依然在卖火车票时捆绑售卖保险,被中国保监会紧急喊停,火车票网络代购被推上了风口浪尖,火车票网络代购网站希望这次铁道部改革能给他们带来新的希望。在这个节点,京华时报记者探访了火车票网络代购行业,为你揭开火车票网络代购背后的隐秘江湖。
需求旺盛催生网络代购
3月11日,在涉及铁道部的&大部制&改革方案公布后,携程高调地宣布其&动车、高铁票代购+交通意外险&的创新产品&铁保行&在2月下旬已试运行。而后的3月15日,携程以&系统升级&为由将该产品下线。昨天上午,&铁保行&又悄然上线,而为该产品提供支持的携程子公司铁友网令人颇感好奇。&有需求即有存在&恰如其分地解释了中国火车票代购网站存在的理由。
问题是,明明有铁道部的官方购票网站12306可以在网上购票,为何火车票代购网站还有市场呢?
曾在火车票代购网站上买到票的李小姐说,对于那些互联网依赖性较强的人来说,代购网站背后的购买模式可能较为原始,但是从服务上看,有优于12306之处,例如12306网站只在7点到23点开通火车票预订服务,而代购网站则可以提供24小时预订,甚至可以在预售期前就下单,让代购网站帮&抢票&。
此外,有很多人很忙,尤其在节假日之前,自己还在上班,无暇出去取票,对送票服务就有强烈需求。
一位代购网站负责人透露,今年同比去年,其网站订单量以及成功购买的数量翻了一番。&不可否认在一些购票高峰期,消费者有侥幸心理,希望获得更多成功购到票的机会,这种时候代购网站的成功率不及平常高,但根据以往的经验,我们可以设置一个限购数量,以保证服务的质量。&
车票网络代购命途多舛
铁友网是中国最大的火车票代购网站,至今已有上百员工,此前大股东为想在电商领域分一杯羹的申通快递,这个网站被申通快递作为试点。
2011年7月,铁友网被在线旅游代理行业携程收购。收购铁友网之后,携程的火车票频道依托铁友网的服务,从事网上火车票代购业务。
火车票网络代购的大致流程是,先在该网站上查询列车时刻,选择车次/坐席并用实名及身份证号下单,确认订单信息并在线向支付宝等第三方支付平台付款,取票形式可选择拿身份证到车站自取或选择快递配送。
火车票网络代购不同于火车票分销,因为代购网站没有火车站或地面代售点的出票资质,也不能保证一定能买到票。如果客户预订的订单是火车票预售期内的,代购网站一般在订单提交后2小时内以短信通知客户订单结果,不能订到票的退款以及不同座位价格的补差等款项往来全通过第三方支付平台。
当时,依托铁友网开设火车票代购业务的还有京东商城,而另一家小有名气的代购网站是赶火车网。记者采访获悉,去哪儿、酷讯、58同城及赶集网等网站上的火车票预订均是与铁友网和赶火车网两家合作。
2012年4月,携程突然以&系统调整&为由暂停火车票代购业务,4月7日,电商龙头京东商城也宣布停止了这项业务,当时携程内部人士称&正与铁道部磋商&。当年4月4日,铁道部运输局发布了一纸公告称:12306网站是直接销售中国铁路火车票的唯一专业网站,强调没有授权或委托任何其他网站开展火车票发售及代购业务。但当时,包括铁友网、赶火车网在内的正规火车票代购网站的业务依旧可以进行,要不是携程上周的&铁保行&宣传造势过大,它们本应该处于一个&默默运营&的状态。
&跑腿&盈利艰难
许是巧合,携程宣传&铁保行&产品正值&3&15&前夕,媒体报道不约而同地把关注点放在保险的捆绑上。各路专家、法律界人士围绕《保险法》中&保险合同自愿订立&以及《消费者权益保护法》中的消费者自主选择权进行了讨论。在舆论压力下,3月14日,铁友网和赶火车网已经做出了调整,铁友网在下单页面上提示旅客可以&买保险免费代购火车票&,也可以通过手机访问抢购,并不用支付任何保险费用,旅客在这两种途径中均可享受同样的服务。而赶火车网也做出了调整,消费者可以选择&不购买保险&的选项。
&火车票代购网站的&跑腿&模式是原始的。&劲旅资讯总经理如是评价这类网站的商业模式,&20元钱的保险对于许多不得不选择坐火车出行的人群(如农民工、学生等)来说,依然是贵的。&记者在某火车票代购网站上看到,代购一张火车票的订单总金额为&票面价+保险(20到100元不等)+快递费(15到35元不等)+代购服务费(5元)&。
一位不愿透露姓名的火车票代购网站CEO告诉记者,事实上网站收取的服务手续费完全给了一些代售点,而一般网站只能从一份交通意外险保单中赚取20%左右的利润(一份20元的保单最多只能赚5元)。&目前所有的代购网站都找不到比&铁+X&(火车票+其他组合)从X中赚钱这种模式更好的模式了,基本上火车票代购网站都还在烧钱阶段,互联网企业的盈利模式大多是在赚取足够多流量的基础上才找到的。&
铁友网运营副总裁王玉琛说,现在铁友提供的无线端的纯代购,是一笔亏损生意,平均一单要亏6块钱,他解释,无线上支付宝的手续费为1%,以平均客单价300元计算,支付手续费就是3块多,此外还要算上人工、营销等成本。&铁友网正在结合携程在机票、酒店以及旅游行业的资源,研究铁+机、铁+酒、铁+门票等综合旅行服务产品。未来综合旅行产品将会逐渐成为铁友网的主打产品。&他告诉记者,铁友网现在&铁+X&中的X已经有酒店、机票、配送和保险,另外广告也是一块很大的收益来源。
几位火车票代购网站的负责人不约而同地透露,在春节这种运输旺季,反而是他们的&假期&,赚钱实属不易。&在节假日高峰时间,铁友网会依托历史上的经验数据,对低出票成功率的车次进行限售,不让客户在线提交代购需求,以提升客户的体验。&王玉琛向记者透露,铁友网在三年多里积累了许多铁路出行购票成功率数据,铁友网也是依托这些数据进行服务优化。
恰好就在昨天,中国保监会北京监管局发布通知称,针对近期不断有公众质疑交通工具意外险强制销售问题,要求在京各保险公司要自查整改,规范意外险市场秩序。这个通知很可能让携程网等网络代购靠赚保险费赚钱的如意算盘流产。
事实上,对于那些不像铁友网那样有大靠山的火车票代购网站,坚持已经是一件非常辛苦的事。&很苦,很累。&某火车票代购网站CEO感慨道。
顶风与地面代售点合作
在代购网站的商业链条里,离不开地面代售点。事实上,日铁道部发布了上述公告后,还着手进行另一个整顿。当月铁道部还要求各个代售点不得自行开办网上售票业务,不得以各种方式与其他网站合作或联营;售票时必须查验乘车人身份证件原件或复印件,不得通过报号等方式。
上述整顿曾被称为&堵死了火车票代购网站的路&,因为火车票代购的确得依靠网站与各地代售点之间的某种&默契&:在消费者在网站下订单并提供身份证号后,网站(或与网站有合作的快递公司)将购买人身份证号第一时间传给代售点,代售点报号出票,并快递寄送给购买人。
现在,所有代购网站及地面代售点都对上述微妙关系讳莫如深。不过,不少火车票代售点却向记者坦言,在现在的火车票销售局面下,12306网络购票极大冲击了地面分销,从他们的角度看,网络代购实际是地面代购点售票渠道的创新。
地面分销生意惨淡
&过去,代理点分销被称为火车票销售系统的毛细血管,虽然薄利,但是至少有利可图。火车票在12306上销售后,代理点日子太难过了。&张先生是湖北武汉的一位火车票分销商,他预计,今年武汉地区代理点将普遍亏损,&应该达到九成&。&今年,电话订票、互联网售票调整为20天,窗口、代售点预售期调整为18天,前面几天票都卖光了,一年中唯一赚钱的春节我家的店门可罗雀,近来一些同行已经主动终止代理合同。&
张先生给记者算了笔账,武汉地区的代理点每年要和某公司(相当于总代理)签署代理合同,卖出每张火车票5元的手续费中有3元得上缴总代理,自己只赚2元钱,不同于机票分销的佣金,火车票分销并没有返点。&一个月房租4000元,因为不能间断经营,员工至少有两人,每人工资1500元,不算水电费、电话费等,一个月要卖出3500张票才能达盈亏平衡点,每天要卖100多张票。&张先生说,平时火车票销售并不紧张,12306上订票方便,更没人来买票了。记者了解到,我国不少地方包括北京(部分代理点)在内,每张票手续费的利润不到5元,而5元这一数目已经持续了很多年。
&网络销售以后肯定是趋势,地面代理只能是优胜劣汰。&张先生说,简直不敢想火车票网络分销出现是什么情况,但在网络分销还没放开前,地面代理要想&活下来&,必须要把更多功能打开。他认为政策上应该允许代理可以与代购网站合作,可以进行送票服务,甚至可以进行退改签,节假日各种销售渠道预售期应该一样。
&火车票网上代购只不过是过渡产品,大家都在等待网络分销的到来。&魏长仁说,中国的火车票销售市场实在是太大了。
谁在等网络分销开闸
&各方已经在积极占坑了,为的是培养用户线上预订火车票的习惯,本质上是对流量的争夺。&酷讯旅游网CEO张海军介绍,&现在(火车票销售)这个蛋糕我们还不知道如何去切,所有的动作都是占坑&。
苦苦生存的代购网站更是无比期盼网络分销的放开。另一家在线分销商艺龙旅行网从2010年就布局火车票市场,其已收购了 huoche.com和huoche.com.cn两家网站,目前,火车网定位于火车资讯类,主要是查询功能,而订票则直接跳转到12306网站。
去年停止火车票代购业务的京东商城向记者否认了此事与铁道部有关,该公司表示:&鉴于京东商城火车票代购业务测试期间出票成功率较低,影响到部分客户体验,京东商城决定暂时停止代购业务,但仍旧免费提供在线查询功能。&不过其语意一转又强调:&在国家政策允许和消费者需求前提下,京东商城会考虑开展火车票订购业务。&
航空公司也积极与各地铁路局商讨&空铁联运&。东航股份总经理马须伦告诉记者,东航绞尽脑汁争取和高铁&化敌为友&,目前依托虹桥机场的基地,东航的空铁联运产品覆盖长三角13个城市。东航商务委方面介绍,联运产品比分开买票要优惠,在春节等出行旺季,&空+铁&这种曲线回家的方式,性价比或许比全程火车出行更高。
不止是与旅行有关的公司,各类网络公司也对火车票市场可带来的流量虎视眈眈,今年春运期间,360、搜狗、金山猎豹和傲游等浏览器纷纷推出抢票插件就是佐证。
火车票蛋糕有多大
几组数据揭示了火车票市场这块蛋糕的量级。
根据铁道部公布的数据,2012年铁路旅客发送量达到18.93亿人;铁道部春运办数据显示,与去年春运相比,今年旅客发送总量增加2.59亿人。
今年春运,互联网售票和电话订票占总售票量的37.7%,在最高峰1月28日12306网站登录用户达2109.5万人,用户点击达16.4亿次。
中投顾问交通行业研究员蔡建明接受京华时报记者采访时说,仅从客运收入的角度来看,铁道部年度客运收入约1600多亿元,每年客运收入增速约为2%。类比于机票预订,火车在线预订火车票比例约为30%-40%,收入约为500亿-600亿左右。随着在线订票人数的逐渐增多,收入增幅将会超过2%。
而销售量背后的附加价值也是旅游网站追逐的。以高铁为例,据媒体报道,同程网CEO吴志祥曾做过抽样统计,高铁乘客中旅游用户占非常高的比例,接近50%,这部分旅游用户可以极大拉动酒店预订、旅游度假相关业务的增长,而这两部分业务又占到在线旅游网站营收中较高比例,相比机票预订3%~5%的佣金率,酒店预订业务给予旅游网站的回报也更高,大型在线旅游网站酒店预订佣金达到15%~25%。
值得一提的是,随着铁道部的撤销及重组,注册资金10360亿元的中国铁路总公司承担了原铁道部相关资产、人员以及所有负债。目前较高的高铁空座率(尤其是一等舱)以及截至去年9月底铁道部2.66万亿元的债务总额,铁道系统即将开启的市场化运营&&这些无疑又给了掘金者们更多的遐想。
火车票开始网上销售后,12306网站高峰遇到的&服务器忙&及各种不畅也备受&吐槽&和质疑,分销政策何时放行值得期待。
&如果12306可以转型作为中央数据库的角色,提供基础设施,再把接口提供给更多网站,设想若有1亿人同时登录12306网站和1亿个人分别登录许多个分销网站,哪个速度更快呢?&魏长仁用这个极端的例子解释了放开网络分销的好处。
&要实现火车票网络分销,现在12306网站后台的技术恐怕存在问题。&交通运输部相关人员接受记者采访时说,支撑12306网站的系统是一个直销系统,而不是一个分销系统,要向其他网站开放数据接口还有技术问题,目前数据库容量还不够大,不能做到乘客信息精细化管理。
&的确,在火车票网络分销放开之前,相关部门需要一些准备,例如衡量网络分销商代理资格的标准,如何平衡线上及线下分销的关系,以及纸质票到电子票的过渡问题。&即便如此,张海军也强调,技术问题其实最不是问题,原来政企合一的铁道系统本身的改革才是最大问题。
交通运输部相关人员也坦言:&如果要走向市场化,必然需要大刀阔斧的改革,利益独享还是分享共赢,正是垄断和市场化的区别。&
众多火车票网络分销放开的呼吁者均表示,火车票销售可以效仿民航经验。&民航的分销体系分工是清晰的,有一条产业链。&张海军介绍,航空公司的分销有线上和线下两种形式,特别是大型的分销商(尤其是网络代理商)在分销的同时也通过搭建呼叫中心等提供服务,减轻了航空公司的负担,而在线上分销方面更接近消费者的则是垂直搜索引擎等纵向信息整合平台,这上面集合了大小分销商。
&除了预售时间长短、线上退改签等问题外,火车票分销要想跟机票一样市场化,需要价格的弹性。&张海军说,像处于酒店、民航这种固定成本占比大且产品具有时效性行业的企业,为了保证入住率或客座率,它们用以对冲损失的主要方法是灵活调整价格,例如航空公司根据预订时间、季节等进行价格调整,酒店用团购、lastminute(每年最后时刻清仓)等手段促销。
知情人士也指出,高铁、动车上大量的空座需要市场化的手段吸引客源,比如车票价格可以据预订时间变化而调整,优化分销渠道,注重高端旅客数据的管理和价值挖掘等,这些都是来自民航的经验。
魏长仁说,为什么机票销售的&黄牛党&几乎销声匿迹?就是因为机票销售是在一个相对统一、透明的平台上,消费者购票便利,在实名制和网购时代也不会出现&黄牛&用抢票软件在12306上抢票再加价卖出去的恶劣现象。
作为各国铁路公司借鉴的对象,欧洲铁路公司车票的销售技法令人叹为观止。欧铁首席执行官表示,2010年时欧铁全球的直销业务占所有业务的比例为15%,而代理商和B2B模式则占85%。据了解,目前,欧洲铁路集团通过5家销售总代理(ACP国际铁路公司,Eurail.com,STATravel,福莱森特,欧洲铁路公司)销售欧洲铁路通票(EurailPass)。除Eurail.com外都已在中国大陆地区设有分销机构。这些分销商又通过线上、线下等不同方式销售。
欧洲铁路集团中国区媒体负责人卫辰告诉记者,欧洲铁路的产品非常广泛,在不同季节、不同乘车人群、不同销售渠道所采取的销售策略均有所不同。例如欧洲当地居民可以在网上买到针对他们推出的促销票,有可以容纳一家四口(两个大人两个孩子)的春季套票(价格比分开买要优惠),有针对周末游的周末票等,而不同类别的票有效期也不同,但可以在有效期内任意时间使用。
您可能也感兴趣:
印度手机市场最新完整的数据报告终于出来了,与《Nokia正在印度改变功能手机市场》中小新预...
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
Copyright (C)
All rights reserved. 京ICP证060517号/京ICP备号 京公网安备76号
TechWeb公众号
机情秀公众号已解决问题
12306网上订火车票一次可以订5张,可不可以同一个用户订多次?付款又是用什么形式?用不用去取票呢?
浏览次数:7002
用手机阿里扫一扫
最满意答案
该答案已经被保护
12306网一个身份证同一次列车只能订购一张票,支付方式是网银支付,可以用二代身份证直接上车,也可以去取票。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok由http://12306.cn谈谈网站性能技术【知乎】 - 中国铁路的日志,人人网,中国铁路的公共主页
今天是七二三四周年的纪念日,愿逝者安息
由http://12306.cn谈谈网站性能技术【知乎】
转一篇文章,给诸位提供一些材料,不管是支持还是反对,至少可以指出支持反对哪一点,免得鸡同鸭讲。文章是两年前的,欢迎知情人士指出两年来是否有什么变化。
文章主要说了12306这个网站有多独特,技术难点在哪里,有什么可能的改善方法。
==================
网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指正。(这又是一篇长文,只讨论性能问题,不讨论那些UI,用户体验,或是是否把支付和购票下单环节分开的功能性的东西)
业务任何技术都离不开业务需求,所以,要说明性能问题,首先还是想先说说业务问题。
其一,有人可能把这个东西和QQ或是网游相比。但我觉得这两者是不一样的,网游和QQ在线或是登录时访问的更多的是用户自己的数据,而订票系统访问的是中心的票量数据,这是不一样的。不要觉得网游或是QQ能行你就以为这是一样的。网游和QQ 的后端负载相对于电子商务的系统还是简单。
其二,有人说春节期间订火车的这个事好像网站的秒杀活动。的确很相似,但是如果你的思考不在表面的话,你会发现这也有些不一样。火车票这个事,还有很多查询操作,查时间,查座位,查铺位,一个车次不 行,又查另一个车次,其伴随着大量的查询操作,下单的时候需要对数据库操作。而秒杀,直接杀就好了。另外,关于秒杀,完全可以做成只接受前N个用户的请求(完全不操作后端的任何数据, 仅仅只是对用户的下单操作log),这种业务,只需要在内存cache中放好可秒杀的数量,还可以把数据分布开来放,100商品,10台服务器一台放10个,无需在当时操作任何数据库。可以订单数够后,停止秒杀,然后批量写数据库。而且秒杀的商品不多。火车票这个不是像秒杀那么简单的,春运时间,几乎所有的票都是热门票,而且几乎是全国人民都来了。(淘宝的双十一也就3百万用户,而火车票瞬时有千万级别甚至是亿级别的)
其三,有人拿这个系统和奥运会的票务系统比较。我觉得还是不一样。虽然奥运会的票务系统当年也一上线就废了。但是奥运会用的是抽奖的方式,也就是说不存在先来先得的抢的方式,而且,是事后抽奖,事前只需要收信息,事前不需要保证数据一致性,没有锁,很容易水平扩展。
其四,订票系统应该和电子商务的订单系统很相似,都是需要对库存进行:1)占住库存,2)支付(可选),3)扣除库存的操作。这个是需要有一致性的检查的,也就是在并发时需要对数据加锁的。B2C的电商基本上都会把这个事干成异步的,也就是说,你下的订单并不是马上处理的,而是延时处理的,只有成功处理了,系统才会给你一封确认邮件说是订单成功。我相信有很多朋友都收到认单不成功的邮件。这就是说,数据一致性在并发下是一个瓶颈。
其五,铁路的票务业务很变态,其采用的是突然放票,而有的票又远远不够大家分,所以,大家才会有抢票这种有中国特色的业务的做法。于是当票放出来的时候,就会有几百万人甚至上千万人杀上去,查询,下单。几十分钟内,一个网站能接受几千万的访问量,这个是很恐怖的事情。,集中在早8点到10点,每秒PV在高峰时上千万。多说几句:
库存是B2C的恶梦,库存管理相当的复杂。不信,你可以问问所有传统和电务零售业的企业,看看他们管理库存是多么难的一件事。不然,就不会有那么多人在问凡客的库存问题了。(你还可以看看《乔布斯传》,你就知道为什么Tim会接任Apple的CEO了,最主要的原因是他搞定了苹果的库存周期问题)
对于一个网站来说,浏览网页的高负载很容易搞定,查询的负载有一定的难度去处理,不过还是可以通过缓存查询结果来搞定,最难的就是下单的负载。因为要访问库存啊,对于下单,基本上是用异步来搞定的。去年双11节,淘宝的每小时的订单数大约在60万左右,京东一天也才能支持40万(居然比12306还差),亚马逊5年前一小时可支持70万订单量。可见,下订单的操作并没有我们相像的那么性能高。
淘宝要比B2C的网站要简单得多,因为没有仓库,所以,不存在像B2C这样有N个仓库对同一商品库存更新和查询的操作。下单的时候,B2C的 网站要去找一个仓库,又要离用户近,又要有库存,这需要很多计算。试想,你在北京买了一本书,北京的仓库没货了,就要从周边的仓库调,那就要去看看沈阳或 是西安的仓库有没有货,如果没有,又得看看江苏的仓库,等等。淘宝的就没有那么多事了,每个商户有自己的库存,库存就是一个数字,并且库存分到商户头上了,反而有利于性能扩展。
数据一致性才是真正的性能瓶颈。有 人说nginx可以搞定每秒10万的静态请求,我不怀疑。但这只是静态请求,理论值,只要带宽、I/O够强,服务器计算能力够,并支持的并发连接数顶得住10万TCP链接的建立 的话,那没有问题。但在数据一致性面前,这10万就完完全全成了一个可望不可及的理论值了。我说那么多,我只是想从业务上告诉大家,我们需要从业务上真正了解春运铁路订票这样业务的变态之处。
前端性能优化技术要解决性能的问题,有很多种常用的方法,我在下面列举一下,我相信12306这个网站使用下面的这些技术会让其性能有质的飞跃。
一、前端负载均衡通过DNS的负载均衡器(一般在路由器上根据路由的负载重定向)可以把用户的访问均匀地分散在多个Web服务器上。这样可以减少Web服务器的请求负载。因为http的请求都是短作业,所以,可以通过很简单的负载均衡器来完成这一功能。最好是有CDN网络让用户连接与其最近的服务器(CDN通常伴随着分布式存储)。(关于负载均衡更为详细的说明见&后端的负载均衡&)
二、减少前端链接数我看了一下,打开主页需要建60多个HTTP连接,车票预订页面则有70多个HTTP请求,现在的浏览器都是并发请求的(当然,浏览器的一个页面的并发数是有限的,但是你挡不住用户开多个页面,而且,后端服务器TCP链接在前端断开始,还不会马上释放或重要)。所以,只要有100万个用户,就有可能会有6000万个链接(访问第一次后有了浏览器端的cache,这个数会下来,就算只有20%也是百万级的链接数),太多了。一个登录查询页面就好了。把js打成一个文件,把css也打成一个文件,把图标也打成一个文件,用css分块展示。把链接数减到最低。
三、减少网页大小增加带宽这个世界不是哪个公司都敢做图片服务的,因为图片太耗带宽了。现在宽带时代很难有人能体会到当拨号时代做个图页都不敢用图片的情形(现在在手机端浏览也是这个情形)。我查看了一下12306首页的需要下载的总文件大小大约在900KB左右,如果你访问过了,浏览器会帮你缓存很多,只需下载10K左右的文件。但是我们可以想像一个极端一点的案例,1百万用户同时访问,且都是第一次访问,每人下载量需要1M,如果需要在120秒内返回,那么就需要,1M * 1M /120 * 8 = 66Gbps的带宽。很惊人吧。所以,我估计在当天,12306的阻塞基本上应该是网络带宽,所以,你可能看到的是没有响应。后面随着浏览器的缓存帮助12306减少很多带宽占用,于是负载一下就到了后端,后端的数据处理瓶颈一下就出来。于是你会看到很多http 500之类的错误。这说明后端服务器垮了。
四、前端页面静态化静态化一些不常变的页面和数据,并gzip一下。还有一个变态的方法是把这些静态页面放在/dev/shm下,这个目录就是内存,直接从内存中把文件读出来返回,这样可以减少昂贵的磁盘I/O。使用nginx的sendfile功能可以让这些静态文件直接在内核心态交换,可以极大增加性能。
五、优化查询很多人查询都是在查一样的,完全可以用反向代理合并这些并发的相同的查询。这样的技术主要用查询结果缓存来实现,第一次查询走数据库获得数据,并把数据放到缓存,后面的查询统统直接访问高速缓存。为每个查询做Hash,使用NoSQL的技术可以完成这个优化。(这个技术也可以用做静态页面)对于火车票量的查询,个人觉得不要显示数字,就显示一个&有&或&无&就好了,这样可以大大简化系统复杂度,并提升性能。把查询对数据库的负载分出去,从而让数据库可以更好地为下单的人服务。
六、缓存的问题缓存可以用来缓存动态页面,也可以用来缓存查询的数据。缓存通常有那么几个问题:1)缓存的更新。也叫缓存和数据库的同步。有这么几种方法,一是缓存time out,让缓存失效,重查,二是,由后端通知更新,一量后端发生变化,通知前端更新。前者实现起来比较简单,但实时性不高,后者实现起来比较复杂 ,但实时性高。2)缓存的换页。内存可能不够,所以,需要把一些不活跃的数据换出内存,这个和操作系统的内存换页和交换内存很相似。FIFO、LRU、LFU都是比较经典的换页算法。相关内容参看。3)缓存的重建和持久化。缓存在内存,系统总要维护,所以,缓存就会丢失,如果缓存没了,就需要重建,如果数据量很大,缓存重建的过程会很慢,这会影响生产环境,所以,缓存的持久化也是需要考虑的。诸多强大的NoSQL都很好支持了上述三大缓存的问题。
后端性能优化技术前面讨论了前端性能的优化技术,于是前端可能就不是瓶颈问题了。那么性能问题就会到后端数据上来了。下面说几个后端常见的性能优化技术。
一、数据冗余关于数据冗余,也就是说,把我们的数据库的数据冗余处理,也就是减少表连接这样的开销比较大的操作,但这样会牺牲数据的一致性。风险比较大。很多人把NoSQL用做数据,快是快了,因为数据冗余了,但这对数据一致性有大的风险。这需要根据不同的业务进行分析和处理。(注意:用关系型数据库很容易移植到NoSQL上,但是反过来从NoSQL到关系型就难了)
二、数据镜像几乎所有主流的数据库都支持镜像,也就是replication。数据库的镜像带来的好处就是可以做负载均衡。把一台数据库的负载均分到多台上,同时又保证了数据一致性(Oracle的SCN)。最重要的是,这样还可以有高可用性,一台废了,还有另一台在服务。数据镜像的数据一致性可能是个复杂的问题,所以我们要在单条数据上进行数据分区,也就是说,把一个畅销商品的库存均分到不同的服务器上,如,一个畅销商品有1万的库存,我们可以设置10台服务器,每台服务器上有1000个库存,这就好像B2C的仓库一样。
三、数据分区数据镜像不能解决的一个问题就是数据表里的记录太多,导致数据库操作太慢。所以,把数据分区。数据分区有很多种做法,一般来说有下面这几种:1)把数据把某种逻辑来分类。比如火车票的订票系统可以按各铁路局来分,可按各种车型分,可以按始发站分,可以按目的地分&&,反正就是把一张表拆成多张有一样的字段但是不同种类的表,这样,这些表就可以存在不同的机器上以达到分担负载的目的。2)把数据按字段分,也就是竖着分表。比如把一些不经常改的数据放在一个表里,经常改的数据放在另外多个表里。把一张表变成1对1的关系,这样,你可以减少表的字段个数,同样可以提升一定的性能。另外,字段多会造成一条记录的存储会被放到不同的页表里,这对于读写性能都有问题。但这样一来会有很多复杂的控制。3)平均分表。因为第一种方法是并不一定平均分均,可能某个种类的数据还是很多。所以,也有采用平均分配的方式,通过主键ID的范围来分表。4)同一数据分区。这个在上面数据镜像提过。也就是把同一商品的库存值分到不同的服务器上,比如有10000个库存,可以分到10台服务器上,一台上有1000个库存。然后负载均衡。这三种分区都有好有坏。最常用的还是第一种。数据一旦分区,你就需要有一个或是多个调度来让你的前端程序知道去哪里找数据。把火车票的数据分区,并放在各个省市,会对12306这个系统有非常有意义的质的性能的提高。
四、后端系统负载均衡前面说了数据分区,数据分区可以在一定程度上减轻负载,但是无法减轻热销商品的负载,对于火车票来说,可以认为是大城市的某些主干线上的车票。这就需要使用数据镜像来减轻负载。使用数据镜像,你必然要使用负载均衡,在后端,我们可能很难使用像路由器上的负载均衡器,因为那是均衡流量的,因为流量并不代表服务器的繁忙程度。因此,我们需要一个任务分配系统,其还能监控各个服务器的负载情况。任务分配服务器有一些难点:
负载情况比较复杂。什么叫忙?是CPU高?还是磁盘I/O高?还是内存使用高?还是并发高?还是内存换页率高?你可能需要全部都要考虑。这些信息要发送给那个任务分配器上,由任务分配器挑选一台负载最轻的服务器来处理。
任务分配服务器上需要对任务队列,不能丢任务啊,所以还需要持久化。并且可以以批量的方式把任务分配给计算服务器。
任务分配服务器死了怎么办?这里需要一些如Live-Standby或是failover等高可用性的技术。我们还需要注意那些持久化了的任务的队列如何转移到别的服务器上的问题。我看到有很多系统都用静态的方式来分配,有的用hash,有的就简单地轮流分析。这些都不够好,一个是不能完美地负载均衡,另一个静态的方法的致命缺陷是,如果有一台计算服务器死机了,或是我们需要加入新的服务器,对于我们的分配器来说,都需要知道的。另外,还要重算哈希(一致性hash可以部分解决这个问题)。还有一种方法是使用抢占式的方式进行负载均衡,由下游的计算服务器去任务服务器上拿任务。让这些计算服务器自己决定自己是否要任务。这样的好处是可以简化系统的复杂度,而且还可以任意实时地减少或增加计算服务器。但是唯一不好的就是,如果有一些任务只能在某种服务器上处理,这可能会引入一些复杂度。不过总体来说,这种方法可能是比较好的负载均衡。
五、异步、 throttle 和 批量处理异步、throttle(节流阀) 和批量处理都需要对并发请求数做队列处理的。
异步在业务上一般来说就是收集请求,然后延时处理。在技术上就是可以把各个处理程序做成并行的,也就可以水平扩展了。但是异步的技术问题大概有这些,a)被调用方的结果返回,会涉及进程线程间通信的问题。b)如果程序需要回滚,回滚会有点复杂。c)异步通常都会伴随多线程多进程,并发的控制也相对麻烦一些。d)很多异步系统都用消息机制,消息的丢失和乱序也会是比较复杂的问题。
throttle 技术其实并不提升性能,这个技术主要是防止系统被超过自己不能处理的流量给搞垮了,这其实是个保护机制。使用throttle技术一般来说是对于一些自己无法控制的系统,比如,和你网站对接的银行系统。
批量处理的技术,是把一堆基本相同的请求批量处理。比如,大家同时购买同一个商品,没有必要你买一个我就写一次数据库,完全可以收集到一定数量的请求,一次操作。这个技术可以用作很多方面。比如节省网络带宽,我们都知道网络上的MTU(最大传输单元),以态网是1500字节,光纤可以达到4000多个字节,如果你的一个网络包没有放满这个MTU,那就是在浪费网络带宽,因为网卡的驱动程序只有一块一块地读效率才会高。因此,网络发包时,我们需要收集到足够多的信息后再做网络I/O,这也是一种批量处理的方式。批量处理的敌人是流量低,所以,批量处理的系统一般都会设置上两个阀值,一个是作业量,另一个是timeout,只要有一个条件满足,就会开始提交处理。所以,只要是异步,一般都会有throttle机制,一般都会有队列来排队,有队列,就会有持久化,而系统一般都会使用批量的方式来处理。&
&就是这个技术。这和电子商务的订单系统很相似,就是说,我的系统收到了你的购票下单请求,但是我还没有真正处理,我的系统会跟据我自己的处理能力来throttle住这些大量的请求,并一点一点地处理。一旦处理完成,我就可以发邮件或短信告诉用户你来可以真正购票了。&在这里,我想通过业务和用户需求方面讨论一下云风同学的这个排队系统,因为其从技术上看似解决了这个问题,但是从业务和用户需求上来说可能还是有一些值得我们去深入思考的地方:&1)队列的DoS攻击。首先,我们思考一下,这个队是个单纯地排队的吗?这样做还不够好,因为这样我们不能杜绝黄牛,而且单纯的ticket_id很容易发生DoS攻击,比如,我发起N个 ticket_id,进入购票流程后,我不买,我...
阅读(1636)|
人人移动客户端下载}

我要回帖

更多关于 合并支付 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信