微服务注册 → 熔断 → 限流 → 链路追踪 追问链#
追问路径#
Q: 注册中心是怎么工作的?
→ 服务启动时注册IP+端口到注册中心,消费者拉取服务列表+本地缓存,心跳保活
Q: Nacos和Eureka有什么区别?
→ Nacos支持CP/AP模式切换+配置中心+推拉结合;Eureka纯AP+自我保护机制+只有拉模式
Q: 服务调用失败了怎么处理?
→ 超时重试(要考虑幂等) + 熔断降级 + 兜底方案
├─ Q: 熔断器的状态机怎么工作?
│ → 关闭(正常放行) → 打开(失败率超阈值直接拒绝) → 半开(放少量请求试探恢复)
│ Q: Sentinel和Hystrix有什么区别?
│ → Sentinel基于滑动窗口+规则动态推送+更轻量;Hystrix线程池隔离+已停更
│ Q: 限流算法有哪些?各有什么特点?
│ → 固定窗口(有边界突刺)/滑动窗口(解决突刺)/漏桶(平滑但无法应对突发)/令牌桶(允许突发)
│ Q: 分布式限流怎么做?
│ → Redis+Lua原子计数/Sentinel集群限流/网关层令牌桶
└─ Q: 服务间通信方式怎么选?
→ 同步:HTTP(Feign简单)/RPC(Dubbo性能高);异步:MQ解耦
Q: 怎么做链路追踪?
→ TraceId在请求入口生成,通过请求头在服务间透传,每个服务段产生Span
Q: 灰度发布怎么实现?
→ 网关根据请求头/Cookie路由到灰度实例;标签路由(给Pod打标签);权重路由(5%流量到新版)plaintext涉及知识点#
- Nacos注册中心原理 — 注册发现机制与CP/AP模式
- Nacos配置中心 — 动态配置推送
- 服务雪崩与防护 — 级联故障与保护机制
- 熔断器模式 — 断路器状态机
- 熔断降级原理 — 降级策略与实现
- Sentinel限流原理 — 滑动窗口+规则引擎
- 限流算法 — 4种限流算法对比
- 负载均衡策略 — 随机/轮询/加权/一致性hash
- Feign原理 — 声明式HTTP客户端
- Dubbo-RPC原理 — RPC框架核心机制
- 链路追踪原理 — TraceId/SpanId透传
- 灰度发布方案 — 金丝雀发布与流量染色
- SpringCloud-Gateway原理 — 网关路由与过滤器
核心串联逻辑#
- 注册发现:服务注册+心跳保活+消费者本地缓存(注册中心挂了仍可用)
- 容错三板斧:超时(快速失败) → 重试(需幂等) → 熔断(保护下游)
- Sentinel核心:滑动窗口统计QPS和异常比例,规则可通过Nacos/Dashboard动态推送
- 限流选型:API网关层用令牌桶(允许合理突发),单机用Sentinel,集群用Redis+Lua
- 链路追踪:TraceId贯穿全链路,Span记录每段耗时,SkyWalking/Zipkin做采集展示
- 代码示例:
java// Sentinel限流规则 FlowRule rule = new FlowRule("orderService"); rule.setCount(100); // QPS阈值 rule.setGrade(RuleConstant.FLOW_GRADE_QPS); rule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_WARM_UP); // 预热模式
面试回答串联#
30秒速答#
“服务注册到Nacos,消费者拉取服务列表并本地缓存。调用失败通过Sentinel做熔断降级,限流用令牌桶算法。服务间通信同步用Feign/Dubbo,异步用MQ。链路追踪通过TraceId透传全链路,灰度发布在网关层做流量路由。“
2分钟展开答#
“注册中心核心流程是服务启动注册IP端口、消费者拉取列表并本地缓存、心跳保活。我们用Nacos因为它同时支持注册发现和配置中心,还能在CP/AP模式间切换——临时实例用AP保证可用性,持久实例用CP保证一致性。服务调用失败时三板斧:超时快速失败、重试要保证幂等、熔断保护下游。熔断器是个状态机——关闭时正常放行,失败率超过阈值(比如50%)进入打开状态直接拒绝,一段时间后半开放少量请求试探。我们用Sentinel替代已停更的Hystrix,它基于滑动窗口统计,规则可以通过Nacos动态推送。限流算法中令牌桶允许合理突发流量,适合API网关层;分布式限流用Redis+Lua原子计数。链路追踪用SkyWalking,入口生成TraceId通过请求头在服务间透传,每个服务段产生Span记录耗时。灰度发布我们在Gateway层按请求头路由5%流量到新版本。“
相关追问链#
- MQ可靠性-顺序-积压-事务消息追问链 — 微服务异步通信的可靠性保障
- 秒杀系统-限流-库存扣减-分布式锁追问链 — 限流在秒杀场景的落地
- 分布式锁-事务-一致性方案追问链 — 微服务下的数据一致性