{"repo":"nageoffer/12306","free":true,"listed":false,"github":"https://github.com/nageoffer/12306","clone":"git clone https://github.com/nageoffer/12306.git","description":"🔥 官方推荐 🔥 大学春招、秋招、应届项目，SpringBoot3 + Java17 + SpringCloud Alibaba + Vue3 等技术架构，完成高仿铁路 12306 用户 + 抢票 + 订单 + 支付服务，帮助学生主打就业的项目。","language":"Java","stars":3702,"topics":["elasticapm","elasticsearch","jdk17","nacos","prometheus","rocketmq","sentinel","springboot3","student-employment","grafana"],"license":"Apache-2.0","category":"analytics","readme_excerpt":"什么是 12306？ - 🧐 为什么 12306 铁路购票项目更适合校招：https://nageoffer.com/12306 - 🔥 12306 在线体验地址：http://12306.magestack.cn 12306 铁路购票服务是与大家生活和出行相关的关键系统，包括会员、购票、订单、支付和网关等服务。 这个项目旨在让学习者可以快速掌握分布式系统设计的技巧，尤其适合对高并发、分布式感兴趣的同学学习。如果想深入理解和应用分布式系统的设计原则，这个项目将会是一个很好的学习资源。 📢 新项目 Ragent AI（点击跳转） —— 企业级 Agentic RAG 项目，拿个 offer 社群在 AI 领域的首个开源作品。架构设计、代码实现保持一贯的高标准，适合写进校招/社招简历。毕竟现在哪家公司不关注 AI？ 12306 项目中包含了缓存、消息队列、分库分表、设计模式等代码，通过这些代码可以全面了解分布式系统的核心知识点。 为了方便大家学习，该系统提供了两种独立版本： - SpringBoot 聚合服务版本 ：适合测试和部署，可以直接启动 aggregation-service 聚合服务和网关服务。 - SpringCloud 微服务版本 ：适合学习微服务设计，可以分别启动支付、订单、用户、购票和网关服务。 根据自己的学习和使用需求，选择合适的版本启动即可。微服务版本侧重学习设计，聚合服务版本侧重测试和部署。请根据场景需要，选择正确的版本进行学习和使用。 技术架构 在系统设计中，采用最新 JDK17 + SpringBoot3&SpringCloud 微服务架构，构建高并发、大数据量下仍然能提供高效可靠的 12306 购票服务。 通过学习 12306 项目，不仅能了解其运作机制，还能接触最新技术体系带来的新特性，从而拓展技术视野并提升自身技术水平。 下方的架构图全面描述了项目的服务集合、组件库列表和基础设置层等要素，有助于用户快速了解 12306 平台的顶层设计和业务细节，从零到一进行构建。 加群沟通 开源不易，右上角点个 Star 鼓励一下吧！ 如果大家想要实时关注 12306 更新的文章以及分享的干货的话，可以关注我的公众号： 马丁玩编程 。 使用过程中有任何问题，或者对项目有什么建议，添加好友备注：12306，领取项目学习资料，和 2000+ 志同道合的朋友交流讨论。 项目质量怎么样？ 我理解大家对选择一个合适的项目以投入时间和精力的担忧。选对项目既可以锻炼技能，又可以产出价值是非常重要的。 以用户服务系统为例，低并发和低数据量的系统相对简单，但高并发和海量数据的系统则需要考虑很多额外因素。 1. 当用户在 12306 网站注册新账号或添加乘车人时，系统需验证用户提交信息的真实性和准确性。如何有效预防用户提交虚假信息，保障系统购票的安全？ 2. 12306 的大规模用户和乘车人数据如何选择分库分表？选择哪个字段作为分片键？如何在老业务上平滑上线分库分表？出现问题如何快速回滚？ 3. 系统支持会员使用用户名、手机号以及邮箱等多种方式进行登录。由于登录时无法确定用户的分片键，造成的“读请求扩散”问题如何解决？ 4. 在高并发的会员注册场景下，绝对会出现缓存穿透问题。网上鼓吹的对不存在 Key 进行缓存值设为 Null，以及布隆过滤器等都存在漏洞，如何解决？ 5. 存在较多的敏感信息，比如会员或者乘车人的姓名、手机号、邮箱、证件号码以及住址，如何防止数据库被攻击时造成的敏感信息泄露？ 再以购票服务为例，当用户购买两个乘车人的高铁一等座票且","default_branch":null,"files":null,"tree":[],"storefront":"/r/nageoffer","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nageoffer/12306/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}