火车票订票系统的几点优化思考

简介: 今天刚和选哥讨论这个铁道部新搞的什么网上售票系统,非常之难登陆,昨天我登了一上午才挤上去买了一张票,和在火车站排队有什么区别~,无奈中国人口之多,在哪都要排队,网上也逃厄运,于是我开始抱怨铁道部设计的购票系统,偶然发现...

今天刚和选哥讨论这个铁道部新搞的什么网上售票系统,非常之难登陆,昨天我登了一上午才挤上去买了一张票,和在火车站排队有什么区别~,无奈中国人口之多,在哪都要排队,网上也逃厄运,于是我开始抱怨铁道部设计的购票系统,偶然发现网上一篇文章志同道合,于是摘之如下:

一、场景分析

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

目录
相关文章
|
6月前
|
数据挖掘 黑灰产治理
排队免单商城系统开发详细案例/方案项目/源码指南
排队免单商城系统开发设计是指开发一种商城系统,其中用户可以通过排队活动获得商品免单的机会。
dapp预约抢单排单互助系统开发逻辑详细/功能说明/案例分析/方案规则/源码出售
Allow users to register accounts and verify their identities to ensure that the identities of participants are valid and authentic.
|
6月前
|
小程序 JavaScript Java
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
213 0
|
6月前
|
小程序 安全 JavaScript
超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)
超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)
69 0
|
6月前
|
人工智能 机器人 测试技术
【C++面向对象】C++飞机购票订票系统(源码+说明)【独一无二】
【C++面向对象】C++飞机购票订票系统(源码+说明)【独一无二】
182 0
|
6月前
|
安全 BI 定位技术
同城校园外卖跑腿系统开发规则详细/需求步骤/案例设计/功能逻辑/源码版
同城校园外卖跑腿系统是为满足校园内用户对食品和商品的快速配送需求而设计的一种服务平台。
|
6月前
|
Java 关系型数据库 MySQL
基于servlet+jsp实现的电影院订票系统分前后台
基于servlet+jsp实现的电影院订票系统分前后台
|
存储 安全 前端开发
DApp公排互助预约抢单排单模式系统开发参考版/详细流程/方案逻辑/规则玩法/案例设计/源码程序
需求分析:与团队明确系统的需求、目标和范围,包括公排互助预约抢单排单模式系统的功能、规则、奖励机制等方面
|
Java 应用服务中间件 数据库
电商促销后台设计,写得太好了!
电商促销后台设计,写得太好了!
304 0
电商促销后台设计,写得太好了!
|
数据库
竞拍溢价系统开发源码逻辑解析
由于竞拍溢价系统的开发涉及具体业务场景和开发语言,因此无法提供通用的竞拍溢价系统开发源码demo。不过,我可以提供一些竞拍溢价系统开发的基本思路和步骤: