`

12306的优化思考

 
阅读更多

一、场景分析

1、平时访问量不高,但是春运几天会出现瞬间高峰

2、订单的事务性要求较高

3、全国开放,并且票数要精准

4、瞬间访问量大

 

二、调优可行性方案

1、数据层次

请使用oracle,在数据稳定性以及千万级别的数据量上还是比较有保障

  • 使用RAC来做数据库集群
  • 将订单按照天来做日期类型的表分区存储数据
  • 做主从库,将非关键性数据查询放到从库上
  • 提取计算规则比较复杂的逻辑放到timesten这类内存数据库上进行处理
  • 根据业务系统拆分数据库,尽量不要将所有业务放到一个库中

 

2、cache层次

  • 使用memcache之类的分布式cache一些字典表数据,减少数据库的查询次数
  • 做页面的cache缓存
  • 利用memache的原子性来做各个路线的票数增减服务。和数据库的操作做异步处理
  • 预先加载部分热点数据到cache中

3、前端处理

  • 将css以及js和图片使用CDN进行加速,独立域名部署
  • 减少图片加载量,以及图片的大小
  • 减少css和js文件的数量,同一类型尽可能压缩整合到一个文件中。当然那些开源的prototype或者jquery组件就不要整合了。
  • 将验证码调用采用触发方式,可以考虑单独部署验证码校验服务,不要和应用系统本身整合到一起

 

4、业务层次

  • 按照地区拆分业务系统部署
  • 将订单或者评论等业务拆分。达到录入和查询等业务分离
  • 系统间的业务交互用soa的方式来做通讯,达到松耦合并行处理
  • 如果有跨机房部署,预先分配各个机房业务资源。例如,基于各地买票量调整南北方机房系统的各自总票数
  • 分流人群,将不同的业务调整成为不同时间执行。对于不符合条件的预订和查询,直接转到友好提示页面

 

5、事务处理

按照业务进行事务处理,尽量不要做成一个大的事务,在业务流程设计上,尽量做到事务精简,逻辑严密。

例如:订票流程和支付流程作为两个业务。或者支付业务拆分成给账户充值+账户扣费两个逻辑

 

6、部署策略

针对南北机房做互通

各个系统应用集群

各个系统部署在相同网段,并用内网ip做host指向,减少网络压力

跨机房部署考虑预先分配调整资源方式

 

7、网络层次

控制各个应用系统节点的压力,当部分节点的用户量达到一定限额,将用户跳到友好页

 

8、防抓取爬虫

防止部分爬虫自动买票。对于单个ip做分析防范。发现后立即封锁ip

分享到:
评论

相关推荐

    酷壳网陈皓:由12306.cn谈谈网站性能技术

    本文作者更是从订票业务、前端性能优化技术、后端性能优化技术等全面的订票系统角度进行分析,并针对每一个具体问题给出可操作性强的解决办法建议。12306.cn网站挂了,被全国人民骂了。我这两天也在思考此事,想以...

    基于深度学习的12306验证码识别研究.zip

    基于深度学习的12306验证码识别研究 深度学习(Deep Learning,简称DL)是机器学习(Machine Learning,简称ML)领域中一个新的研究方向,其目标是让机器能够像人一样具有分析学习能力,识别文字、图像和声音等数据...

    基于深度学习的12306图片验证码识别.zip

    基于深度学习的12306图片验证码识别 深度学习(Deep Learning,简称DL)是机器学习(Machine Learning,简称ML)领域中一个新的研究方向,其目标是让机器能够像人一样具有分析学习能力,识别文字、图像和声音等数据...

    2016 火车票抢票软件源码

    总之,“2016火车票抢票软件源码”揭示了如何在技术上应对12306验证码的挑战,以及在抢票过程中如何优化策略以提高成功率。尽管抢票软件在一定程度上帮助了用户,但同时也引发了公平性问题。随着技术的发展,我们...

    OpenResty十年开源的历程和思考.pdf

    在未来的展望中,OpenResty可能会继续加强其在性能优化、安全性、以及易用性方面的发展,以满足更多用户的需求。 4. 创始人烙印:作为OpenResty的创始人温铭,他在互联网安全行业工作十年,经验涵盖了查杀木马、反...

    火车抢票软件

    【火车抢票软件】是一种利用自动化技术帮助用户更快更有效地获取火车票的工具。...在享受便利的同时,我们也应思考如何从制度和技术层面解决购票难的根本问题,如提升购票系统的承载能力,优化票务分配机制等。

    《自动化功能测试(selenium)》学生实验报告

    - **未来展望:** 在实际项目中如何进一步优化测试流程,提高测试效率。 通过本次实验,学生不仅深入了解了自动化测试的核心概念和技术,还具备了运用Selenium工具进行Web应用自动化测试的能力。这为今后在软件...

    软件测试技术,性能测试,性能测试概念,性能测试指标

    - **Case2: 12306订票系统**:2014年春运期间,12306网站因承受不住巨大的访问量而出现不稳定的情况。 - **Case3: 亚马逊官网瘫痪**:2014年华为手机P6在欧美热销导致亚马逊网站在当地出现瘫痪现象,不仅造成经济...

    互联网+时代下的架构转型

    以京东、淘宝、12306、携程网等为代表的互联网公司迅速崛起,伴随着这些公司的业务量激增,对技术架构提出了更高的要求。这些公司经历了从传统架构向互联网架构的转型,这是一个渐进且复杂的过程。 在转型过程中,...

Global site tag (gtag.js) - Google Analytics