一、基础概念

  1. Spring Cloud 的核心组件有哪些?

    • 答案:Eureka/Nacos(服务注册发现)、Ribbon/LoadBalancer(负载均衡)、Feign/OpenFeign(声明式HTTP客户端)、Hystrix/Sentinel(熔断限流)、Zuul/Gateway(API网关)、Config/Nacos(配置中心)、Sleuth/Zipkin(分布式链路追踪)。
  2. Spring Cloud 与 Spring Boot 的关系?

    • 答案:Spring Boot 提供快速开发单微服务的能力;Spring Cloud 基于 Boot 构建分布式系统的工具箱,整合第三方组件(如Netflix OSS)实现微服务治理。

二、服务注册与发现

  1. Eureka 和 Nacos 的区别?

    • 答案
      特性EurekaNacos
      一致性协议AP(最终一致性)AP + CP(可切换)
      配置管理✔️(集成配置中心)
      健康检查客户端心跳主动探测 + 心跳
      权重/元数据✔️
  2. Eureka 如何防止服务列表过期?

    • 答案
      • 客户端每 30s 发送心跳到 Eureka Server。
      • Server 若 90s 未收到心跳,则将实例标记为过期并从注册表移除。
      • 客户端每 30s 从 Server 全量拉取服务列表(可配置增量同步)。

三、服务调用与负载均衡

  1. Ribbon 的负载均衡策略有哪些?

    • 答案
      • RoundRobinRule(轮询)
      • RandomRule(随机)
      • WeightedResponseTimeRule(响应时间加权)
      • ZoneAvoidanceRule(区域优先)
  2. Feign 的工作原理?

    • 答案
      1. 通过 @EnableFeignClients 扫描接口;
      2. 为接口生成动态代理
      3. 调用时拼接 HTTP 请求,由 Ribbon 负载均衡选择实例;
      4. 默认使用 JDK 的 HttpURLConnection 发送请求(可替换为 OKHttp)。

四、熔断与限流

  1. Hystrix 熔断器的状态转换流程?

    • 答案
      • 关闭(Closed):请求正常通过。
      • 打开(Open):错误率超阈值(默认50%),熔断开启,请求直接失败。
      • 半开(Half-Open):熔断一段时间后,尝试放行部分请求,若成功则关闭熔断。
  2. Sentinel 对比 Hystrix 的优势?

    • 答案
      • 实时监控:集成 Dashboard 实时显示 QPS/响应时间;
      • 规则持久化:支持推送到 Nacos/Redis;
      • 精细化控制:支持基于调用来源、热点参数的流控;
      • 低开销:基于滑动窗口的统计,性能损耗更低。

五、API 网关

  1. Spring Cloud Gateway 的过滤器类型?

    • 答案
      • Pre 过滤器:在路由前执行(如限流、日志);
      • Post 过滤器:在响应返回前执行(如修改响应头);
      • 全局过滤器:作用于所有路由(如认证、请求记录)。
  2. Gateway 如何实现动态路由?

    • 答案
      1. 集成 NacosRedis,监听路由配置变更;
      2. 实现 RouteDefinitionRepository 接口,从数据库读取路由规则;
      3. 调用 RouteLocatorBuilder 动态刷新路由。

六、配置中心

  1. Spring Cloud Config 的配置刷新原理?

    • 答案
      • 客户端通过 @RefreshScope 标记需要刷新的 Bean;
      • 调用 /actuator/refresh 端点 → 触发 RefreshEvent 事件;
      • 销毁旧 Bean 并重新初始化(依赖配置的 Bean会被重建)。
  2. Nacos 配置中心如何保证高可用?

    • 答案
      • 集群部署:至少 3 节点(推荐 Raft 协议);
      • 数据持久化:配置存储到 MySQL(避免单点故障);
      • 客户端缓存:本地缓存配置,即使 Server 宕机仍可运行。

七、分布式链路追踪

  1. Sleuth 的 TraceId 传递原理?
    • 答案
      • 通过 HTTP HeaderX-B3-TraceId)传递;
      • 集成 Feign/RestTemplate 自动注入 Header;
      • 支持异步线程(LazyTraceExecutor 包装线程池)。

八、场景设计题

  1. 如何设计一个服务雪崩防护方案?
    • 答案
      • 前端:请求限流(Nginx 层);
      • 网关:Sentinel 全局 QPS 限流 + 熔断规则;
      • 服务间:Feign 整合 Hystrix(设置超时、线程隔离);
      • 数据库:连接池控制(如 HikariCP 最大连接数);
      • 降级策略:返回兜底数据(如缓存中的旧数据)。

附:高频追问问题

  • 为什么需要 API 网关?与 Nginx 的区别?
  • Spring Cloud Alibaba 与 Netflix 组件的替代关系?
  • 如何保证微服务之间调用的幂等性?
  • 分布式事务在 Spring Cloud 中的解决方案(Seata)?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90690.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90690.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90690.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始的云计算生活——番外6,使用zabbix对中间件监控

目录 一.网络设备监控 1、GNS模拟器的使用 创建路由 创建交换机 2.构建网络 3.添加Cisco路由器的监控 二.中间件监控 1、MySQL数据库监控 1.1、拷贝自定义的监控脚本到指定目录 1.2、添加监控用户 1.3、重启zabbix-agent服务 1.4、在zabbix-server服务端测试数据 1…

haproxy七层均衡

一.haproxy的安装和服务信息1.1实验环境ip实验设备172.25.254.100haproxy172.25.254.10RS1172.25.254.20RS2172.25.254.111client1.2软件安装及配置haproxy主机上配置#下载#进入此文件进行编辑#关闭防火墙RS1主机上配置#下载#生成默认文件#重启#关闭防火墙RS2主机上配置#下载#生…

分类预测 | MATLAB实现CPO-SVM冠豪猪算法优化支持向量机分类预测

分类预测 | MATLAB实现CPO-SVM冠豪猪算法优化支持向量机分类预测 目录 分类预测 | MATLAB实现CPO-SVM冠豪猪算法优化支持向量机分类预测 分类效果 基本介绍 算法步骤 参数设定 运行环境 应用场景 程序设计 参考资料 分类效果 基本介绍 该MATLAB代码实现了基于冠豪猪优化算法(…

【MySQL 数据库】MySQL基本查询(第二节)

文章目录📝Update🌉 将孙悟空同学的数学成绩变更为 80 分🌉 将曹孟德同学的数学成绩变更为60分,语文成绩变更为70分🌉 将总成绩倒数前三的3位同学的数学成绩加上30分🌉将所有同学的语文成绩更新为原来的2倍…

Axios 响应拦截器

1.定义:响应拦截器(Response Interceptor)是一个可以在 axios 接收到服务器响应后,响应数据交给 .then() 处理之前执行的函数。你可以用它来统一处理响应数据,进行错误处理,或者对返回的数据做格式化和转换…

k8s的nodeport和ingress

1.流量转发图targerport转发到实际的容器端口containerPort(后端端口)nodeportingress2.配置场景总结字段作用对象必填示例值何时配置containerPort容器否80需明确记录容器端口时(推荐)targetPortPod是80定义 Service 转发规则时p…

VLA:自动驾驶的“新大脑”?

🔥 什么是 VLA?为什么突然火了?在自动驾驶圈子里,最近一个词特别火:VLA。它不是某个新车的型号,也不是某家公司的新品牌,而是一种全新的智能架构,被称为“自动驾驶的大脑2.0”。&…

Linux操作系统之线程(八):信号量sem

前言:大家好啊,我们上一篇文章已经讲解了关于线程同步的一种办法:运用条件变量cond。今天,我们就来学习一下线程同步的另外一种方法,信号量!!信号量呢有System V 信号量与POSIX 信号量&#xff…

【RocketMQ】一分钟了解RocketMQ

MQ是什么 MQ全称为Message Queue,即消息队列 ,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生 产、存储、消费全过程的软件系统,遵循FIFO原则。 MQ的好处有哪些 异步解耦 最常见的一个场景是…

01 01 01 第一部分 C++编程知识 C++入门 第一个C++程序

第一部分 C编程知识第一章 C入门 —— 第一个C程序一、第一个C程序代码展示//写一个C程序&#xff0c;实现在屏幕上打印 “hello world” #include <iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; }二、…

进制定义与转换详解

文章目录&#x1f4d8; 进制定义与转换详解一、进制的含义二、常见进制介绍1. 十进制&#xff08;Decimal&#xff0c;Base-10&#xff09;2. 二进制&#xff08;Binary&#xff0c;Base-2&#xff09;3. 八进制&#xff08;Octal&#xff0c;Base-8&#xff09;4. 十六进制&am…

【安卓笔记】用MVC、MVP、MVVM来实现井字棋案例

0. 环境&#xff1a;电脑&#xff1a;Windows10Android Studio: 2024.3.2编程语言: JavaGradle version&#xff1a;8.11.1Compile Sdk Version&#xff1a;35Java 版本&#xff1a;Java111. 首先、简单实现井字棋的功能。功能拆解&#xff1a;1. 棋盘为3x32. 点击棋盘button&a…

【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)

文章目录单向链表题目描述题目解析代码队列安排题目描述题目解析代码约瑟夫问题题目描述题目解析代码单向链表 题目描述 题目解析 这道题因为有大量的任意位置插入删除&#xff0c;所以肯定不能用数组&#xff0c;用链表是最合适的&#xff0c;而在算法竞赛通常都用静态链表&a…

当人机交互迈向新纪元:脑机接口与AR/VR/MR的狂飙之路

从手机到 “头盔”&#xff1a;交互终端的变革猜想​​在当今数字化时代&#xff0c;智能手机无疑是我们生活中不可或缺的一部分。它集通讯、娱乐、办公等多种功能于一身&#xff0c;成为了人们与外界交互的主要窗口。然而&#xff0c;随着科技的飞速发展&#xff0c;智能手机作…

InfluxDB HTTP API 接口调用详解(二)

实际应用案例演示 1. 数据写入案例 假设在一个物联网设备数据采集场景中&#xff0c;有多个传感器设备持续采集环境的温度和湿度数据。我们以 Python 语言为例&#xff0c;使用requests库来调用 InfluxDB 的 Write 接口将数据写入 InfluxDB。 首先&#xff0c;确保已经安装了…

世运会线上知识竞赛答题pk小程序怎么做

随着2025年成都世界运动会的来临&#xff0c;越来越多的企事业单位组织员工进行线上知识竞赛&#xff0c;那么答题PK小程序该怎么做&#xff0c;接下来我们来一一分析&#xff1a; 世运会线上知识竞赛答题pk小程序怎么做一、答题功能&#xff1a;支持多种题型&#xff0c;如选择…

Java毕业设计 | 基于微信小程序的家校互动作业管理系统(Spring Boot+Vue.js+uni-app+AI,附源码+文档)

Java毕业设计 | 基于微信小程序的家校互动作业管理系统&#xff08;Spring BootVue.jsuni-app&#xff0c;附源码文档&#xff09;&#x1f3af; 毕业设计私人教练 专注计算机毕设辅导第 6 年&#xff0c;累计 1v1 带飞 800 同学顺利通关。从选题、开题、代码、论文到答辩&…

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器 一、前言 由于 Jellyfin 的 GPL 协议和 Intel 的 media-driver (iHD) Linux 驱动&#xff08;部分开源&#xff09;在协议上不兼容的缘故&#xff0c;Jellyfin 官方的 Docker 镜像&#xff1a;jellyfin/jellyfin 并不包含 …

PyTorch武侠演义 第一卷:初入江湖 第4章:损失玉佩的评分风波

第一卷&#xff1a;初入江湖 第4章&#xff1a;损失玉佩的评分风波比武开幕 晨钟响彻山谷&#xff0c;PyTorch派三年一度的"模型比武大会"正式开始。各分舵弟子列队入场&#xff0c;林小码跟在Tensor大师身后&#xff0c;眼睛瞪得溜圆——只见&#xff1a; "卷积…

HttpServletRequestWrapper存储Request

HTTP请求的输入流只能被读取一次&#xff0c;再想获取就获取不到了&#xff0c;那有什么方法可以缓存呢&#xff0c;我们可以自定义一个HttpServletRequest&#xff0c;或者是想在请求参数中统一添加或删除参数也可以使用此类进行改造&#xff0c;然后通过过滤器继续向下流转。…