火车票订票系统的几点优化思考
一、场景分析
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
火车票订票系统的几点优化思考相关推荐
- android生成车票动效,Android项目源码功能齐全的12306火车票订票系统项目
[实例简介] 本项目是一个基于安卓的12306火车票客户端项目源码,实现了早期的登录注册购票改签等功能.但是因为12306网站改版比换鞋垫还频繁,所以功能早就不能用了,不过项目提供了大部分功能的原来实 ...
- (附源码)spring boot火车票订票系统 毕业设计171538
火车票订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...
- 火车票订票系统(DEVC++)
1.开发背景 火车票订票系统主要满足了用户对火车票信息的查询和订购需求,同时可以对火车车次信息和订票信息进行保存. 如何实现菜单的选择功能 如何将新输入的信息添加到存放火车票信息的链表中 如何输出满足 ...
- spring boot火车票订票系统 毕业设计-附源码171538
火车票订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...
- 计算机vb售卖车票代码,学生火车票订票系统(vb)
[实例简介] 火车票订票系统,东北大学程序实践二简单制作 [实例截图] [核心代码] 421661f3-2937-4510-8e24-83d386008387 └── 学生火车订票系统 └── 列车余 ...
- 基于python的火车票订票系统的设计与实现_火车票订票系统的开发与设计
火车票订票系统的开发与设计 一.需求分析 1 .功能需求 本程序共有六大功能供客户使用 添加车次信息 车次信息查询 预订车票 车票信息更新 系统推荐车次 信息保存查询 2 .非 ...
- 12306火车订票系统谈网站架构优化
转载于http://www.woshipm.com/it/3731.html 12306.cn网站挂了,被全国人民骂了.我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题.因为仓 ...
- Java 火车票订票系统
架构:SSH 数据库:mysql 开发工具:eclipse/myeclipse 简介: 本文实现一个简单的java web火车票订票项目: 架构:SSH 数据库:mysql 开发工具:eclipse/ ...
- 数据结构课程设计之火车票订票系统实现(C语言/C++版本)
课题描述 编制一个程序,火车票订票的业务活动包括:车次查询.订票.退票.用户管理等. 需求分析 用户信息包括用户姓名.身份证号.用户电话.用户所购列车号.订单号:列车信息包括:列车车站号.车票起点.车 ...
最新文章
- JavaScript数据类型
- LeetCode Flatten Nested List Iterator
- 文件服务器 双机,文件服务器双机备份
- CodeForces - 165E Compatible Numbers(SOSdp)
- JavaScript中的一些特殊用法(一)
- Docker最全教程——数据库容器化(十一)
- PowerShell挂起功能--Confirm参数
- 我是程序员,我有对象,我还可以调用别人对象!
- mysql linux64安装----转载
- Linux操作Oracle(2)——Oracle导出exp导出用户报错:EXP-00006: 出现内部不一致的错误 EXP-00000: 导出终止失败
- 去除img未加载到的默认边框问题
- java基础之String类型
- FPGA实战篇——【2】按键控制LED灯闪烁
- pythonallowpos_基于Python的诗和远方
- 物理层-计算机网络知识汇总(二)|Zam9036博客
- 虚拟服务器设置虚拟内存,vmware虚拟机关于内存的一项设置,可以提高你的虚拟机运行效能-虚拟内存怎么设置最好...
- SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
- 只有迷信的人,没有迷信的知识
- 会声会影2022测试新版本号V25.0.0.373
- python search用法,Python-re中search()函数的用法详解(查找ip)