高并发!一个仿 12306 铁路购票项目!

火影  金牌会员 | 2024-12-9 10:00:26 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 851|帖子 851|积分 2553

大家好,我是 Java陈序员。
现在出行,乘坐高铁可以说是十分方便。12306 作为一款全国通用的铁路购票体系,承受着这个天下上任何秒杀体系都无法逾越的 QPS, 上百万的并发再正常不外了!
今天,给大家介绍一个分布式、高可用的 12306 铁路购票开源项目。
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍

12306 —— 一个基于 JDK17 和 SpringBoot3 实现的铁路购票体系,包括会员、购票、订单、支付和网关等服务。
项目旨在让学习者可以快速掌握分布式体系计划的技巧,项目中包含了缓存、消息队列、分库分表、计划模式等代码,通过这些代码可以全面了解分布式体系的焦点知识点。
体系提供了两种版本:

  • SpringBoot 聚合服务版本:得当测试和部署,直接启动 aggregation-service 聚合服务和网关服务
  • SpringCloud 微服务版本:得当学习微服务计划,可以分别启动支付、订单、用户、购票和网关服务
技术栈

  • Spring Boot
  • SpringCloud Alibaba
  • SpringCloud Gateway
  • MyBatis-Plus
  • Redisson
  • RocketMQ
  • ShardingSphere
  • Vue
  • Ant Design Vue
项目截图


  • 车票查询

  • 购买车票

  • 车票付款

  • 个人信息

  • 乘车人

  • 订单管理

快速开始

环境搭建


  • 环境依赖

    • JDK17+
    • SpringBoot3
    • MySQL5.7
    • Redis
    • RocketMQ
    • Nacos
    • Node.js

  • 代码下载
  1. git clone https://github.com/nageoffer/12306.git
复制代码

  • 代码目次结构
  1. .
  2. ├── console-vue     -- # 前端工程
  3. ├── dependencies    -- # 依赖管理
  4. ├── frameworks      -- # 后端核心框架
  5. ├── resources       -- # 数据库资源
  6. ├── services        -- # 后端服务
  7. └── tests           -- # 测试工程
复制代码

  • 初始化数据库
1、创建数据库 12306
  1. CREATE DATABASE `12306` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
复制代码
2、执行 /resources/db/12306-{springboot or springcloud}.sql 初始化数据库
3、执行 /resources/data/12306-{springboot or springcloudxx}.sql 初始化数据
后端项目

1、将项目以 Maven 的形式导入到 IDEA 中
2、后端服务目次结构
  1. services
  2. ├── aggregation-service  -- # 聚合服务
  3. ├── gateway-service      -- # 网关服务
  4. ├── order-service        -- # 订单服务
  5. ├── pay-service          -- # 支付服务
  6. ├── ticket-service       -- # 购票服务
  7. └── user-service         -- # 用户服务
复制代码
聚合服务将订单、支付、用户以及购票体系进行了聚合,启动一个服务即可享受 12306 购票体系全部功能,减少当地启动内存压力以及服务器部署压力。
3、修改 services/aggregation-service/src/main/resources/application.yaml 配置文件中的 Redis、Nacos、RocketMQ 的连接信息
4、修改 services/aggregation-service/src/main/resources/shardingsphere-config-dev.yaml 配置文件中的 MySQL 的连接信息
5、运行 org.opengoofy.index12306.biz.aggregationservice.AggregationServiceApplication 主启动类,启动聚合服务
6、修改 services/gateway-service/src/main/resources/application.yaml 配置文件中的 Nacos 的连接信息
7、运行 org.opengoofy.index12306.biz.gatewayservice.GatewayServiceApplication 主启动类,启动网关服务
前端项目

1、进入前端工程项目
  1. cd console-vue
复制代码
2、安装依赖
  1. npm i
复制代码
3、启动服务
  1. npm run serve
复制代码
4、浏览器访问
  1. http://localhost:8080/
复制代码
默认用户名密码:admin/admin123456
12306 这个开源项目与其他传统“烂大街”的商城、外卖项目相比,业务更复杂、实现难度更大,更加具有学习意义。
如果你想更加体系地、深入地学习分布式体系,可以试试 12306 这个开源项目~
  1. 项目地址:https://github.com/nageoffer/12306
复制代码
最后

保举的开源项目已经收录到 GitHub 项目,接待 Star:
  1. https://github.com/chenyl8848/great-open-source-project
复制代码
大概访问网站,进行在线浏览:
  1. https://chencoding.top:8090/#/
复制代码

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表