腾讯某大数据部门后台开发二面
(先说结果,面完秒挂,面试官有病听不懂人话,把我的回答从对的改成错的,同样的项目和话术其他面试官都听得懂,她听不懂,随便吧,遇见她算我倒霉)
1.自我介绍
2.问上段实习中的学习方法
3.(面试官要开始发力了)看我项目说用有限状态机解决了接口幂等性的问题,我是怎么做的。
我回答说:经过业务考虑和技术选型,我的接口是改变数据状态的接口,只能从a状态变到b状态是正确的,而不是像新增一条数据的操作,所以我选了有限状态机来解决我接口的幂等性问题。我也考虑过市面上其他的一些幂等性场景和解决方法,例如重复下单的场景,为了防止一个用户多次点击下单按钮或重复传入表单,这种因为是数据库记录新增操作,所以需要使用redis里面存放有过期时间的唯一token或者使用数据库唯一行来约束,但我没有这个场景所以用不到
面试官:你项目是使用redis和有限状态机来幂等的啊,你能说具体点吗
我:我没用redis啊,我只用了有限状态机,redis那个方案是我在网上看其他的幂等性问题是这么解决的来参考的方案,而且在我发现和我的业务不匹配后也否决了。
面试官:你有限状态机在分布式环境下怎么做的啊
我:?我的服务是分布式的但我的数据库是单机的啊,而且就算是数据库也做了水平分库分表也不用考虑什么分布式场景啊,这跟我有限状态机改变一个状态有影响吗。
面试官:我还是不太明白你在这个分布式环境下怎么用的redis和有限状态机做的幂等性
我:?我没用redis啊
面试官:那我们下一个问题吧
4.什么是接口幂等性,有哪些接口操作是天生幂等的
我:接口幂等性就是同样的请求申请同样的接口,不会造成系统的不一致,例如重复下单中相同的下单请求数据库只会新增一条。至于天生幂等的操作的话,修改指定id的数据为指定数据或删除唯一id的数据或查询请求都是天生幂等的
面试官:你说的不对,重复删除会报错,所以不幂等。(我:我??唯一id重复删除你还能删成啥样,你删了就没了哪影响幂等性了。你报错影响的接口幂等性吗?)。而且你说的幂等性定义也不对,幂等性是相同的参数申请同样的接口
我:我说的同样的请求,同样的请求参数不一样吗
面试官:我不知道你有没有回放听,但你说的肯定不是相同的请求。(哈哈)
5.如果系统发生oom,怎么排查(这个很正常就过了)
6.给你出个场景题目,假如有100G的数据a,100G的数据b,然后需要用a join b得到c,同时一个mysql数据库只能操作10G的数据,那你怎么做。(在我说了分库分表,引入中间件,一致性哈希算法,在a join b的时候使用多线程异步技术并行执行,之后,又追问很多相关细节,然后又问我里面可以用java做哪些操作,最后她得出结论我太理想化了,考虑不全)
7.反问:我要提升的
面试官:我还是没听懂你的接口幂等性怎么用的redis解决的,在分布式环境下你的有限状态机没问题吗。(哈哈)
我反应过来了,这面试官应该是个大数据开发或数仓开发那种,一直问我hadoop,spark,sql语句这种,遇见她我是真倒霉啊😅
1.自我介绍
2.问上段实习中的学习方法
3.(面试官要开始发力了)看我项目说用有限状态机解决了接口幂等性的问题,我是怎么做的。
我回答说:经过业务考虑和技术选型,我的接口是改变数据状态的接口,只能从a状态变到b状态是正确的,而不是像新增一条数据的操作,所以我选了有限状态机来解决我接口的幂等性问题。我也考虑过市面上其他的一些幂等性场景和解决方法,例如重复下单的场景,为了防止一个用户多次点击下单按钮或重复传入表单,这种因为是数据库记录新增操作,所以需要使用redis里面存放有过期时间的唯一token或者使用数据库唯一行来约束,但我没有这个场景所以用不到
面试官:你项目是使用redis和有限状态机来幂等的啊,你能说具体点吗
我:我没用redis啊,我只用了有限状态机,redis那个方案是我在网上看其他的幂等性问题是这么解决的来参考的方案,而且在我发现和我的业务不匹配后也否决了。
面试官:你有限状态机在分布式环境下怎么做的啊
我:?我的服务是分布式的但我的数据库是单机的啊,而且就算是数据库也做了水平分库分表也不用考虑什么分布式场景啊,这跟我有限状态机改变一个状态有影响吗。
面试官:我还是不太明白你在这个分布式环境下怎么用的redis和有限状态机做的幂等性
我:?我没用redis啊
面试官:那我们下一个问题吧
4.什么是接口幂等性,有哪些接口操作是天生幂等的
我:接口幂等性就是同样的请求申请同样的接口,不会造成系统的不一致,例如重复下单中相同的下单请求数据库只会新增一条。至于天生幂等的操作的话,修改指定id的数据为指定数据或删除唯一id的数据或查询请求都是天生幂等的
面试官:你说的不对,重复删除会报错,所以不幂等。(我:我??唯一id重复删除你还能删成啥样,你删了就没了哪影响幂等性了。你报错影响的接口幂等性吗?)。而且你说的幂等性定义也不对,幂等性是相同的参数申请同样的接口
我:我说的同样的请求,同样的请求参数不一样吗
面试官:我不知道你有没有回放听,但你说的肯定不是相同的请求。(哈哈)
5.如果系统发生oom,怎么排查(这个很正常就过了)
6.给你出个场景题目,假如有100G的数据a,100G的数据b,然后需要用a join b得到c,同时一个mysql数据库只能操作10G的数据,那你怎么做。(在我说了分库分表,引入中间件,一致性哈希算法,在a join b的时候使用多线程异步技术并行执行,之后,又追问很多相关细节,然后又问我里面可以用java做哪些操作,最后她得出结论我太理想化了,考虑不全)
7.反问:我要提升的
面试官:我还是没听懂你的接口幂等性怎么用的redis解决的,在分布式环境下你的有限状态机没问题吗。(哈哈)
我反应过来了,这面试官应该是个大数据开发或数仓开发那种,一直问我hadoop,spark,sql语句这种,遇见她我是真倒霉啊😅
全部评论
难绷
忍耐王
忍耐王
忍耐王
忍耐王
后台开发 为啥是 数仓面
不要啊,我有个面试也是问数仓的东西
你的翻版,我面数开人家问我会不会设计模式和springboot
忍耐王
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享