春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的。当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可。但是,12306就不是那么简单了,具体复杂在
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!12306 抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306 服务”承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发再正常不过了!笔
转载
2023-11-15 22:29:26
166阅读
在刚刚过去的淘宝双11大促活动中,淘宝的技术支撑受到了网民的追捧。而12306火车票购票系统,逢假日必瘫痪,真是天上地下。12306为何如此烂?12306火车票购票系统,逢假日必瘫痪,引发了强烈反响。国庆前后,“问诊12306”的时候,铁道系统的答复是,购票人数太多,数据量过大。但是,在前不久淘宝双11大促活动中,淘宝双十一总交易金额191亿,订单1亿零580万笔,其中无线支付近900万笔,支付宝
转载
2023-10-24 23:01:47
176阅读
架构综述通过对12306业务系统的需求分析之后可以发现,架构设计主要要解决的问题有:数据库高并发读写、有效的容灾机制与系统高可用、数据的安全以及对虚拟化云计算的支持。为解决上述问题,本架构以混合云为云端架构,采用读写分离的分布式架构设计数据库,使用hadoop与openstack统筹算力资源并组织、管理集群,同时利用双活容灾机制保障系统的高可用。具体架构如下图所示:所用到的与产品主要包括三个层面
转载
2023-07-12 16:29:37
1998阅读
第一代架构:双机热备模式2011 年 6 月 12 日,系统投入试运行,发售京津城际 列车车票;2011 年 9 月 30 日,发售全路动车组车票;2011 年底,发售全路列车车票,互联网正式成为铁 路新的售票渠道。互联网售票系统设计了缓存服务、用户管理、车票查询、订单及电子客票处理 等多个相对独立的业务分区,以及三级网络安全域, 分别是外网、内网和客票网,系统的体系架构如图 所示:数据库的维度:
转载
2023-07-31 17:14:14
908阅读
春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的。当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可。但是,12306就不是那么简单了,具体复杂在哪里。123
转载
2023-07-13 17:12:29
146阅读
大型高并发系统架构高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等)保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。下边是一个简单的示意图:负载均衡简介上图中描述了用户请求到服务器经历了三层的负载均衡,下边分别简单介绍一下这三种负载均衡:1.OSPF(开放式最短链路优先)是一个内部网关协议(Inter
转载
2023-08-30 13:23:16
133阅读
升级的核心是余票查询的升级,余票查询使用存储过程,sybase数据库,结果悲剧了,业务并发性高时,不能横向扩展.
2012年 改造前的余票计算/查询子系统架构描述
1. 路局“实时”提供售票记录
火车票的席位销售是由每个路局规划和调控(铁路总公司共有18个路局), 而12306与每个路局是共享同一个“票库”。 换句话说,“线上”的12306是与“
作者: 绘你一世倾城12306 抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306 服务”承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构,学习
本人的工程实践项目是设计一个类似12306的网上售票系统,本文将分析该项目的同时对软件架构进行初步设计。项目信息题目基本要求参考12306站点进行售票系统建模设计,尽可能接近覆盖真实线上系统,实现的功能有但不限于:用户信息注册查询余票: 根据时间,车次,站点区间,座次(一等座,二等座,硬卧,硬座…)查询余票售票: 支持一次购买同一车次的多张车票(多人),支持订单30分钟内锁定,超时释放。支付接口可
转载
2023-07-10 22:58:56
1949阅读
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票! 12306 抢票,极限并发带来的思考 虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。 尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。 “12306 服务”承受着这个世界上任
转载
2023-09-07 10:39:53
60阅读
cn12306的设计思路,不依赖数据库=======现在还有不少人在讨论12306的设计,在这里写一个简单的设计思路1. 网站不是为了解决高峰期票少人多的问题,争论里总讨论这个话题没意义2. 排队机制不能到处套用,拿网游的常规做法来处理web不是很合适,应该最大限度提升系统的响应速度3. 最好的方式是开票后10分钟内热门车次票就被订光了,抢到票的高高兴兴去付钱,没抢到的骂骂咧咧想其他途径,早死早超
转载
2023-09-11 15:14:14
143阅读
铁道部旗下在线购票网站12306自诞生起就一直为人所诟病,网站经常崩溃、UI粗糙、漏洞满框,但这都不是什么新闻了,近日网友爆出12306的技术框架及其表结构,大家可以来一览究竟。下图是爆出的SQL语句,可以明显地看出其表结构,相信各位技术人员能够轻易地辨别出网站开发者的功底如何了吧。 SSH组合,根据这些漏洞可以很轻易地进行SQL注入,从而达到非法攻击或者盈利的目的。据了解,专业技术人士发现1
转载
2024-01-13 22:18:45
66阅读
1. 前言 本文在中科大软件学院孟宁老师的指导下完成,是一个基于对工程实践选题中的12306火车售票系统分析,从而进行数据库建模、接口设计等分析过程,最终形成概念原型的过程。 2. 项目介绍 该项目来自于学校与企业合作选题,意在模拟实现一个12306售票系统,尽可能覆盖真实线上系统,要求实现但不限于以下功能:用户信息注册查询余票售票退票改签 并在此基础上,对一些读写接口的延迟以及并
转载
2023-09-26 20:05:27
212阅读
关于12306网站和清华某院长的微博言论,我做了一个小回复,说这玩意不难,2个人2周,40台服务器可以搞定。 下面详细解释一下大概的思路。免费share一下,看看靠谱不靠谱。 别人看到的是流量,我先看结构,这里的数据结构是相当简单的,主要满足的需求是: 1.车次查询(最常见的是起点站,终点站查询 和车次直接输入查询)+余票显示 所谓的用户刷页面,绝大部分应该在这里。日均10亿pv(这个数字我
转载
2023-11-16 10:22:21
8阅读
1. 项目简介 本课题参考12306站点进行售票系统建模设计,实现一个类12306售票系统,尽可能接近覆盖真实线上系统,实现的功能有但不限于:用户信息注册查询余票:根据时间,车次,站点区间,座次(一等座,二等座,硬卧,硬座等)查询余票售票:支持一次购买同一车次的多张车票(多人),支持订单30分钟内锁定,超时释放退票:支持一个用户帐户下的批量退票改签:同一用户一张车票只能改签一次2. 软件架构
转载
2023-07-13 19:12:16
1919阅读
前言春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的。当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可。但是,12306就不是那么简单了,具体复杂在哪里,我
作者:绘你一世倾城 每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!12306 抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306 服务”承受着这个世界上任何秒杀系统都无法超越的 QPS
转载
2023-09-04 14:52:01
91阅读
在前面的文章里,12306票池架构探讨(一)和12306票池架构探讨(二)里大概说了下票池实现的思路和选用的数据结构(数据结构上还有些争议),主要的思想就是将整个票池放在内存里 – 整个数据库都在内存里。 关于票池的需求,请参看我的另一篇帖子:http://12306ng.org/thread-1682-1-1.html。 架构设计整个票池的架构如下图所示: 系统
转载
2023-10-11 14:59:17
104阅读
读了几篇有关12306架构设计的博客,在这里做下简单的总结:主要角色:用户 主要功能:查询剩余票数 售票一 分析业务 业务复杂点: 1 库存集中:所有登录的用户访问的都是数据中心的票据数据 2 复杂的业务逻辑:还有很多查询操作,查时间,查座位,查铺位,一个车次不 行,又查另一个车次,其伴随着大量的查询操作,下单的时候需要对数据库操作。另外,关于秒杀,完全可以做成只接受前N个用户的请求(完全不操
转载
2023-07-14 11:42:40
178阅读