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动态切换数据源

相关推荐
2301_780789666 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设7 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
ZhengEnCi8 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
步行cgn8 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川8 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵8 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David8 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1009 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
Pniubi9 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_6189 小时前
大模型落地三重优化实战
人工智能·算法·机器学习