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 的工具来处理配置管理和流量控制。

相关推荐
helloworld工程师39 分钟前
Spring AI应用:利用DeepSeek+嵌入模型+Milvus向量数据库实现检索增强生成--RAG应用(超详细)
人工智能·spring·milvus
我命由我123452 小时前
35.Java线程池(线程池概述、线程池的架构、线程池的种类与创建、线程池的底层原理、线程池的工作流程、线程池的拒绝策略、自定义线程池)
java·服务器·开发语言·jvm·后端·架构·java-ee
whoarethenext5 小时前
qt的基本使用
开发语言·c++·后端·qt
_zsw5 小时前
Spring三级缓存学习
学习·spring·缓存
Charlie__ZS6 小时前
SpringCloud - 分布式事务
分布式·spring·spring cloud
草捏子8 小时前
主从延迟导致数据读不到?手把手教你架构级解决方案
后端
橘猫云计算机设计9 小时前
基于Python电影数据的实时分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·后端·python·信息可视化·小程序·毕业设计
Yolo@~9 小时前
SpringBoot无法访问静态资源文件CSS、Js问题
java·spring boot·后端
大鸡腿同学9 小时前
资源背后的成事密码
后端
lisw0510 小时前
探索 Python 的 functools 模块:缓存、属性缓存与 LRU 缓存
python·spring·缓存