(面试者的项目来自我的数藏项目实战课,更多项目亮点难点(50+),更详细的落地方案和讲解,可以在项目课中和我们一起学)
面试者背景
:::warning 今日**面试者:27届,有一段物联网实习,智能设别接入,文件导入导出,自定义规则校验,数藏项目(订单、交易、用户模块),MQ事务消息,redis预扣减,秒杀压测,对账,分布式技术栈。**
实习了多久?3个多月,
文件导入导出功能介绍下。EasyExcel,同一份文件**/**多份文件中有重复数据了,内存处理,去重怎么去的?
如果数据量很大,乜办法一次性导入内存,如何去重?
文件导入有用多线程吗?单线程读excel,多线程并发写数据库。占内存问题。
EasyExcel****有什么优势?
项目中还有其他的亮点么?规则校验?redis的key过期了,会如何处理?
Redis的内存如果满了,会怎么样?淘汰策略,LRU和LFU****有啥区别?
AOP****是如何实现切到一个自定义注解的?
数藏项目哪个模块最熟悉。交易模块和订单模块有啥关系和区别?为啥要搞个交易模块?编排了其他模块,用户、库存、订单。交易模块都提供了哪些方法?下单(秒杀**/**普通交易)、
交易和订单模块是不同的微服务,用dubbo通信,注册中心nacos。一个应用要接入dubbo,需要做哪些事情?导入依赖,
如何做订单防重?详情页生成token,并发情况下如何确保token只能用一次?用lua脚本,
Token如何防止伪造?加密。如何防止用户囤一批token刷下单接口?如何实现的一个用户+一个商品只能有一个token**?token的生成,用户id和商品id是前端传的么?**
下单防重还有其他方案么?前端置灰,购物车下单如何做防重?
订单的状态是怎么设计的?init、confirm、cancel、discard、paid。状态机是如何实现的?这样做的好处是什么?
订单号是怎么生成的?业务标识、随机数(雪花算法)、基因法。有没有重复的概率?概率低、
订单表的主键id是怎么生成的?为啥不直接用订单号?
分库分表了解么?单库多表,
项目中用过分布式锁?什么地方用了分布式锁。用户手机号分布锁避免短信重复发送?
分布式锁怎么实现的?redisson,lock,tryLock你用的哪个?redisson好处?看门狗机制,怎么实现的?还有其他的分布式锁实现方案么?分布式锁和单机锁主要区别是啥?
压测过程有遇到过什么问题么?日志被打满,logback?问题则呢么发现的?CPU占用率,问题怎么解决的?
:::
题目解析
:::color4 文件导入导出功能介绍下。EasyExcel,同一份文件**/**多份文件中有重复数据了,内存处理,去重怎么去的?
如果数据量很大,乜办法一次性导入内存,如何去重?
文件导入有用多线程吗?单线程读excel,多线程并发写数据库。占内存问题。
EasyExcel有什么优势?
:::
✅基于EasyExcel+线程池+批量插入实现百万级数据导入
:::color4 项目中还有其他的亮点么?规则校验?redis的key过期了,会如何处理?
Redis的内存如果满了,会怎么样?淘汰策略,LRU和LFU有啥区别?
:::
:::color4 AOP是如何实现切到一个自定义注解的?
:::
:::color4 数藏项目哪个模块最熟悉。交易模块和订单模块有啥关系和区别?为啥要搞个交易模块?编排了其他模块,用户、库存、订单。交易模块都提供了哪些方法?下单(秒杀**/**普通交易)、
交易和订单模块是不同的微服务,用dubbo通信,注册中心nacos。一个应用要接入dubbo,需要做哪些事情?导入依赖,
:::
项目实战内容,详见数藏项目实战课
:::color4 如何做订单防重?详情页生成token,并发情况下如何确保token只能用一次?用lua脚本,
Token如何防止伪造?加密。如何防止用户囤一批token刷下单接口?如何实现的一个用户+一个商品只能有一个token**?token的生成,用户id和商品id是前端传的么?**
下单防重还有其他方案么?前端置灰,购物车下单如何做防重?
:::
项目实战内容,详见数藏项目实战课
:::color4 订单的状态是怎么设计的?init、confirm、cancel、discard、paid。状态机是如何实现的?这样做的好处是什么?
订单号是怎么生成的?业务标识、随机数(雪花算法)、基因法。有没有重复的概率?概率低、
订单表的主键id是怎么生成的?为啥不直接用订单号?
:::
:::color4 分库分表了解么?单库多表,
项目中用过分布式锁?什么地方用了分布式锁。用户手机号分布锁避免短信重复发送?
分布式锁怎么实现的?redisson,lock,tryLock你用的哪个?redisson好处?看门狗机制,怎么实现的?还有其他的分布式锁实现方案么?分布式锁和单机锁主要区别是啥?
:::
:::color4 压测过程有遇到过什么问题么?日志被打满,logback?问题则呢么发现的?CPU占用率,问题怎么解决的?
:::
项目实战内容,详见数藏项目实战课