Spring Cloud 简介

Spring Cloud专注于为典型用例提供良好的开箱即用体验和可扩展性。提供对微服务架构的支持,包含服务注册与发现、负载均衡、跨服务调用、熔断限流、配置管理、服务网关、分布式消息等功能。它简化了微服务的开发和运维,同时与Spring Boot无缝集成,提供了易于配置和管理的解决方案。

spring cloud 的版本

spring cloud的早期版本Spring Cloud Dalston, Edgware, Finchley, Greenwich, 2020(又名Ilford), 2021.0(又名Jubilee)和2022.0(又名Kilburn)都已达到生命终止状态,不再支持。最新的版本2023.0.x (又名Leyton),但是最新的版本都是依赖spring boot 3版本,spring boot3 已不再支持jdk8。这里学习还是以旧的版本来搭建环境,这里以spring cloud 2021来学习

spring cloud 和 spring boot版本依赖关系如下:

Release Train Spring Boot Generation
2023.0.x aka Leyton 3.3.x, 3.2.x
2022.0.x aka Kilburn 3.0.x, 3.1.x (Starting with 2022.0.3)
2021.0.x aka Jubilee 2.6.x, 2.7.x (Starting with 2021.0.3)
2020.0.x aka Ilford 2.4.x, 2.5.x (Starting with 2020.0.3)
Hoxton 2.2.x, 2.3.x (Starting with SR5)
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

设置父工程全局依赖

复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.7.11</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2021.0.8</version>
            <type>pom</type>spring
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2021.0.4.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这里依赖三个springboot版本2.7.11、springcloud版本2021.0.8、springcloud alibaba2021.0.4.0。这样在父工程dependencyManagement配置好后,子工程直接写具体的引用不用在写具体的版本号。并且各个模块版本依赖都是合适的,不会出现版本不匹配问题。

如引入springweb

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

这里不写版本号会默认使用spring-boot-dependencies中指定的版本2.7.11。这个具体的版本指定在spring-boot-dependencies-2.7.11.pom文件里。

后面的学习都将基于这个父工程依赖配置。

Spring Cloud 、Spring Cloud Netflix 、Spring Cloud Alibaba的关系?

Spring Cloud 是一个用于构建分布式系统(特别是微服务架构)的框架,提供了一组功能全面的工具,帮助开发者解决常见的分布式系统问题,常用的组件如下。

  1. Spring Cloud Config:集中式配置管理,支持服务配置的动态刷新。
  2. Spring Cloud Netflix:集成 Netflix 组件
  3. Spring Cloud Gateway:高性能的 API 网关,提供路由、过滤和负载均衡功能。
  4. Spring Cloud Sleuth:分布式跟踪,集成了 Zipkin 和 Brave,用于日志追踪和性能监控。
  5. Spring Cloud Stream:构建消息驱动的微服务,支持消息中间件如 Kafka 和 RabbitMQ。
  6. Spring Cloud Bus:用于在分布式系统中传播事件和消息,常用于配置刷新。
  7. Spring Cloud Consul:集成 Consul 进行服务发现和配置管理。
  8. Spring Cloud Zookeeper:集成 Zookeeper 用于服务发现和配置管理。
  9. Spring Cloud Alibaba:集成 Alibaba 的开源项目

Spring Cloud Netflix 是 Spring Cloud 的一个子项目,专注于集成 Netflix (国外有名的视频网站公司)的开源组件。这些组件包括:

  • Eureka:服务注册与发现
  • Ribbon:客户端负载均衡
  • Hystrix:断路器模式
  • Zuul:网关和路由

Spring Cloud Netflix 提供了微服务架构所需的基础设施和工具,使得在这些常见的微服务问题上更加方便和高效。

Spring Cloud Alibaba 是 Spring Cloud 的一个扩展,专注于集成 Alibaba 的开源项目和服务。它提供了一些与中国市场和Alibaba云服务相关的解决方案,如:

  • Nacos:动态服务发现和配置管理
  • Sentinel:流量控制和熔断保护
  • RocketMQ:分布式消息中间件
  • Dubbo:高性能Java RPC框架
  • Seata:分布式事务管理

Spring Cloud Alibaba 旨在将 Alibaba 的强大工具和服务无缝集成到 Spring Cloud 中,提供额外的功能和优化。

这些项目可以单独使用,也可以根据具体需求结合使用。例如,你可以在一个项目中使用 Spring Cloud Netflix 的组件来处理服务发现和负载均衡,同时使用 Spring Cloud Alibaba 的工具来处理配置管理和流量控制。

相关推荐
Coder_Boy_3 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
瑶山3 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
2301_818732063 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
码字的字节3 小时前
Spring Cloud服务注册与发现(一):手把手搭建Eureka Server,详解高可用配置
spring·spring cloud·eureka
大厂资深架构师3 小时前
Spring Cloud Eureka在后端系统中的服务剔除策略
spring·spring cloud·ai·eureka
掘金者阿豪4 小时前
关系数据库迁移的“暗礁”:金仓数据库如何规避数据完整性与一致性风险
后端
ServBay4 小时前
一个下午,一台电脑,终结你 90% 的 Symfony 重复劳动
后端·php·symfony
sino爱学习4 小时前
高性能线程池实践:Dubbo EagerThreadPool 设计与应用
java·后端
颜酱4 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
掘金者阿豪4 小时前
UUID的隐形成本:一个让数据库“慢下来”的陷阱
后端