12306 技术架构解密:高并发购票系统的分库分表、搜索与下单方案

课程介绍

这门课以 12306 购票系统为样本,讲高并发场景下的整体技术方案。第一章先看 12306 面临的难题和系统架构图,用 Docker 搭建环境,讲 MyCat 的分片策略、原理、配置、容器部署与基于 HAProxy、Keepalived 的集群方案,再完成数据库表结构、系统初始化、基于雪花算法的数据生成,并接入 Nacos 统一配置中心。

第二章解决海量数据搜索:讲数据同步的背景与架构,RabbitMQ 集群原理、搭建、节点类型、消息可靠性、镜像队列和负载均衡,同步数据的生产者与消费者;再搭 Redis 集群缓存座位和乘车计划数据,搭建 ES 集群与 IK 分词器并同步数据,实现搜索工程,配置 Nginx 反向代理与计数器、漏桶、令牌桶等限流方案,用 JMeter 测试,并处理搜索前端的跨域与精度丢失问题。

第三章讲用户下单方案:传统下单架构、订单服务的预扣库存与订单数据构建、更新 ES 库存,订单处理服务(MySQL 主从与双主双从部署、MyCat 读写分离、保存订单),短信服务,延迟队列与死信队列回退库存等下单优化,以及订单查询接口和排队方案。

网盘说明:本课程为百度网盘资源。压缩包需要解压密码,购买后在下载区查看。

课程目录

第一章 后台数据管理方案:Docker、MyCat 分库分表与 Nacos
1 12306技术架构解密-大纲介绍
2 后台数据管理-课程背景介绍
3 12306系统所面临的难题
4 12306系统架构图和技术架构图
5 docker的安装
6 docker阿里云镜像配置
7 docker测试
8 docker容器创建固定ip地址
10 mycat的基本介绍
11 mycat的分片策略和核心概念
12 mycat的原理
13 mycat的下载与目录结构的介绍
14 配置文件-server
15 配置文件-schema
16 配置文件rule
17 Docker部署mycat
18 使用Docker创建mysql临时容器
19 使用Docker创建mysql的最终容器
20 mycat的配置
21 mycat的测试
22 mycat集群基于haproxy的代理方案介绍
23 mycat集群基于haproxy的代理方案部署
24 mycat集群的第二种方案基于HAProxy和kee
25 mycat集群第二种方案-haproxy的部署
26 mycat集群第二种方案-在HAproxy容器中安
27 为什么需要在宿主机上安装keepalived软
28 在宿主机上安装keepalived软件
9 海量数据的存储方案
29 12306的列车类型以及座位类型介绍
30 数据库表结构介绍
31 数据库表的mycat配置说明
32 mycat的配置实现-mysql容器创建
33 mycat配置
34 系统初始化
35 数据生成-实现思路说明
36 雪花算法的介绍
37 生成数据-代码结构搭建
38 数据生成-业务代码实现
39 Nacos统一配置中心介绍
40 nacos集群的搭建
41 微服务接入nacos配置中心

第二章 海量数据搜索方案:RabbitMQ、Redis、ES 与搜索实现
1 今日内容
2 数据同步的背景
3 数据同步架构介绍
4 Rabbitmq集群原理介绍
5 rabbitmq集群之rabbitmq容器创建
6 Rabbitmq集群搭建之集群的配置
7 Rabbitmq集群节点类型
8 Rabbitmq集群测试-生产者代码实现
9 Rabbitmq集群测试之消费者代码实现
10 Rabbitmq保证消息可靠性(上)
11 Rabbitmq保证消息可靠性(中)
12 Rabbitmq保证消息可靠性(下)-原理介绍
13 Rabbitmq保证消息可靠性(下)-代码演示
14 镜像队列-简介
15 镜像队列-配置镜像队列
16 镜像队列-测试
17 具有负载均衡能力的Rabbitmq集群搭建
18 同步数据生产者-同步数据分析
19 同步数据生产者-代码实现(1)
20 同步数据生成者-代码实现(2)
21 同步数据生产者-代码实现(3)
22 同步数据生产者-代码实现(4)
23 同步数据消费者-获取同步数据
24 同步数据的代码测试
25 Redis集群-原理介绍
26 Redis集群-环境搭建(构建Redis镜像)
27 Redis集群-集群部署
28 Redis集群-环境搭建(集群配置)
29 Redis缓存数据-数据结构介绍
30 缓存数据-缓存座位数据到Redis中代码实现
31 缓存数据-同步乘车计划数据到Redis中
32 同步座位数据以及乘车计划数据到Redis中
33 ES集群-ES基础知识回顾
34 ES集群-ES集群相关概念
35 ES集群环境搭建-构建ES镜像
36 ES集群环境搭建-创建容器
37 kibana工具
38 ES集群测试
39 IK分词器-ES集群集成IK分词器
40 IK分词器-测试IK分词器
41 同步数据到ES中(上)
42 同步数据到ES中(中)
43 同步数据到ES中(下)
44 搜索实现-搜索架构介绍
45 搜索实现-搜索工程代码实现(上)
46 搜索实现-搜索工程代码实现(中)
47 搜索实现-搜索工程代码实现(下)
48 Nginx配置-Nginx反向代理的配置
49 Nginx限流配置-计数器限流算法
50 Nnginx限流配置-漏桶限流算法和令牌桶限
51 Nginx限流配置-访问频次的限流配置
52 Nginx限流配置-并发连接数限流配置
53 Nginx限流的测试-JMeter工具的使用
54 搜索前端-页面部署
55 搜索前端-跨域问题
56 搜索前端-js数据精度丢失问题
57 下单页面-初始化登录用户
58 下单页面-查询乘车计划详情数据(上)
59 下单页面-查询乘车计划详情数据(下)

第三章 用户的下单方案:订单服务、库存、短信与排队
1 传统用户下单方案-下单架构介绍
2 传统用户下单方案-订单服务-实体类定义
3 传统用户下单方案-订单服务实现-预扣库存
4 传统用户下单方案-订单服务实现-预扣减库
5 传统用户下单方案-订单服务实现-预扣减库
6 传统用户下单方案-构建订单数据
7 更新ES库存数据-架构介绍
8 更新ES库存数据-发送同步数据
9 更新ES库存-接收同步数据(上)
10 更新ES库存-接收同步数据(下)
11 预扣库存并且同步ES索引库库存数代码测试
12 发送订单数据-架构以及实现思路介绍
13 发送订单数据-代码实现
14 订单处理服务-获取消息队列中的订单数据
15 订单处理服务-订单数据库架构介绍
16 订单处理服务-MySQL主从复制原理介绍
17 MySQL一主一从介绍(一主一从配置)
18 MySQL一主一从介绍(一主一从测试)
19 MySQL一主一从介绍(MyCat读写分离配置)
20 MySQL双主双从介绍-双主双从部署(MySQ
21 MySQL双主双从介绍-双主双从部署(双主双
22 MySQL双主双从介绍-双主双从部署(双主双
23 MySQL双主双从介绍-双主双从部署(双主双
24 订单数据库部署
25 保存订单数据
27 短信服务-阿里大于介绍
28 短信服务-发送短信(生产者代码实现)
29 短信服务-发送短信(消费者代码实现)
30 短信服务-发送短信(代码测试)
31 回退库存-延迟队列以及流程介绍
32 回退库存-死信队列介绍
33 回退库存-死信队列测试
34 回退库存-生产者代码实现
35 回退库存-消费者代码实现
36 回退库存-代码测试
37 分布式锁-分布式锁基本介绍
38 分布式锁-zookeeper集群的搭建
39 分布式锁-zookeeper数据模型介绍(上)
40 分布式锁-zookeeper数据模型介绍(下)
41 分布式锁-zookeeper事件监听器(上)
42 分布式锁-zookeeper事件监听器(下)
43 分布式锁-zookeeper实现分布式锁的原理
44 分布式锁-分布式锁实现(上)
45 分布式锁-分布式锁实现(中)
46 分布式锁-分布式锁实现(下)
47 查询订单接口-架构介绍
48 查询订单接口-服务提供方(集成nacos)
49 查询订单接口-服务提供方(查询订单接口定
50 查询订单接口-服务消费放(查询订单接口定
51 查询订单接口-服务消费放(Feign基本使用)
52 查询订单接口-服务消费放(Feign远程调用
53 排队方案的用户下单-背景介绍
54 排队方案的用户下单-架构介绍
55 排队方案的用户下单-下单排队流程介绍
56 排队方案的用户下单-下单排队页面跳转流
57 排队方案的用户下单-下单排队接口定义
58 排队方案的用户下单-下单排队接口定义
59 排队方案的用户下单-订单服务修改(上)
60 排队方案的用户下单-订单服务修改(下)
61 排队方案的用户下单-下单排队信息查询接
62 排队方案的用户下单-Nginx反向代理配置
63 12306技术架构解密总结

配套资料
资料代码
课程资源

资源下载
下载价格35 学币
赞助终身VIP免费
常见问题
学币是什么?
1学币 = 1元人民币,可通过每日签到或赞助VIP获得!
如何购买更优惠?
推荐赞助VIP,赞助VIP后再购买超划算-购买会有折扣!(季/年VIP折扣购买,终身VIP免费)
资源能分享给别人吗?
本站资源仅限用于学习和研究目的,不得用于商业或者非法用途,否则,一切后果请用户自负!
遇到问题怎么办?
遇到问题直接点击页面右下角消息按钮联系客服反馈,会在第一时间处理!
0
显示验证码
没有账号?注册  忘记密码?