开发者社区> 问答> 正文

我给12306提优化建议之缓存ajax请求? 400 报错

我给12306提优化建议之缓存ajax请求? 400 报错

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

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

也就是说:

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

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

先看图:


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

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

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

2. 降低了源站的负载

3. 提升用户体验

展开
收起
爱吃鱼的程序员 2020-05-30 22:41:57 592 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

     时刻表的数据应该变动不是太频繁吧。楼主提的意见政府是不会采纳的######解决了自动抢票的问题  应该会好买一点了######谁没事去看时刻表?都是看有没有票好不?######

    同意楼主

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

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

    ######

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

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

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

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

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

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

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

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

    你有时候还是有脑子的
    ######时刻表看的人确实不多,不过能减轻点服务器压力也不错~~###### 数据变动频繁,这种方式不采用,之前的项目有搞过
    2020-05-31 13:05:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载