字节-番茄小说-日常实习-后端二面凉经

面了2小时,场景题差不多用了一小时,不断追问

1. 基于redis的分布式锁怎么实现的?怎么解决误删问题?怎么解决锁超时无法释放的问题?
2. Lua为什么能保证原子性?
3. 讲讲Epoll的原理?
4. 为什么MySQL用B+树, 不用红黑树?
5. 在不考虑内存空间限制的情况下, B+树和红黑树都在内存里, 这两个相比哪个查询效率更快?
6. MySQL的InnoDB存储引擎会不会每一次查询B+树的索引都要去磁盘IO?为什么?
7. sql题, 考察最左前缀匹配原则。追问:最左前缀的底层原理是什么?
8. MySQL的可重复读怎么实现的?可重复读能解决幻读问题吗?了解间隙锁吗?

场景题1:
场景:设计一个网络服务器,现在有【多线程 + 每个线程内部阻塞IO】 和 【单线程 + Epoll】这两种方案
(1)这两种方案在cpu负载,时间效率,内存资源占用这三个方面各有什么特点?
(2)现在有大量的就绪socket需要处理,使用单线程模型有什么问题?该怎么优化?
(3)开放题:如果让你来设计一个网络服务器,你有什么方案?

场景题2:
场景:现在有一天内的大量日志,每条日志记录了用户id, 登陆时间,登出时间 {userid, login_time, logout_time}, 时间单位是秒。
(1)怎么求出一天内的最大在线人数?
(2)怎么求出维持在最大在线人数的最长持续时间?

手撕算法:LRU,可以使用标准库的链表和map,自己构建测试数据,ACM模式
全部评论
这面试狠狠上难度了
3 回复 分享
发布于 03-15 16:14 广东
耐面王
2 回复 分享
发布于 03-16 16:35 湖北
佬是面的哪个部门的,这么难
1 回复 分享
发布于 03-15 12:17 河北
这也太难了吧
1 回复 分享
发布于 03-14 22:00 广东
吓人
点赞 回复 分享
发布于 04-05 12:01 浙江
哥 太强啦
点赞 回复 分享
发布于 04-02 23:23 江苏
27这么难吗
点赞 回复 分享
发布于 03-30 17:54 广东
大二就想逃离校园生活了吗
点赞 回复 分享
发布于 03-24 17:43 北京
场景题好难
点赞 回复 分享
发布于 03-18 19:22 广西
场景1单线程epoll的方案缺点是单线程只有单cpu在利用,无法处理大量的读写请求。 其实是不是可以改成单线程监听读写请求,线程池处理读写请求的模型
点赞 回复 分享
发布于 03-17 22:05 湖北
佬科班吗
点赞 回复 分享
发布于 03-17 15:57 四川
佬什么bg啊
点赞 回复 分享
发布于 03-17 15:34 重庆
这能是跟我一届的吗,我这几周字节三战都没过一面,这周四四战
点赞 回复 分享
发布于 03-17 12:42 湖南
佬能透露下是哪个部门吗
点赞 回复 分享
发布于 03-16 13:59 上海
太有实力了
点赞 回复 分享
发布于 03-16 10:58 上海
是本还是硕捏
点赞 回复 分享
发布于 03-15 16:09 湖北

相关推荐

鼠鼠第一次投大厂面试,写面经攒人品: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人在聊
点赞 评论 收藏
分享
06-17 10:01
门头沟学院 Java
程序员牛肉:觉得自己最大的收获是什么
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
22
138
分享

创作者周榜

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