什么是Spring Cloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,Spring Cloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,Spring Cloud做为大管家就需要提供各种方案来维护整个生态。
Spring Cloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。因此就需要很多的组件来支持一套功能
Spring Cloud 架构
我们从整体来看一下Spring Cloud主要的组件,以及它的访问流程
![](http://www.ityouknow.com/assets/images/2017/springcloud/spring-cloud-architecture.png)
- 1、外部或者内部的非Spring Cloud项目都统一通过API网关(Zuul)来访问内部服务.
- 2、网关接收到请求后,从注册中心(Eureka)获取可用服务
- 3、由Ribbon进行均衡负载后,分发到后端的具体实例
- 4、微服务之间通过Feign进行通信处理业务
- 5、Hystrix负责处理服务超时熔断
- 6、Turbine监控服务间的调用和熔断相关指标
图中没有画出配置中心,配置中心管理各微服务不同环境下的配置文件。
以上就是一个完整的Spring Cloud生态图。