🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[toc] Spring Cloud构建于Spring Boot之上,它提供了一堆库,可以在添加到类路径时增强应用程序的行为。 您可以利用基本的默认行为来快速入门,然后在需要时,您可以配置或扩展以创建自定义解决方案。 ## 快速开始 在项目中开始使用`spring-cloud`的推荐方法是使用依赖关系管理系统 - 下面的代码片段可以复制并粘贴到您的构建中。下例使用了config和eureka ~~~ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> ~~~ ## 特征 spring Cloud专注于为典型用例提供良好的开箱即用体验,并为其提供可扩展性机制。 * 分布式/版本化配置 * 服务注册和发现 * 路由 * 服务到服务调用 * 负载均衡 * 断路器 * 全局锁 * 领导选举和集群状态 * 分布式消息 Spring Cloud采用纯粹的声明方法,通常只需更改类路径和/或注解即可获得许多功能。 作为发现客户端的示例应用程序: ~~~java @SpringBootApplication @EnableDiscoveryClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ~~~ ## 主要项目 ### Spring Cloud Config 由git存储库支持的集中式外部配置管理。 配置资源直接映射到Spring`Environment`,但如果需要,可以由非Spring应用程序使用。 ### Spring Cloud Netflix 与各种Netflix OSS组件集成(Eureka,Hystrix,Zuul,Archaius等)。 ### Spring Cloud Bus 用于将服务和服务实例与分布式消息传递链接在一起的事件总线 用于跨群集传播状态更改(例如,配置更改事件)。 ### Spring Cloud for Cloud Foundry 将您的应用程序与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 为Zuul代理中的负载平衡OAuth2 rest客户端和身份验证头中继提供支持。 ### Spring Cloud Sleuth Spring Cloud应用程序的分布式跟踪,与Zipkin,HTrace和基于日志(例如ELK)的跟踪兼容。 ### Spring Cloud Data Flow 适用于现代运行时的可组合微服务应用程序的云本机编排服务。 易于使用的DSL,拖放式GUI和REST-API共同简化了基于微服务的数据管道的整体编排。 ### Spring Cloud Stream 轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。 在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明模型。 ### Spring Cloud Stream App Starters Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,可提供与外部系统的集成。 ### Spring Cloud Task 一种短命的微服务框架,用于快速构建执行有限数据处理的应用程序。 用于向Spring Boot应用程序添加功能和非功能功能的简单声明。 ### Spring Cloud Task App Starters Spring Cloud Task App Starters是Spring Boot应用程序,可能是任何进程,包括不能永久运行的Spring Batch作业,它们在有限的数据处理期后结束/停止。 ### Spring Cloud Zookeeper Apache Zookeeper的服务发现和配置管理。 ### Spring Cloud for Amazon Web Services 与托管的Amazon Web Services轻松集成。 它提供了一种使用众所周知的Spring习语和API(如消息传递或缓存API)与AWS提供的服务进行交互的便捷方式。 开发人员可以围绕托管服务构建应用程序,而无需关心基础结构或维护。 ### Spring Cloud Connectors 使各种平台中的PaaS应用程序可以轻松连接到数据库和消息代理(该项目以前称为“Spring Cloud”)等后端服务。 ### Spring Cloud Starters Spring Boot风格的入门项目,可以简化Spring Cloud用户的依赖管理。 (作为项目停产并在Angel.SR2之后与其他项目合并。) ### Spring Cloud CLI Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序 ### Spring Cloud Contract Spring Cloud Contract是一个总体项目,其中包含帮助用户成功实施消费者驱动合同方法的解决方案。 ### Spring Cloud Gateway Spring Cloud Gateway是一款基于Project Reactor的智能可编程路由器。 ### Spring Cloud OpenFeign Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。 ### Spring Cloud Pipelines Spring Cloud Pipelines提供了一个固定意见的部署管道,其中包含确保您的应用程序可以零停机方式部署并轻松回滚出错的步骤。 ### Spring Cloud Function Spring Cloud Function通过函数促进业务逻辑的实现。 它支持无服务器提供商之间的统一编程模型,以及独立运行(本地或PaaS)的能力。 ## 发布列表 Spring Cloud是一个由独立项目组成的总体项目,原则上具有不同的发布节奏。 为了管理投资组合,发布了BOM(物料清单),其中包含一组针对单个项目的依赖关系(见下文)。 发布列表有名称而不是版本,以避免与子项目混淆。 这些名称是一个字母序列(所以你可以按时间顺序排序)伦敦地铁站的名称(“天使”是第一个版本,“布里克斯顿”是第二个版本)。 当各个项目的点数累积到临界质量时,或者其中一个项目中存在一个需要每个人都可用的关键错误时,发布列表将推出名称结尾为“.SRX”的“服务发布”, 其中“X”是一个数字。 ### 发布列表内容 | Component | Edgware.SR4 | Finchley.SR1 | Finchley.BUILD-SNAPSHOT | |---|---|---|---| |spring-cloud-config| 1.4.4.RELEASE| 2.0.1.RELEASE |2.0.2.BUILD-SNAPSHOT| |spring-cloud-netflix| 1.4.5.RELEASE| 2.0.1.RELEASE| 2.0.2.BUILD-SNAPSHOT| |---|---|---|---| Finchley使用Spring Boot 2.0.x构建,预计不会与Spring Boot 1.5.x一起使用。 使用依赖关系管理工具来控制版本。 如果您正在使用Maven,请记住声明的第一个版本获胜,因此按顺序声明BOM,第一个通常是最新版本(例如,如果您想使用带有Brixton.RELEASE的Spring Boot 1.3.6,请放置引导BOM 第一)。 如果您使用Spring依赖关系管理插件,则同样的规则适用于Gradle。