详细介绍:八股已死、场景当立(微服务保护篇)

废话不多说,书接上文,继续盘点有难度的面试八股文,然后抛砖引玉出场景题,做好了开始发车喽!

一、标准八股-微服务保护篇

1、Q:1. 解释限流、熔断、降级三者的本质区别与核心应用场景?

A:区别如下表:

机制核心目标触发条件实现层级
限流控制单位时间请求量流量超过阈值(如QPS>1000)网关/服务入口
熔断快速失败避免级联故障错误率>阈值(如50%)服务间调用
降级牺牲非核心功能保障核心业务系统负载>80%或熔断触发业务逻辑层

应用场景

  • 限流:秒杀系统防止库存超卖(令牌桶算法);
  • 熔断:支付服务失败时暂停调用(断路器模式);
  • 降级:大促时关闭商品评价特性(功能开关);

2、Q: 手写令牌桶限流算法,并分析其与漏桶算法的适用场景差异?

A:令牌桶Java实现

public class TokenBucket {
private int capacity; // 桶容量
private int tokens;   // 当前令牌数
private long lastRefillTime; // 上次补充时间
private final int refillRate; // 令牌/秒
public synchronized boolean tryAcquire() {
refillTokens(); // 补充令牌
if (tokens > 0) {
tokens--;
return true;
}
return false;
}
private void refillTokens() {
long now = System.currentTimeMillis();
double seconds = (now - lastRefillTime) / 1000.0;
int newTokens = (int) (seconds * refillRate);
tokens = Math.min(capacity, tokens + newTokens);
lastRefillTime = now;
}
}

算法对比

特性令牌桶漏桶
流量特征允许突发流量(桶内令牌可用)恒定速率流出
实现复杂度需定时补充令牌简单队列
适用场景电商秒杀视频流控(如直播)

3、Q:熔断器的三种状态如何转换?画出状态机并实现半开状态探测逻辑?

A:状态机流程如下

posted @ 2025-09-26 18:09  wzzkaifa  阅读(18)  评论(0)    收藏  举报