摘自SpringCloud官网:http://spring.io/projects/spring-cloud
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态)。分布式系统的协调导致锅炉板模式,使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。
1、nginx:负责客户端所有请求的负载均衡
2、zuul gateway:实现服务请求路由管理,网关管理,鉴权管理
3、Hystrix:熔断器,实现断路器、服务降级功能。能够在高并发环境中,保护服务的高可用性,健壮性
4、Robbin:微服务客户端负载均衡组件,根据服务注册列表,采用多种方式请求访问微服务
5、eureka:spring cloud 微服务注册中心,实现心跳、自动发现和注册,支持微服务无限扩展。
6、zipkin:微服务监控,能够实时监控请求链路,跟踪链路响应时间,快速找到问题。
7、stream:结合rabbitmq,实现消息总线功能,屏蔽各种消息队列借口,采用统一的方式实现消息队列。
8、feign:调用http微服务框架
9、config:实现微服务配置集中化管理,所有工程配置文件集中在git或svn上进行管理,配合消息总线,可以实时修改微服务 配置。
10、redis:分布式缓存,支持集群环境下主从配置,高并发环境下,极大减少请求对数据库的压力。
11、fastdfs:分布式文件存储,提供高性能高可用的文件存储功能。
12、elk:日志系统,包括elasticsearch、logcat、kibana。elasticsearch是准实时的搜索引擎,logcat是分布式的日志收集 器,kibana是提供日志展示的UI模块。
Spring Cloud专注于为典型用例提供良好的开箱即用体验,并为其他用户提供可扩展性机制。
分布式/版本化配置
服务注册和发现
路由
服务到服务电话
负载均衡
断路器
全球锁
领导选举和集群国家
分布式消息
Spring Cloud采用了一种非常具有声明性的方法,通常只需更改类路径和/或注释即可获得大量的内容。作为发现客户端的示例应用程序:
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
由git存储库支持的集中式外部配置管理。配置资源直接映射到Spring,Environment
但如果需要,可以由非Spring应用程序使用。
与各种Netflix OSS组件集成(Eureka,Hystrix,Zuul,Archaius等)。
用于将服务和服务实例与分布式消息传递链接在一起的事件总线 用于在群集中传播状态更改(例如,配置更改事件)。
将您的应用程序与Pivotal Cloud Foundry集成。提供服务发现实现,还可以轻松实现受SSO和OAuth2保护的资源。
提供构建实现Open Service Broker API的服务代理的起点。
领导者选举和共同的有状态模式与Zookeeper,Redis,Hazelcast,Consul的抽象和实现。
封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
为Zuul代理中的负载平衡OAuth2 rest客户端和身份验证头中继提供支持。
Spring Cloud应用程序的分布式跟踪,兼容Zipkin,HTrace和基于日志(例如ELK)的跟踪。
适用于现代运行时的可组合微服务应用程序的云本机编排服务。易于使用的DSL,拖放式GUI和REST-API共同简化了基于微服务的数据管道的整体编排。
轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明模型。
Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,可提供与外部系统的集成。
一种短命的微服务框架,用于快速构建执行有限数据处理的应用程序。用于向Spring Boot应用程序添加功能和非功能功能的简单声明。
Spring Cloud Task App Starters是Spring Boot应用程序,可能是任何进程,包括不能永久运行的Spring Batch作业,它们在有限的数据处理期后结束/停止。
使用Apache Zookeeper进行服务发现和配置管理。
与托管的Amazon Web Services轻松集成。它提供了一种使用众所周知的Spring习语和API(如消息传递或缓存API)与AWS提供的服务进行交互的便捷方式。开发人员可以围绕托管服务构建应用程序,而无需关心基础结构或维护。
使各种平台中的PaaS应用程序可以轻松连接到数据库和消息代理(该项目以前称为“Spring Cloud”)等后端服务。
Spring Boot风格的入门项目,可以简化Spring Cloud用户的依赖管理。(作为项目停产并在Angel.SR2之后与其他项目合并。)
Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序
Spring Cloud Contract是一个总体项目,其中包含帮助用户成功实施消费者驱动合同方法的解决方案。
Spring Cloud Gateway是一款基于Project Reactor的智能可编程路由器。
Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。
Spring Cloud Pipelines提供了一个固定意见的部署管道,其中包含确保您的应用程序可以零停机方式部署并轻松回滚出错的步骤。
Spring Cloud Function通过函数促进业务逻辑的实现。它支持无服务器提供商之间的统一编程模型,以及独立运行(本地或PaaS)的能力。