首页 > 其他分享 >带你分析 12306 系统设计

带你分析 12306 系统设计

时间:2023-12-22 20:00:56浏览次数:31  
标签:余票 4.1 记录 系统 12306 高峰期 淘宝 设计 座位

1 业务复杂度高于淘宝

1.1 动态库存

上海-南京-北京:

  • 买上海-北京,就是一张票
  • 买上海-南京,南京-北京,就是两张票

1.2 选座功能

下完单还能选座位

1.3 线上+线下

淘宝只能线上。

1.4 不停刷票

即使没票了,还是会被刷。持续高并发业务,需要更综合的高并发设计。

1.5 杜绝超卖

2 业务量

  • 2020年高峰期:一天的请求量大概1600亿,平均180万/s
  • 平均一年售出30亿张,高峰期日售票能力达到了2000万张
  • 高峰期1秒可卖出1300张票。淘宝双11: 58万笔/秒

3 解决系统忙

3.1 提高处理能力: QPS和TPS

  • 堆积硬件
  • 软件:Gemfire 商业软件分布式内存数据库
  • 算法:模型、逻辑

3.2 削峰

  • 业务:验证码、分时段、排队(反正最后能买到就行,我等得起)
  • 技术:限流、异步

4 模型设计+逻辑实现

4.1 余票查询

记录站站余票。一列火车有5个站,可拆分成4+3+2+1=10条站站记录。

将卖票变成01二进制数的计算

4.2 座位购买

记录座位销售详情。

一列火车有5个站A~E,1号座位: 0111(参照 4.1 最后的销售详情值),代表只剩A~B可买。

上面两步要保证事务性。

标签:余票,4.1,记录,系统,12306,高峰期,淘宝,设计,座位
From: https://blog.51cto.com/JavaEdge/8938025

相关文章

  • linux系统僵尸进程处理
    查看僵尸进程[root@mac-25~]#toptop-19:04:11up177days,23:58,2users,loadaverage:15.18,21.64,22.02Tasks:1791total,2running,1347sleeping,0stopped,43zombie%Cpu(s):30.7us,5.9sy,0.0ni,57.7id,0.3wa,0.9hi,4.4si,0......
  • PHP医院手术麻醉系统源码,与HIS系统无缝对接,自动采集相关数据,生成医疗文书
    手术麻醉系统源码包括两大部分,手术管理和麻醉管理。1. 手术管理手术管理主要包括手术申请、手术安排、术中相关工作、手术室相关工作。手术安排:手术室安排、手术护士安排等。术中相关工作:器械清点、术中护理记录等。手术室相关工作:人员排班、工作量统计、手术时间统计等。同时,还可......
  • 外行如何理解弱电工程的综合布线系统?这篇讲的很通俗简单
    综合布线系统,简单的说,就是把一堆多用途杂乱的线,在一栋建筑里有序、规范、安全的布设。传统的综合布线系统主要实现计算机网络通信和电话语音通信。慢慢来,我帮大家梳理梳理。先说网络布线。电脑上网,网线连接在哪里?举个例子,你上班的电脑需要上网,两种方法:一种是你连接网线,一种是你......
  • 高级程序设计语言
    1.Java语言概述1.1Java与c++的区别Java中对内存的分配是动态的,C语言通过malloc()和free()这两个库函数来分别实现分配内存和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存。Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变......
  • 软件顶层设计思路
    1、有限状态机模型有限状态机(FiniteStateMachine,FSM)是一种数学模型,用于描述系统或程序的行为。它由一组状态、转移条件和动作组成,可以根据输入信号的变化在不同的状态之间进行转移。有限状态机模型通常包括以下几个要素:状态(State):表示系统或程序可能处于的不同状态。每个状......
  • 在注册表中设置用户或系统环境变量的值
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788......
  • 哪里有拖拽表单设计器?
    用什么样的方式方法可以提高办公协作效率?很多客户朋友了解到拖拽表单设计器是一种可以满足日益递增业务需求的平台,都在询问哪里有拖拽表单设计器?在新的发展形式下,低代码技术平台是助力实现流程化办公的得力助手,其核心功能表单设计器也能快速提升90%办公协作效率,创造可观价值。什......
  • javaweb中的设计模式
    1.监听器基于观察者模式。1.myTestEvent自定义事件。被观察者publicclassMyTestEventextendsApplicationEvent2.MyNoAnnotationListener自定义监听器。观察者@ComponentpublicclassMyNoAnnotationListenerimplementsApplicationListener<MyTestEvent>{@Override......
  • RuoYi若依后台管理系统
    安装https://doc.ruoyi.vip/ruoyi/document/hjbs.html1、提前准备好环境JDK>=1.8(推荐1.8版本)Mysql>=5.7.0(推荐5.7版本)Maven>=3.0(可以IDEA导入项目的时候自动下载)2、前往Gitee下载页面(https://gitee.com/y_project/RuoYi(opensnewwindow))下载解压到工作目......
  • 农牧业远程运维联网监控预警系统解决方案
    当前,我国农牧业稳步发展,产业结构不断调整、优化,许多企业力图实现生产管理水平的标准化、数字化、信息化的转型升级。对正在转型升级的企业而言,不仅生产要变得高效,管理运营也要更加智慧。通过物联网、云计算、大数据、5G、人工智能等技术,着力在制造业数字化、生产运维数字化等方面,持......