字节后端日常实习面经(已OC)

2技术面,1hr面。
background:我的项目主要有两个:
1. 一个仿写k8s的minik8s,基于golang
2. 一个基于 lsm tree 的kv存储系统,c++写的。

一面:
1. grpc 和 http的关系,http 2.0 和 http 1.1 的关系(因为我之前的实习涉及grpc)
2. redis 的数据结构
3. tcp 几次握手,几次挥手,为什么等待 2MSL
4. lsm tree 跳表数据结构讲一下,如何实现值分离,为什么使用 WAL,如何保证一致性。使用双 Memtable 提升多少吞吐?
5. mysql 索引数据结构
6. mysql 事务隔离等级,如何实现可重复读
7. Kafka 试用场景
8. 介绍一下 bloom filter

还有些问题可能忘了

笔试 3 medium:
1. 爬楼梯,dp
2. 排序矩阵查找,剪枝,lc面试题 10.09
3. 岛屿数量,dfs,lc200

二面:
1. replicaset的定义,如何保证一致性
2. http 2.0 和 http 1.1 的区别
3. 介绍一下 bloom filter
4. 介绍第二段实习
还有些问题可能忘了

笔试 1 medium
实现一个具有索引功能的 ordered map,可以使用任何标准库。
lz是 c++ 选手,直接用stl库解决了。然后要求分析复杂度。

整体来说面试官很nice,面试效率很高,已oc。
全部评论
请问具有索引功能的 ordered map是啥意思呀
1 回复 分享
发布于 2024-08-31 13:08 浙江
m
1 回复 分享
发布于 2024-08-20 09:55 广东
可以问问是哪个部门 吗
1 回复 分享
发布于 2024-08-11 22:57 江苏
笑死了 刷到同组实习的朋友了
点赞 回复 分享
发布于 2024-09-23 01:07 四川

相关推荐

一面:全程50min,八股30min,算法20min1. innodb引擎的rr级别,age是普通索引,id是数据库主键,递增字段。事务A:begin;T1 select * from user where age = 20;(2个结果)T3 select * from user where age = 20;T4 update user set name = 'name1' where age = 20;T5 select *from user where age = 20;comit;事务B:T2 begin insert into user values('name2', 20); comit。请你分别告诉我T3-T5各有几个结果?2、3、32. TIME_WAIT 状态原因?ack至少丢失一次;防止建立历史连接3. 设计一个抽奖系统,每个用户可以抽 m 次,奖品个数为 n,每个用户最多只能中奖一次,大流量场景下如何设计,可以支持百万级并发抽奖?从接口、逻辑、扩展方面依次回答了。4. 算法:130. 被围绕的区域======================================================================二面:全程 40min,项目 15min,算法 20min,反问 5min1. 自我介绍2. 说下实习干了啥?大致介绍了下,然后说的实习难点3. 接口重构做了什么?说了过程,说了上线策略4. 你们后端服务大致拆分了几个服务?为什么那么拆分?5. 慢 SQL 治理的过程和原理?6. 其他记不清了7. 算法:LCR 084. 全排列 II。中间看成了全排列,5 分钟秒掉结果调试半天没有输出,经提示有重复数字。抠了半天抠出来了======================================================================三面:总共 70min,实习+项目+八股 20min,算法 50min1. 自我介绍?2. 实习工作?3. Netty 为什么快?4. 详细说下 NIO?5. 各种其他问题,记不清了6. 算法:31. 下一个排列总结:栽在三面了,唯一一次原题没写出来。当时写 hot100 就没细看,感觉这题有点难,结果唯一一次出原题我还没写出来!
查看11道真题和解析
点赞 评论 收藏
分享
鼠鼠第一次投大厂面试,写面经攒人品:1. 个人介绍(2min)2. 挖项目(我跟后端相关的项目似乎只有抖音商城(字节跳动青训营),他一直挖我这个项目)3. 服务是怎么被发现的?(微服务)4. 假如你这个服务要更新,要更平滑,不让用户感到延迟,你会怎么做?- 维护两套环境(蓝:当前生产环境;绿:新版本环境)。- 新版本在绿环境测试通过后,切换流量到绿环境,蓝环境作为回滚备用。- 优点:零停机,用户无感知切换。5. 你输入一个url的处理过程6. 然后就开始写题了,面试官直接口述,输入一个数字,输出下一个最小的比这个数大的数字(重新排列)leetcode类似的题目是:[556. 下一个更大元素 III](******************************************************)这道题手撕还是相当紧张的,给我撕出来了7. 数据库事务是什么8. mvcc是什么,怎么实现的?9. 场景题,给你一个番茄小说的书,有十万订阅,如何快而准确的通知到所有订阅的人更新了(这里要求你去用具体的实现)我这里寄了,后面复盘的时候,应该是使用feed流,这个是用ai写的答案:- 推模式 (Fanout-On-Write/Writes):- **操作时机:** 当关键事件(如新章节发布)发生时**立即**执行。- **目标用户:** **核心活跃粉丝(数量相对较小)**。- **动作:** 将事件**直接写入**这些目标粉丝的个人 **收件箱(Inbox Feed)**(一个按时间排序的数据存储)。用户访问自己的 Feed 流时,直接从这个收件箱拉取即可,延迟极低。- 拉模式 (Fanout-On-Read):- **操作时机:** 当用户主动请求访问 Feed 流时执行。- **目标用户:** **非核心粉丝(长尾粉丝,数量大)** 或 触发推模式的粉丝,在访问 Feed 时可能需要拉取更长时间范围内的数据。- **动作:** 后端服务在用户请求时,**实时聚合**用户所关注对象(收藏的书籍)的 **发件箱(Outbox Feed)** 数据(包含所有发布事件),按时间排序后返回给用户。这需要访问多个发件箱(每个收藏的书一本)并聚合。- **「推拉结合」的关键:** **合理区分「核心粉丝」与「长尾粉丝」**,只对核心粉丝进行实时写入。**关键组件与流程详解:**1. **事件源 (Event Source):**- **新章节发布:** 最核心的事件源。携带 `bookId`, `chapterId`, `publishTimestamp`。- **粉丝关系变更:** 用户收藏 (`favor`) 或取消收藏 (`unfavor`) 一本书。携带 `userId`, `bookId`, `action`, `timestamp`。2. **事件总线 (Event Bus):**- 使用高吞吐、可靠的消息队列如 Kafka/Pulsar。接收上述事件并进行持久化,供下游消费者订阅。后面是就是针对十万用户的进行**精准界定“核心活跃粉丝” (`HotFanCache`):**,查询优化,**高性能存储与分片:**10. 反问,问了业务是什么,技术栈是什么,然后和面试官聊的蛮开心的,面试官夸了基础好,知道稳了10min之后,hr通知2面.1面成功.
番茄小说二面3人在聊
点赞 评论 收藏
分享
评论
24
112
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务