楼主双非本科软件工程专业,大三在读
自我介绍
压缩算法、哈夫曼树(这点不行)
有没有参加过算法竞赛
有没有写过String工具方法
实习项目需求freemark动态换行、动态分页实现思路
自己项目怎么规划的
商品表、秒杀商品表怎么实现的,为什么要分开设计两张表(回答一是并不是所有商品都是秒杀商品,秒杀商品可以从普通商品上架也可下架,字段有区别,有秒杀时间、秒杀价、秒杀库存等)
超卖问题怎么解决的(唯一索引+事务拦截)、拦截器做了哪些(Redis限流拦截preHandler做了哪些处理)
拦截器的参数校验怎么做
限购一件、限购两件怎么做的
限购一件说的是:唯一索引+事务查订单表,如果不符合,数据回滚,购买失败
限购两件:前端限制 按钮处理 后端参数检验拦截 1.注解参数最大购买件数与前端参数对比,不符合直接回滚, 查订单数据该用户商品的购买总和与之对比,不符合回滚,购买失败
mysql左右连接实现介绍
项目事务怎么做的、做了哪些拦截
跟下单流程很大关系
下单流程是什么
秒杀下单流程会存在一些常见问题:比如说多用户同一时间抢购、超卖,重复购买等问题:所以我的下单流程做了事务控制:
第一步先查数据库库存是否充足(AOP前置通知),如果充足进入下一步
第二步检验是否超出购买限制(限购几件)查我们的订单表,是否存在,若不存在,则可进行下一步
第三步扣库存操作(这个步骤还可以优化)比如先锁定库存,设置状态,不去直接减库存
第四步付款 成功真正减库存
AOP后置通知
第五步 这个时候还有可能出现问题(前面同时有人操作,几个人一起购买,可能会导致超卖),再次查库存,看看是否超卖,库存是否充足,充足的话进行下一步
第六步:生成订单信息,向订单表插入数据(这个地方我还做了一层数据库校验userId+goodsId的唯一索引,防止重复购买)
六步都在一个事务下,一步出问题都会导致购买失败,数据回滚
Redis主从同步原理(我回答了全量同步、增量同步、同步策略)
srtp项目、开源项目做了什么
大学生Srtp项目、负责编写自己的ORM框架
反问技术栈
总结,面试管说我,答非所问、大部分在描述自己项目实现细节,怎么做的功能,没有说遇到那些困难,怎么解决的 ps:我后面想着你也没问呀 总之,体验还可以,攒经验 下次努力吧
全部评论
(7) 回帖