SpringCloud介绍
@toc
1、简介
Spring Cloud为开发人员提供了工具,以快速构建分布式系统中一些常见模式(配置管理、服务发现、断路器、智能路由、微代理、控制总线、令牌token、全局锁、领导选择、分布式session和集群状态等)。使用Spring Cloud,开发人员可以快速实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员的笔记本电脑、裸机数据中心以及Cloud Foundry等托管平台。
2、Spring Cloud的特性
Spring Cloud专注于为典型的用例和可扩展性提供良好的开箱即用体验,其主要特性有以下几点:
- 分布式/版本化配置(distributed/versioned configuration)
- 服务注册和发现(service registration and discovery)
- 动态路由(routing)
- 微服务调用(service-to-service calls)
- 负载均衡(load balancing)
- 断路器(circuit breakers)
- 全局锁(global locks)
- 领导选择和集群状态(leadership selection and cluster state)
- 分布式消息(distuributed messaging)
Spring Cloud采用了声明性的方法,通常只需要更改类路径或添加一个注释即可获得许多功能。
3、Spring Cloud的模块
Spring Cloud包含许多子项目,具体如下:
- Spring Cloud Config:由git存储库支持的集中式外部配置管理。配置资源直接映射到Spring Environment,如果需要,可以有非Spring应用程序使用。
- Spring Cloud Netflix:与各种Netflix OSS组件继承(Eureka、Hystrix、Zuul、Archaius等)
- Spring Cloud Bus:事件总线,用分布式消息将服务和服务实例链接在一起。对于在整个集群中传播状态更改(例如配置更改事件)很有用。
- Spring Cloud Cloudfoundry:将应用程序与Pivotal Cloud Foundry继承,提供服务发现实现,还可以轻松实现SSO和OAuth2保护的资源。
- Spring Cloud Open Service Broker:为构建实现Open Service Broker API的服务代理提供起点。
- Spring Cloud Cluster:Zookeeper、Redis、Hazelcast和Consul的领导层选举和通用状态模式抽象和实现。
- Spring Cloud Consul:使用Hashicorp Consul进行服务发现和配置管理。
- Spring Cloud Security:提供对负载均衡的OAuth2客户端和身份验证标头中继支持。
- Spring Cloud Sleuth:用于Spring Cloud应用程序的分布式跟踪,与Zipkin、HTrace和基于日志跟踪兼容(例如ELK)。
- Spring Cloud Data Flow:用于构建数据集成和数据处理管道(Pipelines)的工具包。
- Spring Cloud Stream:轻量级的事件驱动型微服务框架,用于快速构建可以连接到外部系统的应用程序。在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明性模型。
- Spring Cloud Stream App Staters:基于Spring Boot的Spring Integration应用程序,可与外部系统集成。
- Spring Cloud Task:目标是为Spring Boot应用程序提供创建短运行微服务的功能。
- Spring Cloud Task App Staters:是SpringBoot应用程序,可以是任何进程,包括不会永远运行的Spring Batch作业,它们在有限的数据处理周期后结束/停止。
- Spring Cloud Zookeeper:使用Apache Zookeeper进行服务发现和配置管理。
- Spring Cloud CLI:Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序。
- Spring Cloud Contract:为通过CDC(Customer Driven Contracts)开发基于JVM的应用提供支持,为TDD(测试驱动开发)提供一种新的测试方式,即基于接口。
- Spring Cloud Gateway:Spring Cloud Gateway是基于Project Reactor的智能可编程路由器。
- Spring Cloud OpenFeign:将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。
- Spring Cloud Pipelines:提供一个可靠的部署管道,其中包含一些步骤,以确保应用程序可以零停机时间进行部署,并且可以轻松回滚某些错误。
- Spring Cloud Function:通过功能促进业务逻辑的实现,支持五服务器提供商之间的统一编程模型以及独立运行(本地或Paas)的能力。
Netflix是一家做视频的网站,访问量非常大。也正是如此,Netflix开始把整体的系统往微服务上迁移。Netflix微服务大规模应用,在技术上毫无保留地把一整套微服务架构核心技术栈开源出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断壮大。在Netflix开源的一整套核心技术产品线的基础上,做了一系列的封装,就变成了Spring Cloud。
4、版本选择
-
springcloud是一个由众多独立子项目组成的大型综合项目,原则每个子项目上有不同的发布节奏,都维护自己发布版本号。为了更好的管理springcloud的版本,通过一个资源清单BOM(Bill of Materials),为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些名字是按字母顺序排列的。如伦敦地铁站的名称(“天使”是第一个版本,“布里斯顿”是第二个版本,"卡姆登"是第三个版本)。当单个项目的点发布累积到一个临界量,或者其中一个项目中有一个关键缺陷需要每个人都可以使用时,发布序列将推出名称以“.SRX”结尾的“服务发布”,其中“X”是一个数字。
-
伦敦地铁站名称 [了解]
Angel、Brixton、Camden、Dalston、Edgware、Finchley、Greenwich、Hoxton
Spring Cloud与Spring Boot兼容的版本如下表所示。
5、Spring Cloud与Spring Boot的关系
Spring Boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具。Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架。Spring Boot使用了默认大于配置的理念,很多集成方案已经选好,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot实现的。
Spring Boot可以离开Spring Cloud独立使用开发项目;但是Spring Cloud离不开Spring Boot,属于依赖的关系,如下图所示。
- 点赞
- 收藏
- 关注作者
评论(0)