新型SEO思维就是从一个全新的层次上提升seo优化的水平,达到网络信息最佳化的展示效果!
马海祥博客 > 今日话题 > 史上最牛网站12306订票网的十宗罪及改善开发建议

史上最牛网站12306订票网的十宗罪及改善开发建议

时间:2012-09-22   文章来源:马海祥博客   访问次数:

自从12306诞生之日起,就注定要成为史上最牛电商网站,对于网络上一直流传的段子想必大家依旧耳熟能详:“它界面丑陋,它UI粗糙,它服务器不稳定,它用户体验更是烂到极点,但它却是史上最牛逼的电商!未做一分钱广告,短短数日全球ALEXA排名260,日订单量基本铁定第一,不愁销售额,转化率当之无愧的第一,它就是12306!”

史上最牛网站12306订票网的十宗罪及改善开发建议-马海祥博客

而如今经过了一年半的时间,12306网站的状况仍未有半点改观,反而变差了,再一次引来无数人的吐槽和不满,因为现在买票还得排队,被大家称之为中国最难登陆的地方,对此,我今天就借助马海祥博客的平台为大家盘点一下史上最牛网站12306订票网的十宗罪及7点改善开发建议。

一、12306铁道部火车票网上订票网系统的十宗罪

1、无法支持大规模并发!从去年上线到现在一直无法支持大规模并发!(这9个多月在干嘛!)

2、最重要的sharding,caching,compressing,clustering,cdn等等都做了吗?

3、界面极操,完全不懂得应用ajax来时间局部页面更新。

4、no longer valid - 只支持IE(据网友说可以用chrome,safari了,我四个月前mac chrome不行)

5、不能直接打印车票。

6、不能选座位。

7、使用的安全证书竟然不是有效的。

8、竟然不是https。

9、票丢失补办后竟然要先购买一张(不能直接作废之前那张吗?)

10、开发费用极高(按照媒体曝光的数据统计,12306网站的花费就超过5亿元),怀疑是用火星人的工资请了朝鲜人来写的程序。

二、给12306订票网改善并发的7点建议

有人说12306的并发是全世界最大,比Facebook,Google还大,我们姑且相信,但这不能成为操蛋体验的借口,网站崩溃的免死金牌。

并发大并不是第一天才知道,去年春运见识过了,那时候网站刚上线不久,还可以理解。

9个月过去了,再来说事只能说明铁道部解决这个问题的无能。

史上最牛网站12306订票网的十宗罪及改善开发建议-马海祥博客

我们作为用户,最容易的就是对这个体验吐槽,所有人都有权利这么做,也应该这么做,你不给他们压力,他们就当你愿意,12306的体验真心很糙!

作为技术产品人员,除了吐槽,对于解决并发问题,也提一些意见,这些意见都是在对铁道数据没有很深理解的前提下瞎聊的,所以可能有纰漏,但只要他们愿意开放数据,我相信很多人愿意给他提提专业意见。

1、把短时间的并发分散到长时间

并不是所有的技术问题一定要技术手段去解决,12306在节假日买票有高并发,其实完全可以引导用户不要在出行前几天再去买票,在主流节假日前可以考虑允许提早30天买票,越早买折扣越多。

比如T-30天可以享受9折,T-X可以享受9+(30-X)/30折扣,鼓励大家提早买票,把短时间的并发分散到这30天去,让系统瞬时负荷峰值尽可能的下降,马海祥很看好这一点,对价格敏感的群众还能享受实惠。

2、不同线路使用不同的数据库

12306并发最大的问题可能是对于票务资源的锁定,所以最简单的方法就是打散对票务资源的锁定,让不同的线路使用不同的数据库服务器,如果所有的线路只有一个中央数据库,那你怎么做都是崩溃。

3、繁忙线路的票务资源分块

简单而言,从上海到北京的线路共1000张票,10000个人同时抢,大家都访问一个数据库,这个数据库很容易崩溃。

所以,还是要把这个数据库切分,很多不同的做法,多个车厢可以有自己的数据库服务器;或者动态分配部分资源到指定服务器,然后动态引导流量到该服务器;不要锁表,锁行;等等,这点,很多数据库专家可以插插嘴。

4、读写分开,尽可能的限制写

尤其对于读,完全可以用单独的读数据库,上面可以做memcache,local cache来显示票务信息。

对于写,马海祥的建议是:只有在用户选定了一个车次信息,真的决定买的时候,再去访问可写的数据库。

5、借用云服务

12306订票网站的特点是一到节假日,资源耗用特别高,平时要小很多,这种特点的网站不适合自己配备所有的服务器,但可以考虑租用其他的云服务器、阿里云、百度云等,我想如果是铁道部出马,他们应该会热烈欢迎合作滴!

6、尽可能的把计算推到用户的浏览器端

考察一下典型的用户使用方式,把查找车次,时间的功能推到用户端。

比如,如3而言,如果北京到上海的票务信息,即使是不同的日期,都在一个数据库上,那可以考虑在查一个日期的时候(记得日期列要加index哦)顺便把左右2天的都给找出来,select … where T=X 和seleect … where T=X or T=X-1 or T=X+1对数据库的资源消耗是没有什么区别的。

7、排上之后发短信通知

最后还是吐槽一点,就算现在用了很低俗的用户排队方法!

排到之后给人发短信通知,不要期待大家盯着屏幕啊!有没有,至少在窗口排队的时候到了我没反应窗口大妈还会吼我滴!

马海祥博客点评:

众所周知,12306网站推出以来出现多次“瘫痪”,不可否认,网站“瘫痪”的原因之一是短期访问量过大,例如,去年春运期间日均访问量最高时达十几亿次,但是,访问量过大并不是网站“瘫痪”的唯一原因,网站自身建设存在缺陷也是主要原因,而要提高网站服务质量,加大资金投入、更新技术和设备是必不可少的,问题是:已经投入的资金(5亿人民币)有没有达到想要的效果?

本文为马海祥博客原创文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/jrht/106.html,注明出处;否则,禁止转载;谢谢配合!

相关热词搜索: 12306网站 史上最牛网站 12360 十宗罪 开发建议

上一篇:未来10年内API是否会让网站逐渐消亡?
下一篇:深度探索互联网页面价值到底有多大作用?

今日话题更多>

SEO研究院 更多 >>