12306为何 一票难求
极客
清明期间,12306网站订票难问题再次出现,不少网民纷纷抱怨12306网站垃圾,而其他访问量大的网站,例如新浪、网易、淘宝、伦敦奥运会官网等不会出现这样的问题,12306网站需要向它们学习什么,才可以解决订票难的问题呢?

如海啸般的访问量
当地时间2011年3月11日14时46分,日本发生里氏8.9级地震,随后引发高度达10米的海啸,海啸冲垮堤坝,肆虐日本岩手县、宫城县以及福岛县沿岸,给日本造成严重损失——可见海啸的威力多么触目惊心!
网络海啸一点不比真实海啸差。春节期间有数十亿人次访问12306火车票订票网站,1月9日,12306网站的日点击量甚至突破了14亿。如此庞大的访问量,对于一个网站而言,无疑是一次“海啸”,效果跟受到DDOS攻击无异。
小提示 | TIPS
DDOS就是分布式拒绝服务攻击,简单来说就是利用合理的服务请求来占用过多的服务资源。例如一个小型的网站可以承受每天数十万访问量,中型和大型的网站每天可以承受上千万甚至上亿的访问量。而一旦访问量超过网站所支持的硬件和带宽的极限,那么就会造成服务器崩溃。
当然,12306网站没有受到DDOS攻击,但网站的访问量超过了服务器的承受量,于是网站瘫痪了。如今,想春游出行的人一多,访问12306网站订票又痛苦了,这个问题怎么才能解决呢?请接着往下看!

加高“堤坝”是关键
12306网站该如何提升自己来面对如此庞大的访问“海啸”呢?根据我的经验,可以从以下四个方面来解决:
优化网站及数据库结构
12306网站采用的是动态网站+数据库的结构,这种结构的网站对服务器的要求比纯静态结构的网站要大得多,但是订票网站性质决定了其只能采用这种结构。所以必须从网站入手,优化代码及数据库结构,减少网站对数据库的访问量,从而降低服务器的负载。这个难度不高,有经验的高级程序员都可以办到,很多电商网站也采用了这种模式。
建立镜像服务器
镜像服务器顾名思义就是为原有的网站服务器建立镜像(镜像服务器网站内容与原网站是一模一样的),数量可以是一台或者多台,视具体情况而定。多镜像服务器的好处是可以达到访问“分流”的作用,降低单台网站服务器的压力,确保网站可以访问。大型下载网站,例如华军等都采用了这种模式。
使用“负载均衡”技术
“负载均衡”技术是大型网站最常用的降低服务器负载的技术,包括硬件和软件两方面,其起到的作用同样是“分流”。当某台服务器的访问量突出增大时,“负载均衡”技术就会起作用,将访问量均匀地分配到每一台服务器上,这样一来就减轻了单台服务器的压力,避免网站出现崩溃的情况。例如伦敦奥运会的官方网站就采用了此项技术,是非常不错的方法。

增加网络带宽
带宽的大小是解决问题的关键之一,如果网站服务器的问题解决了,但是带宽不够,同样会造成网络堵塞,就像一条公路,只能容纳4辆车并排通过,如果并排的车超过4辆,那么就会出现堵塞的情况。因此在提升服务器性能的同时加大带宽,才是解决问题的根本(增加带宽是门户网站应对大流量的重要措施)。
对平台网站来说,上述四个解决方案用到1~2个就可以解决问题,而对12306网站来说,同时使用才有不错的效果。一句话,要舍得投入,才能避免网站崩溃,希望五一出游时,订票不再难!
延伸阅读
文凭与火车票
其实文凭不过是一张火车票,清华的是软卧,本科的是硬卧,专科的是硬座,民办的是站票,成教的在厕所挤着……

慎用火车票刷票软件
网上有很多火车票刷票软件,例如360火车票刷票机、火车票刷票外挂等,听起来非常神奇,但也的确有效,此类软件为什么会有效呢?在回答这个问题前,我们先来看看火车票刷票软件的工作流程。
此类软件虽然有很多,但做的事情都是一样的:记录用户的输入账号、密码等信息,然后自动安装“根证书”(这个是必需的),自动访问余票页面,自动重新登录等。看到这里,懂技术的朋友都明白了——就是将部分手工操作变成自动操作。
之所以此类软件标榜能比直接登录铁道部的网站更快地买到票,靠的就是以超快的频率,不断地自动刷12306网站的余票信息,并立即显示出来(如果直接访问12306网站,余票信息需要人工手动刷出来)。不过这样一来,就大大加重了12306网站的负担。

读者求助
@上海小葱:编辑你好,我是一名高二的学生,我想问问如何学习C++,学好了这个可以找一份不错的工作吗?我不想为高考拼命了,而想成为一名自由的程序员!
@电脑报陈邓新:这位同学,可能你有误解,认为程序员是很轻松的工作,其实程序员就是IT圈的包身工,经常加班且压力巨大。你还是先准备高考吧,以后再考虑学习C++。学习C++的方法比较简单,先看一些入门书籍或者视频教程,然后泡一下专业论坛,再多积累编程经验即可。
@寻一种香:你们说HTML5可以跨平台,不过据我所知,虽然IE和Chrome都支持HTML5,但它们使用的API不同,支持的媒体格式也不同,这个不算真正的跨平台吧!
@电脑报陈邓新:嘿嘿,你这么说也对,的确HTML5的标准还没有真正的统一,大家各自为政,互不相让。要知道,一流公司掌握标准,这个道理谁都懂,因此斗争激烈就在所难免了。不过,从长远来说,HTML5标准统一是大势所趋,到那时HTML5就称得上是完美的跨平台了。