1.工作小组
1.会员用户数据的存储->分群->营销推送
2.用户卷和促销卷的
3.小程序的制作
2.初试——2021.9.27
1.自我介绍
2. 讲一下kafka的架构
3. 说一下linux的常用命令
4. 说一下使用过的Git命令
5. 说一说ArrayList的底层源码、扩容机制,ArrayList和linkedList的区别使用场景
6. 主要问了一下面试上写的秒杀系统的一些问题
2.复试——2021.9.28
1.说一说秒杀系统的整体架构
2.有哪些你记忆比较深刻的点:
- 秒杀系统主要面临3个问题:1.瞬时流量高并发;2.物品超卖;3.分布式环境下的Id生成
- 用户信息表;用户密码表;商品表;库存表;订单信息表;秒杀信息表(Id;秒杀名称;开始时间;结束时间;秒杀价格;关联商品Id)
- 设计思想:单一职责,分库分表;
- 加入限流措施Sentinel(比如对短时间之内来自某一个用户,某一个IP、某个设备的重复请求做丢弃处理;或者某段时间的请求量超过阈值就限制流量的访问)
- Redis作为缓存进行数据预热,提前将热点数据的信息和库存加入缓存中,如果Redis还有库存,预减Redis库存(那么如何保证Redis在分布式并发环境下的安全性——>使用SetNX+Expire的方式保证安全性并不会发生死锁),并将下单请求加入消息队列,从消息队列中取消息:获取商品ID和用户ID,判断数据库库存,然后下单
- Kafka作为消息队列缓存订单请求(提供了一个异步通信机制,既可以提高并发量,又降低服务之间的耦合度)
- 如何防止超卖(Mysql的悲观锁机制select for update)
- 订单号的分布式Id的生成(雪花算法、UUID、Zookeeper的有序节点)



