当前位置: 首页 > news >正文

Java高频面试题(十一):SpringCloud微服务核心技术全解析

  1. Spring Cloud技术框架(动态路由、灰度发布、流量控制、熔断降级、链路追踪等)
    1. 微服务概念
      • 每一个微服务的开发其实跟我们Spring boot的单体项目开发是一样的,只是开发的时候,我们就需要考虑,单体的项目多了,我们如何来管控,
      • 于是就可以使用nacos注册中心,把每一个单体项目都注册到注册中心上面,这样我们就能够知道我们的每一个应用都是怎么部署的。
      • 但是服务会根据我们的需求会进行不同程度的拆分,拆分完了之后,服务与服务之间又会存在调用关系,Ribbon就可以解决这个问题,但是Ribbon在编码层面不是很友好,我们可以使用OpenFegin,OpenFegin对Ribbon进行了封装,而且还提供了对Spring MVC注解支持。
      • 每一个微服务都有自己的配置文件,部署多了配置文件也会不方便管理,我们就可以使用nacos管理配置文件的配置中心。
      • 微服务形成的集群对于用户来说都是一个整体的服务,但是用户不可能记住我们每一台服务器地址,为了统一一个对外访问的服务器地址,我们就可以使用网关Gateway。
      • 至于灰度发布,我们可以将服务注册到注册中心,并提供gateway网关的Weight策略或Version标签来实现流量分配。
      • 服务与服务之间进行调用的时候还可能设计到数据的一致性问题,由于每一个微服务都是独立的进程,数据一致性保证就需要使用seata框架来完成分布式事务。
      • 为了追踪服务之间调用问题,我们就可以使用链路追踪Sleuth(zipkin)、Shywalking。
      • 在高并发的情况下,我们的服务可能会出现问题,为了减少我们微服务出现的问题以及预防出现的问题,我们就可以使用Sentinel流控框架,可以对访问的流量进行控制,同时还提供了服务熔断和降级的功能
    2. Spring Cloud面试题
      • Nacos与Eureka的区别?如何实现服务健康检测?
        1. Nacos支持AP(最终一致性)/CP(强一致性)模式切换,提供DNS-F和临时实例两种注册模式,通过心跳机制(默认5秒)和主动探测实现健康检查。对比Eureka仅支持AP模式,Nacos还集成了配置管理功能
      • Ribbon与OpenFeign如何协作?轮询策略有哪些
        1. Ribbon提供IRule接口实现轮询、随机等算法,OpenFeign通过@FeignClient注解(注解中写需要调用的注册的服务名称和请求路径,在Client接口中声明调用的方法)封装HTTP调用,支持熔断降级(需整合Hystrix或Sentinel)
        2. Sentinel流量控制:使用注解@SentinelResource注解在控制层方法上,value设置流控名称,使用blockHandlerClass指定流控处理的控制层的类,blockHandler是处理流控时处理BlockException异常的方法,http://ip:port/zipkin访问Sentinel可视化流控的配置界面。
      • Nacos配置变更如何实时生效?与Spring Cloud Config对比优劣
        1. 通过@RefreshScope注解(在控制层类上注解,可能会导致控制层定时器失效,需要监听RefreshScopeRefrshedEvent事件,在监听方法中调用一次定时方法,这样bean就会被创建)或Nacos监听机制实现,对比Config需依赖Git Webhook,Nacso还支持多环境配置和版本回滚。
      • Gateway如何实现灰度发布?过滤器执行顺序
        1. 利用Weight路由权重或Header版本标签进行分流流量
        2. 自定义GlobalFilter需实现Ordered接口控制优先级
      • Seata的AT模式工作流程?Seluth如何整合Zipkin?
        1. AT模式通过UNDO_LOG回滚日志实现二阶段回滚,
        2. Seluth生成TraceID串联调用链(请求到达分布式入口端点,Seluth为该请求创建一个唯一TraceID,请求在分布式系统流转时,框架始终保持传递该唯一值,直到请求返回,通过TraceID将所有请求串联起来,就形成了一条完整的链路,SpanID同理,得到调用时间,事件名称,请求信息的元数据),Zipkin可视化展示耗时和拓扑(将所有模块yml中加入zipkin配置,注:不要让nacos把zipkin注册进去)
http://www.jsqmd.com/news/495641/

相关文章:

  • 2026年 低压氧舱厂家推荐排行榜:民用/商用/智能/便携式低压氧舱,康养氧舱品牌实力与创新技术深度解析 - 品牌企业推荐师(官方)
  • 多线程优化:DamoFD-0.5G高并发推理的性能调优实践
  • 别再手动复制SSH公钥了,Linux服务器一键从GitHub快速导入公钥
  • 从安装失败到成功:我的MacBook M1运行Keil C51踩坑全记录
  • 告别Windows AI功能:RemoveWindowsAI实现系统优化的新方案
  • 图像篡改检测技术详解(下篇)--文本与金融图像篡改检测
  • 汽车精密零部件清洁度检测设备选型指南:从精度到重复性的关键考量 - 西恩士工业 - 工业设备研究社
  • 开源眼动追踪技术的颠覆式应用与跨界融合实践
  • python基础学习笔记第四章
  • 工控主板再创新高,龙芯3B5000强势出彩
  • 频谱分析仪测信噪比全攻略:从原理到实战(附普源RSA5065N操作示例)
  • 2026年 干燥机厂家推荐排行榜:桨叶/空心桨叶/污泥/煤泥/液体/真空/多层/撬装式/转筒/高温熔盐干燥机,实力品牌深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026 AI 框架选型指南:8大主流框架深度对比,小白程序员避坑必看(收藏版)
  • 基于 YOLOv8 的无人机航拍视角车辆行人道路目标检测系统 YOLOV8模型如何训练无人机道路车辆行人目标检测数据集
  • 盒马鲜生卡回收平台精选指南,回收新趋势 - 京回收小程序
  • Activiti7实战:绕过缓存机制,实现已部署流程的在线热更新
  • # 应急响应实战笔记——入侵排查篇
  • 好用的AI硬件开发厂家
  • 零基础部署KART-RERANK:Ubuntu 20.04系统环境保姆级配置指南
  • FreeRTOS信号量详解:从二进制到计数型的实战对比(STM32 CubeMx版)
  • 打开网站显示Parse error: syntax error, unexpected variable $xxx错误怎么办|已解决
  • linux matlab r2025a以及questasim 2024.1资源以及安装
  • Qwen-Image-Edit-2511-Unblur-Upscale效果展示:从模糊到高清,人像修复惊艳对比
  • Hypermesh小BUG修复
  • 实验室智能管理平台功能与价值分析 全生命周期管理的数字化能力
  • YOLO实战:model.predict返回结果Results的10个关键属性解析(附代码示例)
  • PHP 网站完整搬家教程(不报错、不断站)
  • Python机器学习空间模拟与时间预测:生态水文实战;地表参数空间模拟(土地利用分类/降尺度)与水文过程时间预测(径流/地下水位)
  • python-flask的家庭成员亲子相册图片照片管理系统的设计与实现_django pycharm vue
  • Vue2项目中如何通过开源组件优化局域网医疗影像大附件的浏览器端分片校验?