可选项
Spring Framework
SpringBoot
SpringCloud
SpringCloudAlibaba
本质区别对比:
Spring Boot:单体应用快速开发脚手架
Spring Cloud:分布式系统开发解决方案集合
特性 | Spring Boot | Spring Cloud |
---|---|---|
目标用户 | 所有Spring开发者 | 微服务架构开发者 |
核心功能 | 自动化配置+嵌入式容器 | 分布式系统基础设施 |
技术覆盖层 | 单应用内部开发流 | 多服务间协作治理 |
依赖关系 | Spring Framework为基础 | 必须基于Spring Boot实现 |
Spring Boot功能模块 | Spring Cloud对应扩展 |
---|---|
Actuator监控 | Turbine集群监控 |
WebMVC | Feign声明式HTTP客户端 |
数据源配置 | Config分布式配置中心 |
定时任务 | Stream消息驱动 |
MainClassSpringApplicationAutoConfigrun()Load自动配置创建ApplicationContext返回Context对象MainClassSpringApplicationAutoConfig
Spring Boot核心特征:
内嵌Tomcat/Jetty容器
starter依赖自动装配
外部化YAML配置解析
Spring Cloud核心能力:
服务注册发现(Eureka/Nacos)
客户端负载均衡(Ribbon)
API智能路由(Zuul/Gateway)
熔断降级机制(Hystrix/Sentinel)
Spring Boot典型配置:
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root
Spring Cloud扩展配置:
spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 gateway: routes: - id: user_route uri: lb://user-service predicates: - Path=/api/users/**
Spring Boot starter:
org.springframework.boot spring-boot-starter-web
Spring Cloud引入方式:
org.springframework.cloud spring-cloud-dependencies 2021.0.3 pom import
是
否
需要
无需
是否需要分布式架构
选择Spring Cloud
使用Spring Boot
是否需要服务治理
选择Spring Cloud Netflix/Alibaba
使用基础组件
系统类型 | 推荐技术组合 |
---|---|
单体后台系统 | Spring Boot+MyBatis |
前后端分离项目 | Spring Boot+Security+JWT |
微服务架构 | Spring Cloud+Spring Boot |
云原生系统 | Spring Cloud+Kubernetes |
microservice-system/ ├── gateway-service # Spring Cloud Gateway ├── user-service # Spring Boot服务 ├── order-service # Spring Boot服务 └── config-server # Spring Cloud Config
测试指标 | Spring Boot | Spring Cloud |
---|---|---|
启动时间(普通服务) | 3.2秒 | 5.8秒(+80%) |
内存占用(空应用) | 150MB | 210MB(+40%) |
RPC调用延迟 | 本地调用≈0ms | HTTP调用2-5ms |
扩展方向 | Spring Boot | Spring Cloud |
---|---|---|
自定义starter | ✅高度支持 | ✅需要遵循规范 |
分布式事务 | ❌不支持 | ✅Seata集成方案 |
服务网格 | ❌原生不支持 | ✅支持Istio集成 |
Java基础
Spring框架
SpringBoot
SpringCloud
Spring Boot核心
自动配置原理
启动类注解分析
Actuator监控端点
Spring Cloud必修
服务注册发现机制
声明式服务调用原理
网关路由配置技巧
云原生扩展
Kubernetes部署实践
Service Mesh集成
分布式追踪系统
过度拆分微服务 (导致调用链路复杂,运维成本飙升)
混用新旧技术版本 (例:Spring Boot 3.x与Spring Cloud 2021.x不兼容)
忽视配置中心加密 (敏感信息泄露风险)
雪崩保护措施缺失 (未采用熔断降级机制)
监控系统不健全 (导致故障定位困难)
[简化思维] ✅ 消除样板代码 ✅ 约定优于配置 ✅ 快速验证原型
[分布式治理] 服务松耦合 故障隔离性 弹性伸缩能力
通过深入理解二者差异,我们可以得出黄金法则: Spring Boot打造武器,Spring Cloud制定兵法 当需要构建单兵作战单体应用时,Spring Boot是你的瑞士军刀; 当面对大规模的分布式战役时,Spring Cloud提供完整的作战指挥系统!