找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 128|回复: 0

北京三快在线科技有限公司(美团)二面

[复制链接]

1288

主题

0

回帖

4008

积分

论坛元老

积分
4008
发表于 2026-5-26 14:58:43 | 显示全部楼层 |阅读模式
基本信息
  • 形式:二面由部门负责人或技术Leader进行,包含项目延伸追问、场景设计、压力测试。
  • 时长:约20-40分钟。
  • 氛围:二面难度明显高于一面,面试官更关注“在复杂情境下的决策能力”和“技术选型的前瞻性”。

二面问题及参考回答
一、项目延伸与系统设计题

问题1:如果这个项目的流量放大100倍,哪里先扛不住?你怎么优化?
参考回答:基于当前系统分析,数据库连接池会是第一个瓶颈(单库写入QPS上限500,100倍超过5万QPS)。优化方案:
  • 数据层:分库分表(按用户ID哈希分片)+ 读写分离 + 热点数据缓存(Redis集群)。
  • 应用层:服务无状态化,横向扩容,核心接口异步化,通过MQ削峰填谷。
  • 接入层:增加限流策略,超过SLA的请求快速失败,返回兜底数据。
    我会先从压测定位瓶颈,找出每一层的天花板,针对性投入优化资源。


问题2:多个服务之间如何保证数据最终一致性?
参考回答:在分布式场景(如订单支付成功后更新库存)中,推荐本地消息表+MQ方案:
  • 事务开始时,在业务同库中写入“待发布”消息。
  • 业务成功后将消息发送到MQ;消费成功后更新消息状态。
  • 生产者确保“至少一次”投递 + 消费者保证“幂等”。
  • 若消费失败,MQ自动重试;仍失败则转入死信队列,触发人工补偿。


二、技术深度追问

问题3:Redis和数据库的缓存一致性怎么保证?延迟双删策略是怎样的?
参考回答:优先采用Cache-Aside模式:写请求先更新DB,再删除缓存。
延迟双删:先删除缓存 → 更新DB → 休眠(延时至少大于一次读请求的平均耗时)→ 再次删除缓存。目的是避免在DB更新期间有其他读请求把旧数据写回缓存。

三、综合素质与压力测试

问题4:在实习/工作中遇到的最大困难是什么?你是如何解决的?
参考回答:(STAR原则)
S:在XX项目最终交付前3天,发现[核心模块存在XX漏洞]。
T:需在48小时内修复且不影响上线。
A:我迅速组织故障排查、定位代码根因,紧急修复并在预发布环境压测验证,同步向项目经理汇报沟通上线排期调整。
R:漏洞修复后项目如期上线。这次故障让我更清楚地认识到单元测试覆盖和自动化回归的重要性。

问题5:如果和上级意见不一致,但上级坚持他的方案,你会怎么处理?
参考回答:我会以“技术决策以数据和事实为准”去沟通。先把自己的分析依据和两种方案的优点/风险准备好,找合适时机向上级汇报。如果上级仍坚持,我会以结果为导向执行其方案,但在执行中做好数据监控和风险预案,一旦出现偏离立即预警。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知行公社 ( 粤ICP备2020096454号 )

GMT+8, 2026-9-6 02:12 , Processed in 0.056065 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表