Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,均可以用Spring Boot的开发风格作到一键启动和部署。Spring并无重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,经过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包spring
SpringCloud是依赖于SpringBoot的一组框架集合,SpringCloud的开发是基于SpringBoot的,也就是说没有SpringBoot就搭建不了SpringCloud,而SpringBoot被称为微服务中的单独一种服务,因此SpringBoot是能够单独存在开发的数据库
总结一句话为何springcloud在微服务领域那么广受欢迎的缘由,那就是springcloud的组件几乎涵盖了微服务开发中的方方面面,也就是说微服务所需的技术支持springcloud的组件都能提供,SpringCloud是以整套解决方案。编程
服务中心,服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。这个但是springcloud服务中心后端
熔断器,容错管理工具,旨在经过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。安全
Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 至关因而设备和 Netflix 流应用的 Web 网站后端全部请求的网关服务。服务器
配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操做、轮询框架、回调机制等功能。能够实现动态获取配置, 原理是每隔60s(默认,可配置)从配置源读取一次内容,这样修改了配置文件后不须要重启服务就可使修改后的内容生效,前提使用archaius的API来读取。架构
俗称的配置中心,配置管理工具包,让你能够把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。app
事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署服务之间消息传递。负载均衡
Cloud Foundry是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员可以在几秒钟内进行应用程序的部署和扩展,无需担忧任何基础架构的问题其实就是与CloudFoundry进行集成的一套解决方案。框架
Spring Cloud Cluster将取代Spring Integration。提供在分布式系统中的集群所须要的基础功能支持,如:选举、集群的状态一致性、全局锁、tokens等常见状态模式的抽象和实现。Spring Cloud Cluster已经帮你提供了不少方便组织成统一的工具。
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并容许 HTTP 和 DNS 协议调用 API 存储键值对。封装了Consul操做,consul是一个服务发现与配置工具,与Docker容器能够无缝集成。
基于spring security的安全工具包,为你的应用程序添加安全控制。
日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操做,为SpringCloud应用实现了一种分布式追踪解决方案。
Data flow 是一个用于开发和执行大范围数据处理其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。对于在现代运行环境中可组合的微服务程序来讲,Spring Cloud data flow是一个原生云可编配的服务。使用Spring Cloud data flow,开发者能够为像数据抽取,实时分析,和数据导入/导出这种常见用例建立和编配数据通道 (data pipelines)。Spring Cloud data flow 是基于原生云对 spring XD的从新设计,该项目目标是简化大数据应用的开发。Spring XD 的流处理和批处理模块的重构分别是基于 Spring Boot的stream 和 task/batch 的微服务程序。这些程序如今都是自动部署单元并且他们原生的支持像 Cloud Foundry、Apache YARN、Apache Mesos和Kubernetes 等现代运行环境。
- Spring Cloud data flow 为基于微服务的分布式流处理和批处理数据通道提供了一系列模型和最佳实践。
Spring Cloud Stream是建立消息驱动微服务应用的框架。Spring Cloud Stream是基于Spring Boot建立,用来创建单独的/工业级spring应用,使用spring integration提供与消息代理之间的链接。数据流操做开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。一个业务会牵扯到多个任务,任务之间是经过事件触发的,这就是Spring Cloud stream要干的事了
Spring Cloud Task 主要解决短命微服务的任务管理,任务调度的工做,好比说某些定时任务晚上就跑一次,或者某项数据分析临时就跑几回。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。操做Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。
Spring Cloud Connectors 简化了链接到服务的过程和从云平台获取操做的过程,有很强的扩展性,能够利用Spring Cloud Connectors来构建你本身的云平台。便于云端应用程序在各类PaaS平台链接到后端,如:数据库和消息代理服务。
Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。
基于 Spring Boot CLI,可让你以命令行方式快速创建云组件。