2022-06-09 00:01:50
腾讯后台开发三面凉经总结如下,涵盖各环节考察重点及应对思路:
一、面试流程与时间线面试官通过“为什么用微服务架构”“服务数量爆炸怎么办”考察架构设计能力,若对微服务拆分原则(如康威定律、单一职责)或服务治理(如熔断、限流)不熟悉,易暴露经验不足。
“边缘计算”问题需结合具体场景(如CDN、IoT设备数据处理)说明其降低延迟、减少带宽的优势,回答空洞会扣分。
八股文:TCP/UDP对比需从可靠性、连接管理、适用场景(如实时音视频选UDP)展开;进程/线程/协程对比需强调协程的用户态调度优势(轻量、高并发)。
Go语言:Goroutine中断请求不会阻塞线程,因其通过GMP模型(Goroutine-P-M)实现用户态协作式调度,底层依赖runtime.Gosched()让出CPU。
输入URL过程:需完整覆盖DNS解析、TCP握手、HTTP请求、渲染流程,遗漏步骤(如TLS握手)会扣分。
RPC框架:需从序列化(Protobuf)、通信协议(HTTP/2)、服务发现(Nacos)等模块设计,若仅描述调用流程会缺乏深度。
邮件系统:需考虑异步处理(消息队列)、幂等性(数据库唯一索引)、定时任务(Cron)等,回答过于简略会暴露工程能力不足。
双写一致需结合具体方案(如Cache Aside模式:先更新DB再删除Cache),若未提及异步补偿(如消息队列重试)或防击穿(布隆过滤器)会扣分。
Raft协议需说明Leader选举、日志复制、安全性(如选举限制、Leader完整性),若与Paxos对比时未突出Raft的可理解性优势会减分。
Collections.sort用快排而非堆排序,因快排平均时间复杂度更低(O(nlogn) vs O(nlogn)但常数因子大),且对小规模数据会切换为插入排序优化。
zset用跳表而非红黑树,因跳表实现更简单(代码量少)、范围查询效率更高(O(logn)),而红黑树插入删除需频繁旋转。
帧同步需强调锁步机制(所有客户端按固定帧率执行逻辑),反外挂可通过服务端校验输入序列、逻辑结果比对实现;作弊行为包括跳帧、篡改输入等。
需从业务价值(如提升用户体验、降低成本)、技术挑战(如高并发、数据一致性)等角度说明,若仅复述功能会显得缺乏思考。
需结合具体问题(如性能瓶颈、数据倾斜)说明解决方案(如分库分表、异步化),若回答过于笼统(如“优化代码”)会缺乏说服力。
“三类人中选四个”需明确分类标准(如性别、职业),若未假设条件或计算错误会扣分。
需说明慢启动、拥塞避免、快速重传/恢复机制,若混淆窗口调整策略(如乘法减小、加法增大)会暴露基础不牢。
腾讯后台开发面试考察技术广度与深度、系统设计能力、项目经验,三面失败可能因基础不牢、技术深度不足或项目价值理解不清晰。建议通过系统复习、项目复盘、模拟面试针对性提升,同时关注牛客网等平台的最新面经,动态调整备考策略。