什么是 Spring Cloud
Spring Cloud 是一系列框架的集合,Spring Cloud 内部包含了许多框架,这些框架互相协作,共同来构建分布式系统。利用这些组件,可以非常方便的构建一个分布式系统。
Spring Cloud 与微服务的关系
Spring Cloud 可以理解为微服务这种思想在 Java 领域的一个具体落地。Spring Cloud 在发展之初,就借鉴了微服务的思想,同时结合 Spring Boot,Spring Cloud 提供了组件的一键式启动和部署的能力,极大的简化了微服务架构的落地。
Spring Cloud 这种框架,从设计之初,就充分考虑了分布式架构演化所需要的功能,例如服务注册、配置中心、消息总线以及负载均衡等。这些功能都是以可插拔的形式提供出来的,这样,在分布式系统不断演化的过程中,我们的 Spring Cloud 也可以非常方便的进化。
Spring Cloud 的特征
Spring Cloud专注于为典型的用例和扩展机制(包括其他用例)提供良好的开箱即用体验。
-
分布式/版本化配置
-
服务注册和发现
-
路由
-
服务之间的调用
-
负载均衡
-
断路器
-
全局锁
-
领导选举和集群状态
-
分布式消息传递
Spring Cloud 版本命名
不同于其他的框架,Spring Cloud 版本名称是通过 A(Angel)、B(Brixton)、C(Camden)、D(Dalston)、E(Edgware)、F(Finchley)。。 这样来明明的,这些名字使用了伦敦地铁站的名字,目前最新版是 H (Hoxton)版。
Spring Cloud 包含的组件
下面的常用:
-
Spring Cloud Netflix,这个组件,在 Spring Cloud 成立之初,立下了汗马功劳。
-
Spring Cloud Config,分布式配置中心,利用 Git/Svn 来集中管理项目的配置文件。
-
Spring Cloud Bus,消息总线,可以构建消息驱动的微服务,也可以用来做一些状态管理等。
-
Spring Cloud Consul,服务注册发现
-
Spring Cloud Stream,基于 Redis、RabbitMQ、Kafka 实现的消息微服务
-
Spring Cloud OpenFeign,提供 OpenFeign 集成到 Spring Boot 应用中的方式,主要解决微服务之间的调用问题。
-
Spring Cloud Gateway,Spring Cloud 官方推出的网关服务。
下面的不常用:
-
Spring Cloud Cloudfoundry,利用 Cloudfoundry 集成我们的应用程序。
-
Spring Cloud Security,在 Zuul 代理中,为 OAuth2 客户端认证提供支持。
-
Spring Cloud AWS ,快速集成亚马逊云服务。
-
Spring Cloud Contract,一个消费者驱动的、面向 Java 的契约框架。
-
Spring Cloud Zookeeper,基于 Apache Zookeeper 的服务注册和发现。
-
Spring Cloud Data Flow,在一个结构化的平台上,组成数据微服务。
-
Spring Cloud Kubernetes,Spring Cloud 提供的针对 Kubernetes 的支持
-
Spring Cloud Function
-
Spring Cloud Task,短生命周期的微服务。
Spring Cloud 和 Spring Boot 版本关系
Spring Cloud | Spring Boot |
---|---|
Hoxton | 2.2.x |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
Spring Cloud 和 Spring Boot 的关系
1、在 IOC 和 AOP 的基础上,构造出来的 Spring 框架,然后在 Spring 的基础上,构造出来 Spring Boot ,最后在 Spring Boot 的基础上,使用 Spring Cloud 。
2、Spring Boot 只是专注于快速开发单个的微服务,而 Spring Cloud 关注的是全局的微服务和协调整体服务之间的治理。
3、Spring Cloud 从更大的层面上去协调各个不同的 Spring Boot 之间的一个工作的关系,这是 Spring Cloud 做的一个事情。
4、Spring Boot 本身可以离开 Spring Cloud 独立开发项目,但是 Spring Cloud 是无法离开 Spring Boot 的。