Java-Interview-Advanced icon indicating copy to clipboard operation
Java-Interview-Advanced copied to clipboard

中华石杉--互联网Java进阶面试训练营

trafficstars

中华石杉--互联网Java进阶面试训练营

[original] [open-source-organization] [reading] [coding] [sharing] [stars] [forks] [contributors] [help-wanted] [issues] PRs Welcome

内容说明:

本仓库存放的是公众号【儒猿技术窝】和中华石杉老师合作的课程《互联网Java进阶面试训练营》的笔记,版权归儒猿技术窝所有,侵权将追究法律责任

训练营详细信息请关注公众号【儒猿技术窝】了解

公众号:儒猿技术窝

目录

  • 互联网Java面试指南
    • 备战面试
    • 常见面试题总结
    • 面经
  • 互联网Java面试突击第一季
    • 分布式消息队列
    • 分布式搜索引擎
    • 分布式缓存
    • 分库分表
    • 分布式锁
    • 分布式会话
    • 分布式事务
    • 分布式限流降级
    • 分布式服务框架Dubbo
  • 互联网Java进阶面试训练营
    • 第一季:分布式
    • 第二季:高并发
    • 第三季:微服务
    • 第四季:海量数据
    • 第五季:高性能
    • 第六季:高可用

面试指南

备战面试

常见面试题总结

面经

面试突击第一季

分布式消息队列

  • 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
  • 如何保证消息队列的高可用?
  • 如何保证消息不被重复消费?(如何保证消息消费的幂等性)
  • 如何保证消息的可靠性传输?(如何处理消息丢失的问题)
  • 如何保证消息的顺序性?
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。

搜索引擎

  • lucene 和 es 的前世今生
  • es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?
  • es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?
  • es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
  • es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?

分布式缓存

  • 在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?
  • Redis 和 Memcached 有什么区别?Redis 的线程模型是什么?为什么单线程的 Redis 比多线程的 Memcached 效率要高得多?
  • Redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
  • Redis 的过期策略都有哪些?手写一下 LRU 代码实现?
  • 如何保证 Redis 高并发、高可用?Redis 的主从复制原理能介绍一下么?Redis 的哨兵原理能介绍一下么?
  • Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
  • Redis 集群模式的工作原理能说一下么?在集群模式下,Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?如何动态增加和删除一个节点?
  • 了解什么是 redis 的雪崩、穿透和击穿?Redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 Redis 的穿透?
  • 如何保证缓存与数据库的双写一致性?
  • Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?
  • 生产环境中的 Redis 是怎么部署的?

分库分表

  • 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
  • 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
  • 如何设计可以动态扩容缩容的分库分表方案?
  • 分库分表之后,id 主键如何处理?
  • 如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?

分布式服务框架Dubbo

  • 面试连环炮
  • 如何设计一个高并发系统?
  • 说一下 Dubbo 的工作原理?注册中心挂了可以继续通信吗?
  • Dubbo 支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
  • Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
  • Dubbo 的 spi 思想是什么?
  • 如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试?
  • 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
  • 分布式服务接口请求的顺序性如何保证?
  • 如何自己设计一个类似 Dubbo 的 RPC 框架?手写rpc代码下载!
  • 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?

分布式锁

  • Zookeeper 都有哪些应用场景?
  • 使用 Redis 如何设计分布式锁?使用 Zookeeper 来设计分布式锁可以吗?以上两种分布式锁的实现方式哪种效率比较高?

分布式事务

分布式会话

  • 集群部署时的分布式 Session 如何实现?

分布式限流降级

  • Hystrix 介绍
  • 电商网站详情页系统架构
  • Hystrix 线程池技术实现资源隔离
  • Hystrix 信号量机制实现资源隔离
  • Hystrix 隔离策略细粒度控制
  • 深入 Hystrix 执行时内部原理
  • 基于 request cache 请求缓存技术优化批量商品数据查询接口
  • 基于本地缓存的 fallback 降级机制
  • 深入 Hystrix 断路器执行原理
  • 深入 Hystrix 线程池隔离与接口限流
  • 基于 timeout 机制为服务接口调用超时提供安全保护

面试突击第二季-分布式

  • 01、互联网大厂面试要求:技术广度、技术深度、系统设计以及项目经验
  • 02、Java工程师面试突击第一季总结:你离一次成功的面试还差多少?
  • 03、《21天互联网Java进阶面试训练营》的课程说明
  • 04、作业:系统分析一下,自己距离大厂offer差在哪里?
  • 05、感受一下BAT面试官对分布式技术的十几个面试连环炮!
  • 06、你们公司用的Dubbo?那你再额外说说Spring Cloud的核心架构原理?
  • 07、基于Dubbo和Spring Cloud分别搭建一个电商系统来快速体验一下!代码下载点击这里哦!
  • 08、作业:你们的系统使用了哪种服务框架?为什么要这样技术选型?
  • 09、看过Dubbo源码吗?说说Dubbo的底层架构原理?
  • 10、咱们来聊点深入的,说说Dubbo底层的网络通信机制原理!
  • 11、Dubbo框架从架构设计角度,是怎么保证极高的可扩展性的?
  • 12、作业:自己独立画出Dubbo的底层架构原理图
  • 13、如果让你设计一个RPC框架,网络通信、代理机制、负载均衡等该如何设
  • 14、平时除了使用外,有研究过Spring Cloud的底层架构原理么?
  • 15、从底层实现原理的角度,对比一下Dubbo和Spring Cloud的优劣!
  • 16、作业:自己独立画出Spring Cloud的架构原理图,RPC框架架构设计图!
  • 17、面试官:你们的服务注册中心进行过选型调研吗?对比一下各种服务注册中心!
  • 18、画图阐述一下你们的服务注册中心部署架构,生产环境下怎么保证高可用?
  • 19、你们系统遇到过服务发现过慢的问题吗?怎么优化和解决的?
  • 20、作业:说一下自己公司的服务注册中心怎么技术选型的?生产环境中应该怎么优化?
  • 21、你们对网关的技术选型是怎么考虑的?能对比一下各种网关技术的优劣吗?
  • 22、说说生产环境下,你们是怎么实现网关对服务的动态路由的?代码下载点击这里哦!
  • 23、如果网关需要抗每秒10万的高并发访问,你应该怎么对网关进行生产优化?
  • 24、作业:你们公司的网关是怎么技术选型的,假设有高并发场景怎么优化?
  • 25、如果需要部署上万服务实例,现有的服务注册中心能否抗住?如何优化?
  • 26、你们是如何基于网关实现灰度发布的?说说你们的灰度发布方案?代码下载点击这里哦!
  • 27、说说你们一个服务从开发到上线,服务注册、网关路由、服务调用的流程?
  • 28、作业:看看你们公司的服务注册中心能否支撑上万服务实例的大规模场景?
  • 29、画一下你们系统的整体架构图,说说各个服务在生产环境怎么部署的?
  • 30、你们系统每天有多大访问量?每个服务高峰QPS多少?压测过服务最大QPS吗?
  • 31、如果系统访问量比现在增加10倍,你们考虑过系统的扩容方案吗?
  • 32、作业:独立画出自己系统的生产部署架构图,梳理系统和服务的QPS以及扩容方案
  • 33、你们生产环境的服务是怎么配置超时和重试参数的?为什么要这样配置?代码下载点击这里哦!
  • 34、如果出现服务请求重试,会不会出现类似重复下单的问题?
  • 35、对于核心接口的防重幂等性,你们是怎么设计的?怎么防止重复下单问题?
  • 36、作业:看看自己系统的核心接口有没有设计幂等性方案?如果没有,应该怎么设计?
  • 37、画一下你们电商系统的核心交易链路图,说说分布式架构下存在什么问题?
  • 38、针对电商核心交易链路,你们是怎么设计分布式事务技术方案的?
  • 39、对于TCC事务、最终一致性事务的技术选型,你们是怎么做的?如何调研的?
  • 40、作业:你们公司的核心链路是否有事务问题?分布式事务方案怎么调研选型?
  • 41、在搭建好的电商系统里,落地开发对交易链路的TCC分布式事务方案
  • 42、你能说说一个TCC分布式事务框架的核心架构原理吗?
  • 43、现有的TCC事务方案的性能瓶颈在哪里?能支撑高并发交易场景吗?如何优化?
  • 44、作业:如果对自己的系统核心链路落地TCC事务,应该如何落地实现?
  • 45、你了解RocketMQ对分布式事务支持的底层实现原理吗?
  • 46、在搭建好的电商系统里,如何基于RocketMQ最终一致性事务进行落地开发?
  • 47、如果公司没有RocketMQ中间件,那你们如何实现最终一致性事务?
  • 48、作业:如果对自己的系统落地最终一致性事务,如何落地实现?
  • 49、你们生产系统中有哪个业务场景是需要用分布式锁的?为什么呢?
  • 50、你们是用哪个开源框架实现的Redis分布式锁?能说说其核心原理么?
  • 51、如果Redis是集群部署的,那么集群故障时分布式锁还有效么?
  • 52、作业:自己梳理出来Redis分布式锁的生产问题解决方案
  • 53、如果要实现ZooKeeper分布式锁,一般用哪个开源框架?核心原理是什么?
  • 54、对于ZooKeeper的羊群效应,分布式锁实现应该如何优化?
  • 55、如果遇到ZooKeeper脑裂问题,分布式锁应该如何保证健壮性?
  • 56、作业:自己梳理出来ZooKeeper分布式锁的生产问题解决方案
  • 57、在搭建好的电商系统中,落地开发分布式锁保证库存数据准确的方案
  • 58、你们的分布式锁做过高并发优化吗?能抗下每秒上万并发吗?
  • 59、淘宝和京东的库存是怎么实现的?能不能不用分布式锁实现高并发库存更新?
  • 60、作业:自己系统的分布式锁在高并发场景下应该如何优化?
  • 61、互联网Java工程师面试突击前两季总结以及下一季的规划展望
  • 优秀作业

第三季

开篇词

  • 01、先一起来看看阿里、美团、滴滴、京东等一线大厂的面试真题

  • 02、面试突击第一季、第二季以及第三季各自的侧重点是什么?

  • 03、来看几个并发、JVM和MySQL的面试连环炮

  • 04、学习完三季面试突击课程之后,你能拿下什么样的Offer?

  • 05、除了学习面试突击课程之外,为了面试你还应该做哪些准备呢?

Java集合包

  • 06、为什么在Java面试中一定会深入考察HashMap?

  • 07、你知道HashMap底层的数据结构是什么吗?

  • 08、JDK 1.8中对hash算法和寻址算法是如何优化的?

  • 09、你知道HashMap是如何解决hash碰撞问题的吗?

  • 10、说说HashMap是如何进行扩容的可以吗?

Java并发编程

  • 11、BAT面试官为什么都喜欢问并发编程的问题?

  • 12、说说synchronized关键字的底层原理是什么?(基础篇)

  • 13、能聊聊你对CAS的理解以及其底层实现原理可以吗?(基础篇)

  • 14、ConcurrentHashMap实现线程安全的底层原理到底是什么?

  • 15、你对JDK中的AQS理解吗?AQS的实现原理是什么?

  • 16、说说线程池的底层工作原理可以吗?

  • 17、那你再说说线程池的核心配置参数都是干什么的?平时我们应该怎么用?

  • 18、如果在线程中使用无界阻塞队列会发生什么问题?

  • 19、你知道如果线程池的队列满了之后,会发生什么事情吗?

  • 20、如果线上机器突然宕机,线程池的阻塞队列中的请求怎么办?

  • 21、谈谈你对Java内存模型的理解可以吗?

  • 22、你知道Java内存模型中的原子性、有序性、可见性是什么吗?

  • 23、能聊聊volatile关键字的原理吗?

  • 24、你知道指令重排以及happens-before原则是什么吗?

  • 25、volatile底层是如何基于内存屏障保证可见性和有序性的?

Spring

  • 26、说说你对Spring的 IOC 机制的理解可以吗?

  • 27、说说你对Spring的AOP机制的理解可以吗?

  • 28、了解过cglib动态代理吗?他跟jdk动态代理的区别是什么?

  • 29、额外加餐:能说说Spring中的Bean是线程安全的吗?

  • 30、Spring的事务实现原理是什么?能聊聊你对事务传播机制的理解吗?

  • 31、额外加餐:能画一张图说说Spring Boot的核心架构吗?

  • 32、额外加餐:能画一张图说说Spring的核心架构吗?

  • 33、能说说Spring中都使用了哪些设计模式吗?

  • 34、额外加餐:能画一张图说说Spring Web MVC的核心架构吗?

  • 35、额外加餐:能画一张图说说Spring Cloud的核心架构吗?

JVM

  • 36、JVM中有哪几块内存区域?Java 8之后对内存分代做了什么改进?

  • 37、你知道JVM是如何运行起来的吗?我们的对象是如何分配的?

  • 38、说说JVM在哪些情况下会触发垃圾回收可以吗?

  • 39、说说JVM的年轻代垃圾回收算法?对象什么时候转移到老年代?

  • 40、说说老年代的垃圾回收算法?常用的垃圾回收器都有什么?

  • 41、你们生产环境中的Tomcat是如何设置JVM参数的?如何检查JVM运行情况?

  • 42、你在实际项目中是否做过JVM GC优化,怎么做的?

  • 43、你知道发生OOM之后,应该如何排查和处理线上系统的OOM问题?

网络

  • 44、你能聊聊TCP/IP四层网络模型吗?OSI七层网络模型也说一下!(上)

  • 45、你能聊聊TCP/IP四层网络模型吗?OSI七层网络模型也说一下!(中)

  • 46、你能聊聊TCP/IP四层网络模型吗?OSI七层网络模型也说一下!(下)

  • 47、浏览器请求www.baidu.com的全过程大概是怎么样的?(上)

  • 48、浏览器请求www.baidu.com的全过程大概是怎么样的?(下)

  • 49、画一下TCP三次握手流程图?为啥是三次而不是二次或者四次呢?

  • 50、聊聊HTTP协议的工作原理!

  • 51、聊聊HTTPS的工作原理?为啥用HTTPS就可以加密通信?

  • 52、聊聊http的长连接的工作原理到底是啥?

  • 53、MySQL、MyISAM和InnoDB存储引擎的区别是啥?(上)

  • 54、MySQL、MyISAM和InnoDB存储引擎的区别是啥?(下)

  • 55、聊聊MySQL的索引实现原理?各种索引你们平时都怎么用的?(上)

  • 56、聊聊MySQL的索引实现原理?各种索引你们平时都怎么用的?(下)

MySQl

  • 57、你能说说事务的几个特性是啥?有哪几种隔离级别?(上)

  • 58、你能说说事务的几个特性是啥?有哪几种隔离级别?(下)

  • 59、你能说说MySQL数据库锁的实现原理吗?如果死锁了咋办?

  • 60、MySQL的SQL调优一般都有哪些手段?你们一般怎么做?

  • 61、聊聊Socket的工作原理?Socket跟TCP IP之间是啥关系?

  • 62、进程间是如何通信的?线程间又如何切换呢?

  • 63、你能聊聊BIO、NIO、AIO分别都是啥?有什么区别?(上)

  • 64、你能聊聊BIO、NIO、AIO分别都是啥?有什么区别?(下)

线上生产实践

  • 65、线上服务器CPU 100%了!该怎么排查、定位和解决?

  • 66、线上机器的一个进程用kill命令杀不死该怎么办?磁盘空间快满了又该怎么处理?

JAVA并发(高阶部分)

后续深入硬件级讲解volatile、synchronized、CAS底层原理的说明

  • 67、再谈原子性:Java规范规定所有变量写操作都是原子的

  • 68、32位Java虚拟机中的long和double变量写操作为何不是原子的?

  • 69、volatile原来还可以保证long和double变量写操作的原子性

  • 70、到底有哪些操作在Java规范中是不保证原子性的呢?

  • 71、可见性涉及的底层硬件概念:寄存器、高速缓存、写缓冲器(上)

  • 72、可见性涉及的底层硬件概念:寄存器、高速缓存、写缓冲器(下)

  • 73、深入探秘有序性:Java程序运行过程中发生指令重排的几个地方

  • 74、JIT编译器对创建对象的指令重排以及double check单例实践

  • 75、现代处理器为了提升性能的指令乱序和猜测执行的机制!

  • 76、高速缓存和写缓冲器的内存重排序造成的视觉假象

  • 77、synchronized锁同时对原子性、可见性以及有序性的保证

  • 78、深入分析synchronized是如何通过加锁保证原子性的?

  • 79、synchronized是如何使用内存屏障保证可见性和有序性的?

  • 80、再看volatile关键字对原子性、可见性以及有序性的保证

  • 81、高速缓存的数据结构:拉链散列表、缓存条目以及地址解码(上)

  • 82、高速缓存的数据结构:拉链散列表、缓存条目以及地址解码(下)

  • 83、结合硬件级别的缓存数据结构深入分析缓存一致性协议(上)

  • 84、结合硬件级别的缓存数据结构深入分析缓存一致性协议(下)

  • 85、采用写缓冲器和无效队列优化MESI协议的实现性能

  • 86、硬件层面的MESI协议为何会引发有序性和可见性的问题?

  • 87、内存屏障在硬件层面的实现原理以及如何解决各种问题

  • 88、在复杂的硬件模型之上的Java内存模型是如何大幅简化的?

  • 89、面试的时候如何从内存屏障、硬件层面的原理来震慑面试官

  • 90、Java虚拟机对锁的优化:锁消除、锁粗化、偏向锁、自旋锁(上)

  • 91、Java虚拟机对锁的优化:锁消除、锁粗化、偏向锁、自旋锁(下)

系统安全性

  • 92、再来看看CAS是如何基于MESI协议在底层硬件层面实现加锁的?

  • 93、为什么越来越多的公司面试的时候,喜欢问安全相关的连环炮?

  • 94、能不能说说一般黑客常用的XSS网络攻击的原理是什么?

  • 95、能不能说说我们经常听到的SQL注入攻击背后的原理是什么?

  • 96、听说过CSRF攻击吗?你知道他背后的原理是什么吗?

  • 97、如果你们的系统允许用户上传文件,可能会遭到什么样的黑客攻击?

  • 98、让所有工程师闻声色变的DDoS攻击到底是什么东西?

网络和IO

  • 99、基于SYN Flood模式的DDoS攻击,背后的原理是什么呢?

  • 100、再来看看基于DNS Query Flood和HTTP Flood的DDoS攻击

  • 101、在分布式架构中,Zuul网关是如何防止网络攻击的?

  • 102、一个对技术有追求的面试官,是怎么深挖网络与IO的面试连环炮的?

  • 103、Netty的架构原理图能画一下吗,他是如何体现Reactor架构思想的?

  • 104、能说说你对堆外内存的理解吗?堆外内存的优势在哪里?

  • 105、JDK是如何对堆外内存进行分配和回收的?会发生堆外内存溢出吗?

  • 106、如果不使用零拷贝技术,普通的IO操作在OS层面是如何执行的?

分布式架构

  • 107、听说过mmap吗?内存映射技术为什么可以提升IO性能?

  • 108、零拷贝技术到底是什么,他是如何提升IO性能的?

  • 109、一起来看一个难度升级之后的分布式架构面试连环炮

  • 110、你们的分布式系统是如何进行链路监控的?都监控什么?

  • 111、对分布式系统进行核心链路追踪的时候,链路id是怎么管理的?

  • 112、聊过两阶段提交了,那么分布式事务三阶段提交的思想能说一下吗?

  • 113、唯一id生成机制中的snowflake算法的时钟回拨问题如何解决?

  • 114、实施灰度发布的时候,网关是可以灰度了,可是Dubbo服务如何进行灰度呢?

  • 115、除了常见服务注册中心之外,你觉得Redis能作为服务注册中心吗?以及怎么做?

中间件系统

  • 116、我们一般到底用ZooKeeper来干什么事儿?

  • 117、有哪些开源的分布式系统中使用了ZooKeeper?

  • 118、为什么我们在分布式系统架构中需要使用 ZooKeeper 集群?

  • 119、ZooKeeper为了满足分布式系统的需求要有哪些特点?

  • 120、为了满足分布式系统的需求,ZooKeeper的架构设计有哪些特点?

  • 121、ZooKeeper集群的三种角色:Leader、Follower、Observer

  • 122、客户端与ZooKeeper之间的长连接和会话是什么?

  • 123、ZooKeeper的数据模型:znode和节点类型

  • 124、ZooKeeper最核心的一个机制:Watcher监听回调

  • 125、一个关键的问题:zk到底通过什么协议在集群间进行数据一致性同步?

  • 126、ZAB的核心思想介绍:主从同步机制和崩溃恢复机制

  • 127、从zk集群启动到数据同步再到崩溃恢复的ZAB协议流程

  • 128、采用了2PC两阶段提交思想的ZAB消息广播流程

  • 129、停一下脚步:ZooKeeper到底是强一致性还是最终一致性?

  • 130、ZAB协议下一种可能存在的数据一致性问题

  • 131、崩溃恢复时选举出来的Leader是如何跟其他Follower进行同步的?

  • 132、对于需要丢弃的消息是如何在ZAB协议中进行处理的?

  • 133、现在再来看看ZooKeeper的Observer节点是用来干什么的?

  • 134、ZooKeeper为什么只能是小集群部署?为什么适合读多写少场景?

  • 135、一清二楚:再次回头对ZooKeeper特性的总结

系统架构优化与设计

  • 136、一个身经百战的互联网面试官的系统设计优化连环炮发问!

  • 137、说说高并发场景下的数据库连接池应该如何进行优化?

  • 138、如果压测的时候发现系统的TPS不达标,此时应该如何优化系统?

  • 139、为什么有了HDFS之后,还需要HBase呢?

  • 140、到底为什么把 HBase 叫做NoSQL数据库呢?

  • 141、HBase作为一个NoSQL数据库,有哪些架构上的特点?(上)

  • 142、HBase作为一个NoSQL数据库,有哪些架构上的特点?(下)

  • 143、HBase作为NoSQL数据库,到底适用于哪些场景?

  • 144、HBase的数据模型是什么样的?(上)

  • 145、HBase的数据模型是什么样的?(下)

  • 146、HBase的物理存储格式:为啥说他是列式存储?

  • 147、假设让你来负责微信朋友圈这样的社交系统,应该如何设计?(上)

  • 148、假设让你来负责微信朋友圈这样的社交系统,应该如何设计?(下)

  • 149、微信朋友圈是如何对好友显示权限进行控制的?

  • 150、如何设计高并发的朋友圈点赞系统架构?

  • 151、关于重复点赞问题以及点赞查看时效性的方案设计

  • 152、ThreadLocal内存泄漏问题以及专栏最终总结

C2C电商系统微服务架构120天实战训练营

  • C2C电商系统微服务架构120天实战训练营

100讲带你实战基于Redis的高并发预约抢购系统

https://www.jianguoyun.com/p/DWwZ52oQtPiaCRjDg-AD (访问密码:ruyuan)