Java面试高频问题(26-28)

二十六、熔断降级框架:Hystrix与Sentinel对比

核心机制对比

特性 Hystrix Sentinel

隔离策略 线程池隔离 信号量/线程池混合隔离

熔断策略 错误比例熔断 异常比例/异常数/慢调用熔断

实时规则配置 支持 支持动态规则(Nacos集成)

流量控制 不支持 滑动窗口计数器

java

// Sentinel流控规则配置示例

FlowRule rule = new FlowRule();

rule.setResource("order_create");

rule.setGrade(RuleConstant.FLOW_GRADE_QPS);

rule.setCount(100); // QPS阈值

FlowRuleManager.loadRules(Collections.singletonList(rule));

核心架构差异

mermaid

graph LR

Hystrix-->线程池隔离A依赖服务

Sentinel-->信号量控制B依赖服务

Hystrix-->熔断回退CFallback逻辑

Sentinel-->实时监控D控制台

源码深度解析

  1. Hystrix:`HystrixCommand`通过`execute()`方法触发熔断逻辑,依赖`CircuitBreaker`状态机

  2. Sentinel:`Entry`入口对象调用`SphU.entry()`触发资源统计,`DegradeRuleManager`管理熔断规则

二十七、Service Mesh架构:Istio数据面通信原理

核心通信流程

  1. 服务发现:Pilot通过xDS协议下发服务路由规则

  2. 流量劫持:iptables重定向流量到Envoy代理

  3. 遥测数据:Envoy上报指标到Prometheus

性能优化点

  1. Sidecar资源控制:通过`resources.limits`限制CPU/Memory

  2. mTLS双向认证:使用SPIFFE标识服务身份

  3. WASM扩展:用WebAssembly实现自定义过滤器

二十八、热点数据治理:缓存击穿与雪崩防护

高并发场景解决方案

问题类型 解决方案 技术实现

缓存击穿 互斥锁+永不过期 Redis SETNX + 异步更新

缓存雪崩 随机过期时间+热点Key拆分 Caffeine二级缓存

数据一致性 双删策略+延迟双删 MySQL binlog监听

java

// 互斥锁实现缓存击穿防护

public Object getData(String key) {

Object value = redis.get(key);

if (value == null) {

if (redis.setnx("lock:" + key, "1")) {

try {

value = db.query(key);

redis.setex(key, 3600, value);

} finally {

redis.del("lock:" + key);

}

} else {

Thread.sleep(50);

return getData(key);

}

}

return value;

}

进阶挑战

  1. 多级缓存同步:Redis+LocalCache+MQ实现最终一致性

  2. 冷热数据分离:Redis ZSET按访问频率分层存储

  3. 自动降级策略:Sentinel动态切换数据源

相关推荐
算法鑫探20 分钟前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin52112320 分钟前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
WBluuue31 分钟前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
我叫黑大帅38 分钟前
通过eino-ext如何正常indexer RAG?
后端·面试·go
NotFound4861 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
木子墨5161 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌
EQUINOX12 小时前
2026年码蹄杯 本科院校赛道&青少年挑战赛道提高组初赛(省赛)第一场,个人题解
算法
萝卜小白2 小时前
算法实习Day04-MinerU2.5-pro
人工智能·算法·机器学习
Liangwei Lin2 小时前
洛谷 P3133 [USACO16JAN] Radio Contact G
数据结构·算法