摘要:

1、通俗易懂,适合小白
2、仅做面试复习用,部分来源网络,博文免费,知识无价,侵权请联系!


1. 什么是Spring Cloud框架?子项目哪几大类?

Spring Cloud是一套分布式系统工具集,2023年核心模块:

  • 服务发现:Nacos(替代Eureka)、Consul
  • 配置中心:Nacos Config、阿里云ACM
  • 通信:OpenFeign(HTTP/3)、Spring Cloud gRPC
  • 流量治理:Sentinel(替代Hystrix)
  • 网关:Spring Cloud Gateway(WebFlux响应式)
  • 可观测性:Micrometer + Prometheus + SkyWalking

2. Spring Cloud框架有哪些优缺点?

优点

  • 深度集成Kubernetes(通过Spring Cloud Kubernetes)
  • 支持响应式编程(WebFlux+Reactive Feign)
  • 云厂商中立(阿里云/华为云/AWS适配)

缺点

  • Netflix组件迁移成本(需替换Hystrix/Ribbon/Zuul)
  • 学习曲线陡峭(需掌握K8s+云原生)

3. Spring Cloud断路器的作用是什么?

使用Sentinel实现熔断:

@SentinelResource(value = "userService",blockHandler = "blockHandler",fallback = "fallback")
public User getUser(String id) {// 远程调用
}

当异常比例>50%时自动熔断,10秒后进入半开状态试探恢复。


4. 【真题】Spring Cloud核心组件有哪些?

组件作用替代旧组件
Nacos服务发现+配置中心Eureka
Sentinel熔断降级+流量控制Hystrix
Gateway响应式API网关Zuul
OpenTelemetry分布式追踪Sleuth

5. Spring Cloud如何实现服务的注册?

Nacos注册流程

  1. 服务启动时发送元数据到Nacos Server
  2. 定期发送心跳(默认5秒)
  3. 消费者通过DNS或HTTP API获取服务列表
# application.yml
spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848namespace: dev

6. 什么是Spring Cloud Config?

现代方案:使用Nacos Config实现:

  • 配置动态推送(长轮询)
  • 版本历史回滚
  • 加密配置(集成KMS)
@RefreshScope // 支持配置热更新
@RestController
public class ConfigController {@Value("${app.timeout}")private String timeout;
}

7. Spring Cloud Eureka自我保护机制是什么?

Nacos替代方案:健康保护阈值

  • 当健康实例比例<0.3时:
    • 返回所有实例(包括不健康)
    • 避免网络抖动导致服务全不可用

8. 什么是服务熔断?什么是服务降级?

Sentinel实现

机制配置示例效果
熔断DegradeRule.setCount(500)QPS>500时拒绝请求
降级@SentinelResource(fallback)返回本地缓存数据

9. Spring Boot和Spring Cloud之间有什么联系?

基础
基础
扩展
依赖
SpringBoot
自动配置
内嵌容器
SpringCloud
分布式能力

10. 【真题】Spring Cloud Feign和Dubbo区别

特性OpenFeign 2023Dubbo 3.x
协议HTTP/3 + RESTTriple协议(兼容gRPC)
性能50ms延迟1ms延迟
适用场景跨语言调用高性能Java内部调用

11. 什么是微服务?

2023年定义:

  • 独立部署的业务单元
  • 通过API或事件通信
  • 自治的技术栈选择
  • 典型示例:电商系统的订单、支付、库存服务

12. 微服务通信方式有哪几种?

现代通信矩阵

类型协议适用场景
同步HTTP/3(OpenFeign)外部调用
异步Kafka/RocketMQ事件驱动架构
高性能RPCgRPC/Triple内部服务调用

13. 什么是微服务架构?

2023年特征

  • 服务网格(Service Mesh)集成
  • Serverless无服务化扩展
  • 云原生基础设施依赖(K8s+Istio)
  • 可观测性成为标配

14. 什么是Spring Cloud Netflix?

现状

  • 进入维护模式(2022年停止更新)
  • 推荐替代方案:
    • Eureka → Nacos
    • Hystrix → Sentinel
    • Zuul → Spring Cloud Gateway

15. 什么是Spring Cloud Bus?

现代用法
通过Nacos Config + WebSocket实现配置实时推送,替代传统的RabbitMQ/Kafka方案。


16. 什么是Spring Cloud Consul?

与Nacos对比

特性ConsulNacos
配置中心支持更强(历史版本)
服务发现多数据中心更易用
协议RaftDistro

17. 【真题】Spring Cloud Zuul如何实现请求修改转发?

Gateway替代方案

public class AuthFilter implements GlobalFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {exchange.getRequest().mutate().header("X-Auth", "token");return chain.filter(exchange);}
}

18. 什么是Spring Cloud Sleuth?

演进为OpenTelemetry

  • 分布式追踪(Trace)
  • 指标监控(Metrics)
  • 日志关联(Logging)
    集成方案:
// 自动生成TraceID
@GetMapping("/api")
public String endpoint() {tracer.currentSpan().tag("user", "test");return "Hello";
}

19. Eureka和Zookeeper有哪些区别?

2023年选择

  • 新项目:直接使用Nacos
  • 旧系统迁移
    • Eureka → Nacos
    • Zookeeper → Nacos/Consul

20. Spring Cloud Zuul如何处理负载均衡?

Gateway + LoadBalancer方案

spring:cloud:gateway:routes:- id: user-serviceuri: lb://user-servicepredicates:- Path=/api/users/**

21. 什么是Spring Cloud Zookeeper?

现状

  • 已被Nacos取代
  • 仅用于遗留系统维护
  • 缺点:CP模型导致可用性低

22. 【真题】Spring Cloud Feign远程调用流程?

OpenFeign 2023流程

  1. 动态代理生成
  2. 负载均衡(Spring Cloud LoadBalancer)
  3. HTTP/3连接建立
  4. 流量控制(Sentinel)
  5. 结果解码

23. 什么是Spring Cloud OpenFeign?

最新特性

  • 支持响应式编程(Reactive Feign)
  • 内置重试机制(Resilience4j)
  • 集成Micrometer指标采集

24. 什么是Hystrix?如何实现容错机制?

Sentinel对比

40%30%20%10%功能对比熔断降级流量控制系统自适应热点防护

25. 微服务有哪些优缺点?

2023年新挑战

  • 优点:更好的云原生适配
  • 缺点:服务网格带来的复杂度

26. 什么是Spring Cloud Stream?

现代架构
事件驱动架构(EDA)实现:

// 发布事件
streamBridge.send("order-out-0", OrderEvent);// 订阅事件
@Bean
public Consumer<OrderEvent> handleOrder() {return event -> log.info("Received: {}", event);
}

27. Spring Cloud中为什么要使用Feign?

2023年价值

  • 声明式HTTP客户端
  • 内置负载均衡
  • 支持响应式编程
  • 与Spring生态深度集成

28. 什么是雪崩效应?

现代案例
某服务因慢SQL导致线程池耗尽,调用方因超时不断重试,最终整个集群不可用。


29. 雪崩效应常见场景?

2023年典型场景

  • 缓存击穿(Redis热点Key失效)
  • 慢查询连锁反应
  • 第三方API限流导致阻塞

30. 雪崩效应解决方案?

现代防御体系

  1. 前端:请求限流(Nginx/AWS WAF)
  2. 网关:熔断降级(Sentinel)
  3. 服务:线程池隔离(Virtual Thread)
  4. 存储:多级缓存(Caffeine+Redis)

31. Ribbon和Feign有什么区别?

2023版

组件作用现状
Spring Cloud LB客户端负载均衡官方默认
OpenFeign声明式HTTP客户端推荐使用
Ribbon维护模式不推荐新项目

32. 断路器有几种熔断状态?

Sentinel状态机

  1. CLOSED:正常请求
  2. OPEN:直接拒绝请求
  3. HALF-OPEN:试探性放行部分请求

33. 什么是Spring Cloud Ribbon?

替代方案
使用Spring Cloud LoadBalancer:

@Bean
@LoadBalanced // 开启负载均衡
public WebClient.Builder webClientBuilder() {return WebClient.builder();
}

34. 什么是Spring Cloud Security?

2023方案

  • OAuth2.0:Spring Authorization Server
  • 认证:JWT + OIDC
  • 授权:RBAC模型

35. Ribbon和Nginx负载均衡区别?

现代对比

维度Spring Cloud LBNginx Plus
类型客户端LB服务端LB
动态调整实时生效需reload配置
协议支持HTTP/gRPCHTTP/TCP/UDP

36. Zuul和Nginx有什么区别?

网关选型建议

  • 新项目:Spring Cloud Gateway
  • 边缘网关:Nginx + Lua脚本
  • Service Mesh:Istio Ingress

37. Zuul和Spring Cloud Gateway区别?

性能对比

测试场景Zuul 2.xGateway提升幅度
100并发/RPS12,00035,000291%
平均延迟(ms)451664%

38. 【真题】Spring Cloud服务发现原理?

Nacos实现

  1. 服务启动注册元数据
  2. 心跳维持健康状态(5秒)
  3. 客户端缓存服务列表
  4. 服务变更事件推送

39. OpenFeign和Feign有什么区别?

核心差异

  • Feign:仅基础HTTP客户端
  • OpenFeign
    • 集成Spring MVC注解
    • 支持响应式
    • 内置负载均衡

40. Load Balancer负载均衡是什么?

Spring Cloud LB特性

  • 健康检查过滤
  • 权重路由
  • 同Zone优先
@Bean
public ReactorLoadBalancer<ServiceInstance> customLB() {return new SameZonePreferenceLoadBalancer();
}

41. 微服务技术栈有哪些?

2023全景图

  • 开发框架:Spring Cloud、Micronaut
  • 服务网格:Istio、Linkerd
  • Serverless:Knative、AWS Lambda

42. @LoadBalanced注解作用?

实现原理

@Bean
@LoadBalanced // 关键点:注入LoadBalancerInterceptor
public RestTemplate restTemplate() {return new RestTemplate();
}

43. 什么是Spring Cloud Gateway?

核心功能

  • WebFlux非阻塞IO
  • 动态路由
  • 集成Circuit Breaker
spring:cloud:gateway:routes:- id: authuri: lb://auth-servicepredicates:- Path=/api/auth/**

44. 【真题】Feign远程调用流程实现?

详细时序

ClientFeignLBSentinelService1. 接口调用2. 获取实例3. 流控检查通过4. HTTP请求5. 返回结果ClientFeignLBSentinelService

45. Zuul过滤器类型?

Gateway过滤器

  • Pre:认证/限流
  • Route:请求转发
  • Post:响应修改
  • Error:异常处理

46. Zuul如何处理认证授权?

现代方案

public class AuthFilter implements GlobalFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {String token = exchange.getRequest().getHeaders().getFirst("Authorization");if(!jwt.verify(token)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);}
}

47. 什么是Spring Cloud Task?

使用场景

  • 批处理作业
  • 定时任务
  • 短时数据处理
@Bean
public CommandLineRunner taskRunner() {return args -> {// 一次性任务逻辑};
}

ps:Spring Cloud Task 详解

48. Spring Cloud主要解决什么问题?

2023年核心价值

  1. 服务治理:Nacos + K8s Service
  2. 配置管理:Nacos Config + 版本回溯
  3. 流量控制:Sentinel + Gateway
  4. 可观测性:Micrometer + OpenTelemetry

49. Zuul如何处理错误异常?

Gateway统一异常处理

@Bean
public ErrorWebExceptionHandler customErrorHandler() {return (exchange, ex) -> {exchange.getResponse().writeWith(Mono.just(buffer(ex.getMessage())));return Mono.empty();};
}

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

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

相关文章

资源查看-iostat命令

文章目录 系统中未安装 iostat 命令 1. 监控CPU与磁盘的基础负载 2. 诊断I/O性能瓶颈 3. 实时监控与动态采样 4. 特定设备或分区的精细化监控 5. 性能测试与基准数据生成 6. 结合其他工具进行综合调优 总结 结果输出速查表 第一部分:CPU统计信息 第二部分:设备/磁盘统计信息(…

STM32 HAL库外设编程学习笔记

STM32 HAL库外设编程 1. 概述 本文档是基于STM32 HAL库的外设编程学习笔记&#xff0c;主要包括以下外设的配置和使用方法&#xff1a; GPIO&#xff1a;通用输入输出接口ADC&#xff1a;模数转换器UART&#xff1a;通用异步收发器TIM&#xff1a;定时器I2C&#xff1a;内部…

DHCP服务配置与管理实战指南

DHCP 服务配置与管理笔记 一、DHCP 核心概念 1. DHCP 定义与功能 DHCP (Dynamic Host Configuration Protocol)&#xff1a;动态主机配置协议核心功能&#xff1a; 自动分配 IP 地址提供子网掩码、网关、DNS 等网络参数管理 IP 地址租约周期 典型应用&#xff1a;ADSL拨号、企业…

WebSocket 在多线程环境下处理 Session并发

WebSocket 在多线程环境下处理 Session并发时&#xff0c;常见问题包括状态冲突&#xff08;如 IllegalStateException&#xff09;、消息乱序、连接超时等。以下是综合各技术方案的解决方案&#xff0c;分为单机多线程和分布式集群两类场景&#xff1a;&#x1f512; 一、单机…

JDBC的连接过程(超详细)

JDBC&#xff08;Java Database Connectivity&#xff09;是 Java 用于访问数据库的标准 API&#xff0c;它允许 Java 程序与各种不同类型的数据库进行交互&#xff0c; 其连接数据库的过程主要包含以下几个步骤&#xff1a;1. 导入 JDBC 驱动依赖在使用 JDBC 连接数据库之前&a…

本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕校对增强版

1. 实现功能 M4-4: 校对增强版 (最终完全体) 本脚本是整个 Module 的最终形态&#xff0c;采用了“代码预处理 LLM校对”的终极方案&#xff1a; 代码预处理: 确定性地在每个语音片段后添加逗号&#xff0c;生成一份“标点草稿”。LLM校对: LLM 的任务被简化为“校对和修正”这…

MySQL数据库简介

1 简介 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB公司开发&#xff0c;属于 Oracle 旗下产品&#xff0c;是当今最流行的关系型数据库管理系统之一&#xff0c;在 WEB应用方面&#xff0c;MySQL是最好的RDBMS (Relational Database Management System&#…

[Oracle] UNPIVOT 列转行

Oracle数据库中的UNPIVOT是一种用于将列转换为行的SQL操作&#xff0c;它允许用户将多个列的数据转换为多行的形式&#xff0c;以便进行更灵活的数据分析和报表生成UNPIVOT主要用于将宽表(多列)转换为长表(多行)&#xff0c;减少表的列数&#xff0c;增加行数语法格式SELECT pi…

node.js 学习笔记3 HTTP

path模块 path模块主要用于操作路径。要使用path&#xff0c;首先需要引入path模块。require(path) path.resolve 用于拼接规范的绝对路径。 如果想拼接一个路径&#xff0c;有时候是使用字符串手动拼接的&#xff0c;但由于系统的规范不同&#xff0c;路径中的\和/无法统一…

Flutter Dialog、BottomSheet

属性说明title标题content内容actions按钮applicationName说明文字applicationVersion版本applicationLegalese版本基本使用class MyState extends State {AlertDialog delDialog(BuildContext context) {AlertDialog alertDialog AlertDialog(title: Text("提示"),…

《算法导论》第 19 章 - 斐波那契堆

引言斐波那契堆&#xff08;Fibonacci Heap&#xff09;是一种高效的可合并堆数据结构&#xff0c;由 Michael L. Fredman 和 Robert E. Tarjan 于 1984 年提出。它在许多优先队列操作中提供了极佳的 amortized&#xff08;摊还&#xff09;时间复杂度&#xff0c;尤其适用于需…

MySQL-日志

MySQL-日志前言一、错误日志&#xff08;error log&#xff09;二、慢查询日志(slow query log)三 、一般查询日志(general log)四、 事务日志重做日志&#xff08;redo log&#xff09;回滚日志&#xff08;undo log&#xff09;五、 二进制日志(bin log)/归档日志 > 数据同…

嵌入式C语言编程:策略模式、状态模式和状态机的应用

概述 在没有面向对象语法的C语言中&#xff0c;策略&#xff08;Strategy&#xff09;模式和状态&#xff08;State&#xff09;模式都通过“上下文 接口”组合来模拟多态。 它们在代码结构上几乎一致&#xff0c;但设计意图和应用场景却差异很大。 本文分三部分深入剖析&…

人工智能、机器学习、深度学习:2025技术革命的深度解析

目录 人工智能、机器学习、深度学习&#xff1a;技术革命的深度解析 引言 第一部分&#xff1a;人工智能的起源与演进 1.1 人工智能的定义 1.2 人工智能的历史 1.3 人工智能的关键概念 a.知识表示&#xff08;Knowledge Representation&#xff09; b.搜索算法&#xf…

【Python】常用内置模块

1.os 文件目录 import os# 创建文件夹 os.mkdir(dir) # 判断文件是否存在 os.path.exists(path) # 列出文件夹下文件列表 os.listdir(dir)""" 常用 """ # 当前文件相对路径 os.getcwd()# 当前文件绝对路径 os.path.abspath(__file__)# 当前文…

(Python)爬虫进阶(Python爬虫教程)(CSS选择器)

源代码&#xff1a;#导入库 import requests from bs4 import BeautifulSoup import pandas as pd#爬虫函数 def scrape_books():#1.基本网址连接base_url "http://books.toscrape.com"#2.获取基本网址responserequests.get(base_url)#3.检查是否正常访问if respons…

第七节 自然语言处理与Bert

自然语言处理与BERT模型&#xff1a;从基础到实践入门 自然语言处理&#xff08;NLP&#xff09;的核心目标之一是让计算机理解人类语言的语义和上下文。本文将从基础的字词表示出发&#xff0c;逐步解析传统模型的局限性、Self-attention的突破性思想&#xff0c;以及BERT如何…

攻击者瞄准加密技术的基础:智能合约

虽然利用许多智能合约中的安全漏洞已经成为网络攻击者的长期目标&#xff0c;但越来越多的安全公司开始关注使用欺诈性或混淆的智能合约从加密货币账户中窃取资金的骗局。 根据网络安全公司 SentinelOne 本周发布的分析报告&#xff0c;在最近一次引人注目的攻击中&#xff0c…

基于开源AI大模型、AI智能名片与S2B2C商城小程序的零售智能化升级路径研究

摘要&#xff1a;在零售业数字化转型浪潮中&#xff0c;人工智能技术正从“辅助工具”向“核心生产力”演进。本文聚焦开源AI大模型、AI智能名片与S2B2C商城小程序的协同应用&#xff0c;提出“数据感知-关系重构-生态协同”的三维创新框架。通过分析智能传感、动态画像与供应链…

机器学习 朴素贝叶斯

目录 一.什么是朴素贝叶斯 1.1 从 “概率” 到 “分类” 二.朴素贝叶斯的数学基础&#xff1a;贝叶斯定理 2.1 贝叶斯定理公式 2.2 从贝叶斯定理到朴素贝叶斯分类 2.3 “朴素” 的关键&#xff1a;特征独立性假设 三、朴素贝叶斯的三种常见类型 3.1 高斯朴素贝叶斯&…