SpringCloud常见面试题

Spring Cloud 最新架构概览 截至 2025 年,Spring Cloud 的架构已全面拥抱云原生技术,主要包括以下核心组件: 服务发现:Nacos 2.0 成为首选,支持动态服务发现、配置管理和服务元数据管理 API 网关:Spring Cloud Gateway 4.0 全面支持 WebFlux 和响应式编程 负载均衡:Spring Cloud LoadBalancer 替代 Ribbon,提供更轻量的客户端负载均衡 断路器:Sentinel 取代 Hystrix,提供更强大的流量控制和熔断降级能力 配置中心:Nacos Config 或 Apollo 成为主流选择,支持实时配置刷新 分布式链路追踪:Micrometer Tracing + Zipkin/Skywalking 组合,兼容 OpenTelemetry 标准 服务间通信:OpenFeign 支持响应式编程,与 WebClient 协同工作 Spring Cloud Gateway架构设计与核心原理详解 Spring Cloud Gateway 基于响应式编程模型(WebFlux + Reactor),通过 动态路由匹配(Predicate 断言)和 过滤器链(GlobalFilter/GatewayFilter) 实现请求转发,集成服务发现(如 Nacos)、负载均衡(Ribbon)及熔断限流(Hystrix/Sentinel),以非阻塞 I/O 模型支撑高并发,保障微服务网关的高性能与可扩展性。 一、架构设计 1. 分层模型 Spring Cloud Gateway 采用 四层分层架构,支持高并发与动态扩展: 网络层(Netty Server) 基于 Netty 实现异步非阻塞 I/O,单线程处理万级并发连接。 支持 HTTP/2、WebSocket 协议,通过 ReactorNettyServer 封装请求为 ServerWebExchange 对象。 路由层(Route Matching) ...

2025-07-21 · FLY的狐狸

SpringBoot框架基础介绍

Spring Boot 是基于 Spring 框架的开源开发框架,由 Pivotal 团队于 2014 年推出,旨在简化 Spring 应用的初始搭建和开发流程。以下是其核心特性、应用场景及技术价值的全面解析: 一、核心特性与技术优势 1. 约定优于配置(Convention Over Configuration) 自动配置机制:通过 @EnableAutoConfiguration 注解,根据类路径依赖自动配置组件(如数据库连接池、Web 服务器) 默认配置优化:提供合理的默认值(如内嵌 Tomcat 服务器),开发者仅需关注业务逻辑,减少 XML 配置 2. 起步依赖(Starter Dependencies) 场景化依赖管理:通过 spring-boot-starter-* 模块快速集成常用功能(如 spring-boot-starter-web 整合 Web 开发所需依赖) 版本统一控制:BOM(Bill of Materials)确保依赖版本兼容性,避免冲突 3. 嵌入式服务器与独立运行 内嵌容器:支持 Tomcat、Jetty、Undertow,无需部署 WAR 包,直接运行 JAR 文件 生产级监控:集成 Actuator 模块,提供健康检查、指标采集、审计日志等运维功能 4. 开发效率增强 热部署:通过 Spring DevTools 实现代码修改自动重启,提升调试效率 命令行工具:支持快速生成项目骨架、执行数据库迁移等操作 二、典型应用场景 1. 微服务架构 服务快速启动:每个微服务独立打包,通过 Spring Cloud 实现服务注册、负载均衡 云原生支持:与 Docker、Kubernetes 深度集成,适应容器化部署需求 2. RESTful API 开发 简化 Web 开发:通过 @RestController 和 @RequestMapping 快速定义接口 JSON 处理:默认集成 Jackson 库,实现对象与 JSON 的自动转换 3. 数据访问与持久化 ORM 整合:支持 JPA、MyBatis,通过 spring-boot-starter-data-jpa 简化数据库操作 连接池管理:内置 HikariCP(默认)或 Druid,优化数据库连接性能 4. 批处理与异步任务 Spring Batch:处理大规模数据导入/导出,支持事务管理和错误重试 @Async 注解:实现异步方法调用,提升系统吞吐量 三、版本演进与技术升级 版本系列 关键特性 适用场景 1.x 初始版本,支持 Java 8,集成 Tomcat 8 传统企业级应用 2.x 支持响应式编程(WebFlux)、Java 11+ 高并发、云原生应用 3.x 默认使用 Jakarta EE 9+,移除 Java 8 兼容 现代化微服务架构 升级建议:从 2.x 到 3.x 需注意包名变更(如 javax → jakarta)和废弃 API 的替换 ...

2025-07-21 · FLY的狐狸