我给12306提优化建议之缓存ajax请求

月影又无痕 发布于 2014/01/09 15:50
阅读 1K+
收藏 2

12306查询车次列表中,点击车次,会列出些车次对应的时刻表。

对固定的车次,其时间表是固定的,是可能缓存的,12306采取的是ajax+json实现的。但不幸的是12306并没有缓存车次时刻表,这将导致每次显示时刻表时,CDN Server不得不回源, 这对CDN来说,不仅没带来加速效果,而且严重浪费其性能。对12306这种规模网站的任何一个优化,将产生相当大的优化效果。

也就是说:

1. 不同用户,点击同一个车次时刻表,其响应应该是由CDN提供,而不需要穿透回源。

2. 如果同一个用户,第二次点击某个车次时刻表,返回状态应该是304才对。

先看图:


从这处图中,我们可以看到 12306使用的java jboss开发,并且此动态请求穿透了cdn节点(没有设置任何缓存header)。

如果将时刻表缓存起来,有以下好处:

1. CDN节点对此请求不需要回源,其性能更好,响应速度会提高。

2. 降低了源站的负载

3. 提升用户体验

加载中
0
淘淘我的小宝宝
淘淘我的小宝宝
 时刻表的数据应该变动不是太频繁吧。楼主提的意见政府是不会采纳的
0
蘑菇喵
蘑菇喵
解决了自动抢票的问题  应该会好买一点了
0
Mr_Zhou
Mr_Zhou
谁没事去看时刻表?都是看有没有票好不?
0
wwwjjj
wwwjjj

同意楼主

获取时刻表的请求数量相对应该很少  不过   蚂蚁腿那也是肉啊 

一点点优化,  规模上去后 , 也可能有不错的效果

0
南湖船老大
南湖船老大

12306目前的硬件和网络配置不需要多大优化,12306的性能已经够了。我昨天成功的买到了两张票,很顺利,而且很多人都通过12306买到票了。在有这么多刷票软件的情况下,面对数倍于正常情况的请求,延迟还没高到不可接受的地步。最高的延迟是支付成功后的跳转确认,要15-20秒左右。这说明技术上的问题已经不大了

当然,能优化一点是一点。做12306的公司还属于传统软件公司,思维僵化,很多地方确实离业界差的太远

12306的问题是货源供不应求和国人贪利、素质低下(黄牛党),这才是根本问题。

熊猫与猫无关
熊猫与猫无关
回复 @wangxigui : 北京地区的找个电信手机放票的点一到了立马打电话买票,网络有缓存你刷出来那个按钮的时候电话已经放了一会票了,联通用户那个时候会网络忙不太好拨进去
wangxigui
wangxigui
不知你买的是哪一趟车,我只想说我们2-3个人抢了4天的高铁票,屁都没捞着。对于京广这一条线上的火车来说,抢票不是一般的难!!虽然12306可能是已经不错了,但是还是要解决黄牛的问题,这几天我已深刻感受到了黄牛的力量!
0
宏哥
宏哥

引用来自“南湖船老大”的答案

12306目前的硬件和网络配置不需要多大优化,12306的性能已经够了。我昨天成功的买到了两张票,很顺利,而且很多人都通过12306买到票了。在有这么多刷票软件的情况下,面对数倍于正常情况的请求,延迟还没高到不可接受的地步。最高的延迟是支付成功后的跳转确认,要15-20秒左右。这说明技术上的问题已经不大了

当然,能优化一点是一点。做12306的公司还属于传统软件公司,思维僵化,很多地方确实离业界差的太远

12306的问题是货源供不应求和国人贪利、素质低下(黄牛党),这才是根本问题。

你有时候还是有脑子的
0
YuKunYi
YuKunYi
时刻表看的人确实不多,不过能减轻点服务器压力也不错~~
0
Smile月光
Smile月光
数据变动频繁,这种方式不采用,之前的项目有搞过
返回顶部
顶部