蓝标传媒(北京) - 面经

BG:双飞鼠鼠,两段开源经历,一个分布式KV存储项目

面经

1. 自我介绍

2. 我看到你在参与Apache社区的项目,也有做贡献,当时是什么样的一个契机让你想要做这件事?

3. 你觉得参与这些开源项目对你来讲最大的收获是什么?

4. 你参与的这个Seata-Go项目应该是做分布式一致性的对吧?(分布式事务框架)

5. 你对这个项目主要贡献了哪些地方?是在使用过程中遇到了什么问题或者什么契机让你觉得某个东西可以升级一下吗?你改进前后有什么变化,改进的时候做了哪些思考,我想听听你的思考过程。

6. 这种分布式事务一般都逃不开分布式一致性对吧,我们实现分布式一致性的时候会有很多算法,也有相关论文,有这方面比较深入的应用吗?(讲了KV项目中Raft的用法)

7. OK,我其实更想听到一些更底层的内容,比如你对论文的理解等等更基础的实践。(详细的讲了一下自己的理解)

8. OK,你可以自己用一句话描述一下Raft吗?或者你的理解中的Raft,以及你为什么使用Raft,一些基本的原理

9. (面试官补充了一下自己的看法)那么你参与的第二个开源项目anara-db/kiwi中你都做了什么?

10. 好的了解,然后我有看你的个人博客,里面也有关于Golang的一些内容,比如Channel之类的对吧?

11. 那我们看一个简单的场景:假设我有一个Web服务,本来一天服务100个人,能够正常工作,但是今天出现了某个事件,突然有2000万用户使用,显然我们的后端处理不过来对吧,不可避免的需要一个限流的功能,我现在目标是:我一分钟内只能处理100个请求,多余100个请求的都进入排队状态,但是它不能长时间驻留,我要它一分钟内没有处理完成的直接返回一个失败的状态。我想听听你的思考,你会怎么设计和实现,使用Golang的并发特性以及redis之类的中间件

12. 挺好的,Channel在项目中有用到吗?(KV存储中用到过,实现异步写)

13. 好的好的,我看你做的这些事情对于一个本科生来说还是比较有亮点的,然后我看你还参加了一些CCPC之类的比赛对吧,是有参与ACM的一些集训吗?

14. 好的,那在这之前高中有参与过NOI之类的吗?(没有,大学参与的算竞)

15. 问个开放一点的问题,你觉得你掌握的比较好的地方,以及你学习过但是长时间没有接触的可以很快拣起来的技术

16. 除了Redis这类的中间件,或者分布式文件系统的操作,还有关系型/非关系型数据库之类的相关经验吗?(讲了字节青训营项目中的使用)

17. 这个青训营是一个什么性质的东西?

18. OK,你觉得分布式这块自己掌握的还是相对扎实的对吧?

19. 那我们再考虑一个场景:我现在有500段250G的视频,显然我无法快速的处理分析他们,我现在要在所有的视频文件中快速找到某个人出现的画面,如何快速的找到我要的内容,从分布式,流式处理的角度考虑,没有标准答案,我想听听你的思考。

20. OK,那现在我们让这个情况稍微复杂一点,给你一些有字幕的视频,给你一个确保可用的服务,这个服务可以把视频按照字幕切分为很多帧/片段,提示一下,MapReduce切分任务后应该会出现时间戳信息丢失的情况。假设我现在给你的是一个包含犯罪嫌疑人犯罪动机的视频,我想知道,这个犯罪嫌疑人在哪个时间说了什么话可能会是犯罪前提,可能可以作为证据,怎么快速解析出所有文本性质的内容,以及快速定位到可能的某一句话。针对这个稍微复杂一点的场景,我想听听你更详细的设计方案和思考。

21. 现在应该你简历上的大部分内容我们都覆盖到了,还有什么你觉得有特色有意思的内容吗?你可以再表述一下。(讲了KV项目中DB层的设计和一些实现方案)

22. 你这里有参考Redis的实现吗?做这个项目的动机是什么?

23. 好的,你还有什么想问我的吗?一两个问题。

反问

您觉得我还有哪些需要改进的地方吗

最后面试官问了一下现在在哪里,出勤时间之类的

结束

#面经#
全部评论
第20题好有意思
点赞 回复 分享
发布于 02-11 21:03 广东
11佬怎么回答呀,谢谢
点赞 回复 分享
发布于 02-24 13:57 上海
老哥,kv项目是在哪里看的
点赞 回复 分享
发布于 02-25 10:28 香港

相关推荐

#牛客AI配图神器#趁我记得赶紧发一下,都是今天面的小鹅通感觉G了,虽然他一直和我说我很好,但是半天没消息。一面是立刻就说通过了Cider已经OC更多面经请查看[https://github.com/haandfeng/Mianjing](https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fgithub.com%2Fhaandfeng%2FMianjing) 以后会陆续更新和完善,我会持续引用之前面经的内容,也会根据自己面的公司看之前的面经,然后写上答案。如果大家觉得有用请多多关注,点赞收藏star🥺🥺🥺 明天二面攒人品 面试公司:小鹅通面试岗位:后端开发面试问题:主要问到我在用友的实习经历。问干了什么,部门情况啥的,纯聊天然后针对我的大众点评项目问了几个场景的内容1. 如果有时候用户会显示没登陆,有时候显示登陆,一直闪来闪去。你觉得是什么问题导致的。怎么解决。我的回答是我用户校验是使用redis存储令牌,treadlocal来存储用户,然后校验是否登陆的。会出现这种情况,主要是因为多个系统,没有做到主从同步的问题,要采用主从同步这种算法。2. 怎么确保Mysql和Redis的缓存一致性。假设现在有在直播抢单,商户发现价格设置错了,希望后台更改。这个时候,你要怎么办。我的回答是先删缓存,再改数据库。用户下单会被全部阻塞无法下单,直到修改好之后,才可以下单,并且修改好后,他们也不需要再查询数据库,而是直接插缓存。不OK!他认为这样会出现缓存穿透。最重要的是不符合实际业务场景。实际业务需要先保证下单。价格错了问题不大,下单最要紧。所以应该是先改数据库,然后再改redis。价格错误,道个歉就好了,保证能下单最重要。而且这个时间相比于商户发现价格错误,修改数据库的时间其实也很短,问题不大。好像还有一个问题,忘了,印象不深刻。不过有一半时间是和我闲聊我的实习情况,因为他们打算学我的前司的发展逻辑,做Saas服务。面试公司:Cider面试岗位:后端开发面试问题:自我介绍询问我对我工作的一个低代码平台的看法询问我对低代码平台+AI的看法询问我工作内容,怎么对sql优化加快速度的。优化select,索引,Join语句。 插入语句的优化你是怎么加索引的注意避免索引失效的问题,联合索引的顺序问题,加了之后再删了索引加在性别上可以吗不行,没什么差异性leetcode刷了多少。刷了,写算法,为什么用c++不用java,业务用java。说了一下算法题:[98. 验证二叉搜索树]***********************************************************能不能改成迭代想了一下,大概思路对了,不用写代码打个广告,如果想要看具体解法和思路可以看我的github仓库里面有喔🥺https://github.com/haandfeng/Zuo-Algorithm-Cpp讲讲你的RPC框架,为什么要基于TCP协议自定义比较快,传输效率等讲讲你对TCP协议滑动窗口的理解其他忘了,似乎还问了一下我大众点评项目的内容反问:对我什么建议挺好的,建议我专注在业务的项目上今天两场面试都让我专注业务,最重要🥺#软件开发笔面经##面经##牛客创作赏金赛#
点赞 评论 收藏
分享
评论
8
14
分享

创作者周榜

更多
牛客网
牛客企业服务