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

阿里巴巴二面

[复制链接]

1288

主题

0

回帖

4008

积分

论坛元老

积分
4008
发表于 2026-5-25 15:42:20 | 显示全部楼层 |阅读模式
基本信息
  • 形式:二面通常由更高级别的面试官进行,考察项目深度和技术决策能力。技术面时长约1小时,包括项目深挖、技术选型讨论、场景系统设计等。
  • 时长:约60分钟。
  • 氛围:考察项目中的技术决策能力——不是问"做了什么",而是问"为什么这么做,有没有想过其他方案"。

面试流程
一面通过 → 二面通知 → 按时参加面试 → 深度自我介绍 → 项目深挖(重点) → 技术追问/系统设计 → 业务思考 → 自由追问 → 退场。
二面面试问题一、项目深度与技术决策题(必考)
问题1:详细说说你项目中最大的技术难点。为什么选这个方案?其他方案有什么问题?
参考回答:(需结合自身项目经历作答,以下为回答框架)
  • 难点描述:在XX项目中,需要解决分布式事务一致性问题——订单创建需同步扣减库存、更新积分、记录日志,涉及3个独立服务。
  • 方案比较:
    • 2PC/XA强一致:性能差,锁时间长,不适用于高并发电商场景。
    • TCC(Try-Confirm-Cancel) :性能较好,但侵入性强,每个业务都要实现三个接口,开发成本高。
    • 最终选用Saga + 本地消息表:业务逻辑相对简单,通过RocketMQ事务消息保证最终一致性。消息发送和本地事务在同一数据库事务内完成,做到“要么一起成功要么一起回滚”。
    • 极端情况考量:消息发送成功但消费者端宕机了怎么办?RocketMQ的自动重试机制会重试16次,配合本地消息表做消费幂等,最终对齐。
    • 如果降级后数据库也扛不住:进入CQRS(命令查询职责分离)模式,写请求走DB+同步消息,读请求直接走ES/缓存副本,让实时一致性退化为最终一致性。



问题2:你说用了Redis做缓存,如果Redis集群挂了怎么办?
参考回答:(此为蚂蚁支付链路经典追问)
  • 第一层防御:本地缓存降级(Caffeine),Redis不可用时先查本地缓存,减少DB压力。
  • 第二层防御:熔断机制(Sentinel/Hystrix),Redis调用超时达阈值直接熔断,走降级逻辑。
  • 第三层防御:双写加延迟双删策略,保证DB和缓存最终一致。
  • 如果降级后数据库也扛不住:需要拆分架构——写请求实时落DB并推MQ异步更新缓存/ES;读请求从ES/只读副本返回最终一致数据。牺牲微秒级实时性换取系统整体可用性。


问题3:你的项目中如果出现数据不一致,怎么排查和修复?
参考回答:我会从以下层次逐层排查:
  • 第一层·链路追踪:阿里内部通常用SkyWalking/鹰眼等工具串联调用链,定位哪一步发生分岔。
  • 第二层·日志分析:将业务打印的traceId、消息唯一键、分布式事务状态日志导入ELK,反向推演执行路径。RocketMQ的消息轨迹追踪开关必须打开。
  • 第三层·补偿预案:对于校验出的不一致数据,预写的对账SQL脚本每天跑一次差异报表,人工/半自动触发补账/业务拒付/人工退款。最终一致性靠“日切对账+行级补偿”闭环。


问题4:你的项目里有没有做过分库分表?怎么选择分片键的?
参考回答:选择分片键的核心原则是避免跨分片查询。以订单表为例:
  • 最优分片键:user_id(用户维度)——一个用户的所有订单都在同一分片上,单用户订单查询只需访问单库,无跨片join。
  • 次优分片键:order_id(订单维度)——需要路由层维护order_id到user_id的元数据映射,每次查询先查映射表再路由,多一次网络开销。
  • 常见陷阱:切分后原本的跨分片聚合查询(如按时间倒排全量订单)必须迁移到离线数仓完成(ADS层+ClickHouse),不能再指望交易库实时响应。面试官关注你能否认识到“分片后实时复杂查询能力大幅下降”这一trade-off。


二、系统设计与业务思考题
问题5:如果让你设计一个高并发秒杀系统,你会怎么做?
参考回答:秒杀系统的核心是把流量层层过滤,让只有最后的成功请求落数据库。
  • ① 前端限流:按钮置灰+验证码滑动解锁,防止脚本提前刷。
  • ② 网关层限流:Nginx限流(limit_req)+ CDN边缘节点承载静态页面。
  • ③ Web层过滤:Redis提前预热库存,在Redis层做预扣减(Lua脚本原子操作),拦截90%无效请求。
  • ④ MQ削峰:扣减成功的请求写入RocketMQ,后端Consumer在保证最终一致的前提下批量落库。
  • ⑤ 数据库兜底:乐观锁(版本号)更新最终库存,防止超卖。

为什么放MQ这一步?Redis扣成功但DB写入慢时,MQ作为缓冲带避免流量尖刺直接打垮DB;同时MQ的重试机制还能兜住部分临时故障的写入。

问题6:阿里云想向中小电商推广云服务器,你会怎么解决“技术门槛高、成本顾虑重”的问题?
参考回答:(此为阿里云面试真题)
  • 方案1(先落地) :推出"电商专属轻量套餐"——预设配置+一键部署,降低操作门槛。针对618、双11等大促场景提供自动弹性伸缩能力。
  • 方案2(同步推进) :开发"成本计算器"——输入日活PV即算出月费+与自建机房的节省成本对比,用可视化数据打消顾虑。
  • 方案3(获客支点) :联合电商平台搞"3个月免费试用"——含1对1技术指导,降低尝试风险。


三、HR面题(终面常考)
问题7:你怎么理解阿里"客户第一"的价值观?过往有体现相关意识的经历吗?
参考回答:我理解"客户第一"不仅仅是客服态度好,更意味着在产品设计和技术决策中始终站在客户视角思考——客户需要什么解决方案,而不是“我想卖什么产品”。
经历绑定:实习时,一个第三方小网店使用某云服务,原配置月费800元还频繁出现流量超限导致503错误。我主动帮其分析流量曲线,发现80%请求集中在午间2小时,推荐了弹性配置方案并用CDN分流静态资源,最终月费降到400元,大促期间反而更稳定。老板说"终于敢接大促订单了"——这和阿里云"用科技的力量推动社会进步"的使命逻辑一致。

问题8:阿里近年来推行"1+6+N"组织变革,你怎么看?阿里云在其中的定位是什么?
参考回答:"1+6+N"是阿里"分拆"后的战略布局——"1"是阿里控股集团,"6"是淘天、云、本地生活、菜鸟、国际数字商业、大文娱六大业务集团,"N"是盒马、钉钉等独立业务。阿里云被定位为集团的技术底座和增长第二曲线。对内承载淘天、菜鸟等兄弟BU的计算与AI算力需求;对外提供IaaS/PaaS公有云服务,服务中小企业及政府客户。组织拆分后各BU有更大的经营自主权,云服务的收入也与兄弟部门之间形成了更加公允的“内部计价”机制,更有利于激发各自的市场竞争力。

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

本版积分规则

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

GMT+8, 2026-9-6 02:13 , Processed in 0.049140 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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