网易杭研院二面,本来以为只能写一次面经,居然又来了,感谢网易让我涨个经验
面试的全是项目,没有Java基础和算法,全问项目里的,对自己的项目一定要了解
我做了电商秒杀项目(老掉牙了)
面试官:简单介绍一下你的项目,你负责的部分,遇到的问题
我:balabala
面试官:你这里用到的MQ和redis有什么用?
我:balabala
面试官:我看到你说用了页面缓存,你说说什么是页面缓存,怎么缓存,为什么缓存?
我:balabala
面试官:说说你做的时候遇到什么问题
我:redis数据不一致和减库存负数,订单数比库存多
面试官:怎么不一致,你怎么解决
我:数据库与redis信息不匹配,我采取现更新数据库再删缓存
面试官:你为什么这么做
我:说了原因和分析颠倒过来为什么不行
面试官:那redis忽然宕机呢,你这样行吗,怎么解决?
我:给缓存加失效时间,但是时间要配合业务;redis主从分配
面试官:主从分配不太行,给我解释了下
面试官:redis除了缓存还能做什么,有了解吗?
我:一开始说不知道,后来想起来做分布式session可以用,说了下
面试官:减库存负数,订单数比库存多你是怎么解决的
我:加where条件判断库存大于0,事务管理
面试官:原理是什么,你加了事务,spring帮你做了什么
我:原理是数据库会加锁,spring底层做了什么我不知道
面试官:你再好好想想,spring的特性
我:IOC和AOP
面试官:AOP在事务做了什么,巴拉巴拉(好吧,我真不知道),那如果你不加注解你自己做你会怎么保证原子性
我:给减库存的sql设置boolean变量,生成订单加if判断,true再生成
面试官:那你对数据库优化了吗?
我:项目没有,但是我知道可以对数据库垂直切分和水平切分,切分完要注意id问题,balabala
面试官:我看你说了分布式,那你对分布式框架IPC(应该是吧,没听过)有了解吗?
我:没有,做项目条件有限,没有分布式部署,但是设计了分布式session,为nignx集群服务器做了准备
面试官:MQ你也用了,你怎么保证收到数据的正确性,发送者丢失数据怎么办,消费者没消费到怎么办?
我:MQ监听一个借口,数据丢失问题没有考虑到(只是用了,哭)
面试官:你有什么要问的吗?
我:给我今后的学习提些意见
面试官:技术栈还要加深,做东西的时候要多考虑极端场景问题,比如redis宕机,MQ信息丢失啊之类的;分布式框架回去可以看一看,学习一下。
我:好的,谢谢您,请问网易面试流程什么样的?
面试官:校招2+1吧
面了三十分钟,本来以为一面挂了,居然给机会了,想着二面好好准备,看算法和基础知识头都搞烂了,一个没问,全是项目,呜呜呜!不知道能不能过,看运气吗,夸下网易,工作效率真高,8.3投的简历,8.17都进行到二面了,我投的好多还在池子里,可惜我太菜了,配不上网易
全部评论
(4) 回帖