SpringCloud概述

简介: Spring Cloud是Spring团队推出的微服务一站式解决方案,弥补了各独立组件(如Nacos、RabbitMQ等)缺乏统一架构的不足。其特点为约定优于配置、组件丰富、开箱即用,支持云原生。版本以伦敦地铁站命名,避免与子项目冲突。Spring Cloud Alibaba由阿里贡献,集成Nacos、Sentinel、Seata等成熟组件,因Netflix套件停更,现成为主流选择,功能更完整且经大规模验证,是当前微服务架构的优选技术栈。

1.SpringCloud诞生

基于前面章节,我们深知微服务已成为当前开发的主流技术栈,但是如dubbo、zookeeper、nacos、rocketmq、rabbitmq、springboot、redis、es这般众多技术都只解决了一个或一类问题,微服务并没有一个统一的解决方案。开发人员或架构师想要做架构设计或系统拆分时,还需要深度调研技术选项。那么有没有一个技术可以一呼百应,做到一个彻底的解决方案呢?于是Spring团队推出了他们的微服务解决方案-Spring Cloud。

2.SpringCloud特点

作为一款优秀的微服务解决方案,其主要特点如下

  • 约定大于配置
  • 组件丰富,功能齐全
  • 灵活,开箱即用,快速启动
  • 完美适配云环境软件架构的云原生应用

3.SpringCloud版本

Spring-Cloud的github仓库:https://github.com/spring-cloud

大多数Spring项目版本号是:主版本号.次版本号.增量版本号.里程碑版本号,如Spring版本:4.3.1.RELEASE,其中主版本号标识重大重构,次版本号标识新特性调整,增量版本号一般标识bug-fix,里程碑则标识某版本号的里程碑,也可以没有。

Spring Cloud通过伦敦地铁站的形式进行命名,如下Hoxton.SR12(Hoxton:主版本号,SR:Service Release,X数字:次版本号)。

因为Spring Cloud是一个大综合性的项目,包含很多子项目,由于子项目也维护着自己的版本号,所以通过这种命名形式定义版本号,避免与子项目版本冲突。

4.SpringCloud子项目

https://spring.io/projects/spring-cloud#overview

5.SpringCloud/SpringBoot版本兼容关系

6.SpringCloud Alibaba诞生

随着淘系业务的发展,阿里巴巴内部针对Spring Cloud做了自身吸收后,也贡献出优秀的Spring Cloud Alibaba解决方案,应运而生孵化出如Nacos这般优秀的中间件,并被Spring Cloud官方认可。至此Spring Cloud作为微服务解决方案的实际落地场景得到了更为强有力的论证,落地方案也就清晰明了

技术

Spring Cloud官方套件或第三方套件

Alibaba套件

Netflix套件

服务注册与服务发现

Consul、Zookeeper

Nacos

Eureka

配置中心

Spring Cloud Config

Nacos

服务通信

Open Feign

Dubbo

Feign

负载均衡器

Loadbalancer

Ribbon

服务网关

Spring Cloud Gateway

Zuul

断路器

Resilience4j

Sentinel

Hystrix

链路追踪

Spring Cloud Sleuth、Zipkin

分布式事务

Seata

Spring Cloud Alibaba提供的核心组件如下:

  • Sentinel:阿里开源产品,可作为断路器,也支持流量控制和服务降级。
  • Nacos:阿里开源产品,服务注册与服务发现,同时也可作为配置中心。
  • RocketMQ:阿里开源的分布式消息和流计算平台。
  • Dubbo:阿里开源产品,高性能Java RPC框架,服务通信组件。
  • Seata:阿里开源产品,一个易使用的高性能微服务分布式事务解决方案。

7.为什么选择SpringCloud Alibaba

基于上述描述,读者应该会发现SpringCloud可以选择Alibaba或Netflix套件整合出一套完整解决方案。然后Netflix由于种种原因退出了维护更新的舞台,后续SpringCloud也逐步将其提供的组件一一剔除。

依附着阿里2015-2020的黄金飞速发展,Alibaba与Spring Cloud社区的强强联合,更多、更为全面的解决方案经过无数次的验证是真实可行的,同时阿里提供的开源产品保证了SpringCloud的功能又得到了进一步的补充。

所以最终我们也将选择SpringCloud Alibaba作为技术栈进行学习和演练。

8.总结

本节笔者介绍了SpringCloud诞生的由来,以及目前国内主要流行的SpringCloud Alibaba与SpringCloud的关系,同时针对SpringCloud自身的特点、版本号、依赖关系做了概要论述,这些都是为了接下来的实战打好基础。


思考问题

  • SpringCloud特性?
  • SpringCloud Alibaba与SpringCloud什么关系?

9.推荐阅读资料


相关文章
|
Nacos 微服务 监控
Nacos:微服务架构中的“服务管家”与“配置中心”
Nacos是阿里巴巴开源的微服务“服务管家”与“配置中心”,集服务注册发现、动态配置管理、健康检查、DNS发现等功能于一体,支持多语言、多协议接入,助力构建高可用、易运维的云原生应用体系。
887 155
|
Java 数据安全/隐私保护 Spring
SpringSecurity6从入门到实战之SpringSecurity整合自动装配详解(源码级别讲解,耐心)
该内容是关于SpringSecurity在SpringBoot中的自动配置详解。文章首先提出问题:SpringSecurity如何在引入依赖后使所有请求需认证并显示登录表单。接着,它探讨了SpringBoot的自动装配原理,从@SpringBootApplication注解开始,深入到@EnableAutoConfiguration的实现,解释了如何通过扫描jar包中的.imports文件来加载自动配置类。特别提到了SpringBootWebSecurityConfiguration类,该类默认设置为对所有请求进行认证,并支持表单和Basic认证。
|
2月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba诞生
阿里基于Spring Cloud打造Alibaba生态,推出Nacos、Sentinel、Seata等核心组件,覆盖服务发现、配置管理、流量控制与分布式事务,形成完整微服务解决方案,获Spring官方认可,推动Spring Cloud在企业级场景高效落地。
|
监控 druid Java
Spring Boot 3 集成 Druid 连接池详解
在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot 3项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理。
11970 2
Spring Boot 3 集成 Druid 连接池详解
|
4月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
5767 79
|
11月前
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
1510 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
2053 0
|
12月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
4398 2