首页 > 日常实习微店一面凉经(30min)
头像
还是个萌新的小王
编辑于 2021-06-07 12:11
+ 关注

日常实习微店一面凉经(30min)

楼主双非本科软件工程专业,大三在读

自我介绍

压缩算法、哈夫曼树(这点不行)

有没有参加过算法竞赛

有没有写过String工具方法

实习项目需求freemark动态换行、动态分页实现思路

自己项目怎么规划的

商品表、秒杀商品表怎么实现的,为什么要分开设计两张表(回答一是并不是所有商品都是秒杀商品,秒杀商品可以从普通商品上架也可下架,字段有区别,有秒杀时间、秒杀价、秒杀库存等)

超卖问题怎么解决的(唯一索引+事务拦截)、拦截器做了哪些(Redis限流拦截preHandler做了哪些处理)

拦截器的参数校验怎么做

限购一件、限购两件怎么做的

限购一件说的是:唯一索引+事务查订单表,如果不符合,数据回滚,购买失败
限购两件:前端限制  按钮处理  后端参数检验拦截  1.注解参数最大购买件数与前端参数对比,不符合直接回滚, 查订单数据该用户商品的购买总和与之对比,不符合回滚,购买失败

mysql左右连接实现介绍

项目事务怎么做的、做了哪些拦截

跟下单流程很大关系

下单流程是什么

秒杀下单流程会存在一些常见问题:比如说多用户同一时间抢购、超卖,重复购买等问题:所以我的下单流程做了事务控制:

第一步先查数据库库存是否充足(AOP前置通知),如果充足进入下一步

第二步检验是否超出购买限制(限购几件)查我们的订单表,是否存在,若不存在,则可进行下一步

第三步扣库存操作(这个步骤还可以优化)比如先锁定库存,设置状态,不去直接减库存

第四步付款  成功真正减库存

AOP后置通知

第五步  这个时候还有可能出现问题(前面同时有人操作,几个人一起购买,可能会导致超卖),再次查库存,看看是否超卖,库存是否充足,充足的话进行下一步

第六步:生成订单信息,向订单表插入数据(这个地方我还做了一层数据库校验userId+goodsId的唯一索引,防止重复购买)

六步都在一个事务下,一步出问题都会导致购买失败,数据回滚

Redis主从同步原理(我回答了全量同步、增量同步、同步策略)

srtp项目、开源项目做了什么

大学生Srtp项目、负责编写自己的ORM框架
反问技术栈
总结,面试管说我,答非所问、大部分在描述自己项目实现细节,怎么做的功能,没有说遇到那些困难,怎么解决的   ps:我后面想着你也没问呀       总之,体验还可以,攒经验  下次努力吧

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐