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

相关推荐
llwszx1 小时前
深入理解Java锁原理(一):偏向锁的设计原理与性能优化
java·spring··偏向锁
程序员岳焱4 小时前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
麦兜*5 小时前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
大只鹅5 小时前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch
ai小鬼头5 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
IT_10246 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
bobz9656 小时前
动态规划
后端
stark张宇6 小时前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端
亚力山大抵7 小时前
实验六-使用PyMySQL数据存储的Flask登录系统-实验七-集成Flask-SocketIO的实时通信系统
后端·python·flask
超级小忍7 小时前
Spring Boot 中常用的工具类库及其使用示例(完整版)
spring boot·后端