Skip to content

微服务依赖治理面试题:强弱依赖、隔离、降级与容量

本页只放面试标准回答和原理跳转。完整依赖图、资源隔离、代码 Demo、商业场景和 Runbook 见微服务依赖治理

高频问题

问题标准回答原理页
微服务依赖治理解决什么问题它解决一个服务依赖多个下游时,怎样识别强弱依赖、限制每个依赖占用资源、设计超时熔断降级,并避免弱依赖拖垮核心链路。不是加几个注解,而是依赖图、故障域、资源预算和业务语义的组合治理。依赖图故障域
强依赖和弱依赖怎么区分强依赖不成功就不能兑现当前业务承诺,例如库存冻结、支付确认;弱依赖失败只影响体验或辅助信息,例如推荐、头像、营销标签。强依赖失败要明确失败或待确认,弱依赖应快速降级。依赖类型
弱依赖为什么也能拖垮核心链路如果弱依赖和核心链路共享Tomcat线程池、Feign线程池、HTTP连接池、数据库连接或队列,弱依赖变慢会占住共享资源,导致强依赖也拿不到资源。弱依赖必须有限并发、短超时和明确降级。故障域资源隔离
线程池隔离、信号量隔离、连接池隔离怎么选信号量限制并发但仍占用调用线程,适合快速同步调用;线程池隔离适合慢第三方或阻塞SDK,但有线程切换和上下文传播成本;连接池隔离限制真实网络资源,避免一个依赖占满所有连接。三者常组合使用。资源隔离
为什么配置了线程池隔离仍然雪崩可能底层HTTP连接池、数据库连接池、Redis连接或MQ客户端仍共享;也可能线程池队列太大、Bulkhead许可大于下游容量、fallback又远程调用、多层重试放大。隔离必须覆盖真实瓶颈。隔离失败Runbook
依赖并发上限怎么估算用Little定律做初始估算:在途并发约等于QPS乘以平均耗时,再结合P99、抖动、实例下线、慢启动和下游容量留余量。并发许可不能超过下游数据库连接、HTTP连接和第三方配额。资源预算
降级为什么不能伪装成功降级是保护核心链路,不是篡改业务事实。推荐失败可以返回空列表,但库存失败不能默认库存充足,支付超时不能默认成功或失败。强语义接口要返回失败或UNKNOWN,并按幂等号查询事实。降级语义
订单详情聚合怎样设计依赖治理订单主数据是强依赖,推荐、活动、物流可弱化;并行调用要受总Deadline和每依赖Bulkhead控制。弱依赖失败返回空或暂不可查,强依赖失败明确失败或待确认。每个依赖按版本记录P99、错误率、连接池等待和降级次数。关键路径商业场景
支付回调为什么不能同步调用短信、积分、ES支付回调是核心强链路,应先校验签名和金额,本地事务幂等更新订单并写Outbox事件;积分、短信、ES异步消费。把这些弱或异步依赖放进回调事务,会让非核心故障拖垮支付确认。商业场景策略矩阵
依赖故障线上怎么排查先用入口指标确认哪个接口P99或错误率升高,再用Trace找慢Span;然后按依赖查线程池active/queue/reject、HTTP连接池等待、下游P99、数据库锁和重试次数。先降级或隔离弱依赖止血,再修根因,不能只加线程。Runbook
fallback里还能不能调用远程服务一般不建议。fallback应短、确定、低成本,最好只读本地缓存或返回明确降级结果。fallback再次远程调用可能进入同一个故障域,造成二次雪崩。降级语义Runbook
依赖治理和熔断限流是什么关系熔断、限流、Bulkhead、超时和重试都是依赖治理的工具;依赖治理先定义业务依赖和故障域,再为每个依赖选择保护策略。没有强弱依赖和资源预算,单独加熔断限流容易误伤或保护不到真实瓶颈。策略矩阵稳定性治理

场景题:推荐服务慢导致订单接口P99升高

先从Trace确认慢Span是否集中在推荐服务,再查推荐依赖的线程池、HTTP连接池和Bulkhead是否与订单核心依赖共享。止血时对推荐设置短超时、快速降级为空列表、限制并发并关闭异常重试;如果连接池共享,要拆分每路由连接或独立客户端。订单主链路不能等待推荐恢复。

原理入口:弱依赖拖垮核心链路Runbook

场景题:库存服务超时后能不能降级为有库存

不能。库存是强业务事实,超时表示结果未知,不代表库存充足。应使用订单号或请求号查询库存冻结流水;确认成功就推进订单,确认失败就明确失败,未知则进入待确认或补偿。默认有库存会造成超卖。

原理入口:降级语义强依赖超时

项目回答模板

我会先画接口依赖图,把下游分成强依赖、弱依赖、异步依赖和外部依赖。强依赖例如库存冻结、支付确认,失败后不能伪装成功;弱依赖例如推荐、头像、营销标签,必须短超时、低并发、可降级。资源上按故障域拆线程池、信号量、HTTP连接池和数据库连接预算,并为每个依赖设置独立P99、错误率、重试、熔断和降级指标。线上排查先看Trace慢Span,再查资源池和下游事实,止血优先保护核心链路。

本章小结

依赖治理面试的关键不是背 Bulkhead,而是说清谁是核心、谁能降级、每个依赖最多占多少资源、失败后业务结果怎样收敛。