一、场景分析

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

转载于:https://my.oschina.net/abcijkxyz/blog/722076

火车票订票系统的几点优化思考相关推荐

  1. android生成车票动效,Android项目源码功能齐全的12306火车票订票系统项目

    [实例简介] 本项目是一个基于安卓的12306火车票客户端项目源码,实现了早期的登录注册购票改签等功能.但是因为12306网站改版比换鞋垫还频繁,所以功能早就不能用了,不过项目提供了大部分功能的原来实 ...

  2. (附源码)spring boot火车票订票系统 毕业设计171538

    火车票订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...

  3. 火车票订票系统(DEVC++)

    1.开发背景 火车票订票系统主要满足了用户对火车票信息的查询和订购需求,同时可以对火车车次信息和订票信息进行保存. 如何实现菜单的选择功能 如何将新输入的信息添加到存放火车票信息的链表中 如何输出满足 ...

  4. spring boot火车票订票系统 毕业设计-附源码171538

    火车票订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...

  5. 计算机vb售卖车票代码,学生火车票订票系统(vb)

    [实例简介] 火车票订票系统,东北大学程序实践二简单制作 [实例截图] [核心代码] 421661f3-2937-4510-8e24-83d386008387 └── 学生火车订票系统 └── 列车余 ...

  6. 基于python的火车票订票系统的设计与实现_火车票订票系统的开发与设计

    火车票订票系统的开发与设计 一.需求分析 1 .功能需求 本程序共有六大功能供客户使用  添加车次信息  车次信息查询  预订车票  车票信息更新  系统推荐车次  信息保存查询 2 .非 ...

  7. 12306火车订票系统谈网站架构优化

    转载于http://www.woshipm.com/it/3731.html 12306.cn网站挂了,被全国人民骂了.我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题.因为仓 ...

  8. Java 火车票订票系统

    架构:SSH 数据库:mysql 开发工具:eclipse/myeclipse 简介: 本文实现一个简单的java web火车票订票项目: 架构:SSH 数据库:mysql 开发工具:eclipse/ ...

  9. 数据结构课程设计之火车票订票系统实现(C语言/C++版本)

    课题描述 编制一个程序,火车票订票的业务活动包括:车次查询.订票.退票.用户管理等. 需求分析 用户信息包括用户姓名.身份证号.用户电话.用户所购列车号.订单号:列车信息包括:列车车站号.车票起点.车 ...

最新文章

  1. JavaScript数据类型
  2. LeetCode Flatten Nested List Iterator
  3. 文件服务器 双机,文件服务器双机备份
  4. CodeForces - 165E Compatible Numbers(SOSdp)
  5. JavaScript中的一些特殊用法(一)
  6. Docker最全教程——数据库容器化(十一)
  7. PowerShell挂起功能--Confirm参数
  8. 我是程序员,我有对象,我还可以调用别人对象!
  9. mysql linux64安装----转载
  10. Linux操作Oracle(2)——Oracle导出exp导出用户报错:EXP-00006: 出现内部不一致的错误 EXP-00000: 导出终止失败
  11. 去除img未加载到的默认边框问题
  12. java基础之String类型
  13. FPGA实战篇——【2】按键控制LED灯闪烁
  14. pythonallowpos_基于Python的诗和远方
  15. 物理层-计算机网络知识汇总(二)|Zam9036博客
  16. 虚拟服务器设置虚拟内存,vmware虚拟机关于内存的一项设置,可以提高你的虚拟机运行效能-虚拟内存怎么设置最好...
  17. SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
  18. 只有迷信的人,没有迷信的知识
  19. 会声会影2022测试新版本号V25.0.0.373
  20. python search用法,Python-re中search()函数的用法详解(查找ip)

热门文章

  1. python怎么让按钮透明,python – 有没有办法用Tkinter创建透明窗口?
  2. 50道JavaScript基础面试题(附答案)
  3. h5页面打开word文档ios_H5页面生成word文件及发送邮件
  4. 如何把jar打包成exe
  5. Fast Gradient Sign Attack(FGSM)算法小结
  6. 乐优购物学习笔记(15)
  7. jQuery 控制页面
  8. C语言之玩转指针(进阶)
  9. 在网页嵌入QQ+MSN+淘宝旺旺+Gtalk快速对话框官方代码的方法
  10. 娜迦:规范app市场 遏制恶意app的生存空间