5月21日,25届春招,字节后端一面面经

全程四十min

1、自我介绍

2、项目拷打(点评)

2.1 redis的主要数据结构,答:String、Set、Hash、Zset、Geo、Hyperloglog,接着问:你的点评项目里用到了哪些数据结构,答:用String、Set、Zset和Geo,其中用String去存手机号和验证码,以及token和userId,用Set实现某点评点赞的userId,用Zset实现点赞排行榜,用Geo实现距离优先的功能

2.2 说说你除了用redis,项目中还用了什么其他的中间件,答:Canel,问:Canel的原理,答:伪装成mysql的从节点,然后监听binlog二进制文件,问:如何保证缓存一致性,答:旁路缓存加延迟双删,Canel同步的延迟如何缓解,答:首先看业务需求,如果允许短暂不一致,那么无需去改,但是如果希望进一步降低延迟带来的数据不一致的情况,那么可以提高网络带宽,或者起一个定时任务然后定期去比对mysql和redis的数据,类似对账功能。面试官还是不太满意,他就自己说了一种,mysql维护一个版本号字段,我也没太听懂,只能点头以示尊重。

2.3 除了这个中间件还有没有其他的,答:MQ,问:除了上述你说的这些点,其他项目(天机学堂)有没有什么难点,答:兑换码生成算法,需要保证安全性、唯一性、不可重兑性等(这个点真的好用,因为我面了这么多真的很多包括腾讯、美团等面试官好多对加密算法其实没有太深入的了解,这个点包到项目里,很能填充面试时间,基本这几个点讲完能过去十分钟左右),然后开始吟唱,前面发布的有具体怎么讲的,问:还有没有其他的唯一性的算法,答:这个之前腾讯面试也问了,然后开始往雪花算法上扯,自己定制一个雪花算法,之前sx我的我也建议他们面试的时候心里要准备好两套方案,这时候就显得你很会思考,然后说完雪花算法之后,我就又说时钟回拨的缺点,可以预留几位计算时钟回拨容忍次数。接着问:还有没有第三套方案,答:这个我是没想到的,之前我就准备了两套方案,于是顺着思路我就觉得应该想是不是有其他的方式去实现唯一性,于是我就扯了一下每个买优惠券得到兑换码的用户他们的userId是不同的,于是扯了下这个,然后维护一个每个用户对应的原子累加器,进行拼接实现唯一性,其实是瞎说的,不管对不对,要敢说,体现自己的思考能力,面试官看表情是比较满意的,就过了这个问题

2.4 手撕算法,判断给定字符串是否能够又给定的字典数组构成,用动态规划直接秒了,接着问:如果限定每个字典数组中的元素只能用一次,答:用HashMap维护使用次数

2.5 反问环节(10min)

全程没有八股,都是根据项目去挖的,所以还是建议友友们如果你的实习经历够用或者你的学历够用,真的别把自己的项目写的太夸张,我就把点评项目的优惠券那部分给去掉了,因为秒杀业务实在细节点太多了,真的容易扛不住的,每个项目写的点自己一定要能cover住,其实面试官不太看重你写的有多么华丽,就拿我举例,我有两个项目,一个单体和微服务,我面了也得有几十厂了,大中小厂,几乎没有问我微服务的,所以写你觉得最稳的,完成度这个是很重要的,毕竟校招,他们不太会为难咱们。

全部评论
大佬简历没写实习吗
点赞 回复 分享
发布于 今天 01:05 北京

相关推荐

评论
1
7
分享

创作者周榜

更多
牛客网
牛客企业服务