首先要知道的是Spring Cloud是微服务架构。

微服务架构是一种架构模式,它将单一的应用程序划分成一组很小的服务,服务之间相互协调、互相配合。每个服务都运行在独立的进程中,服务与服务间采用轻量级通信机制(通常是HTTP协议的RESTful API)。每个服务都有着自己的业务,并且能够被独立的部署到生产环境、类生产环境等,对于具体的一个服务而言,应该根据上下文,选择合适的语言、工具对其进行构建。

 Spring Cloud中是一种微服务架构,项目案例:www.1b23.com,其中包含如下功能:

服务注册与发现、服务调用、服务熔断、负载均衡、服务降级、服务消息队列、配置中心管理、服务网关、服务监控、全链路追踪、自动化构建部署、服务定时任务。

 但是在项目中一般只会用到如下几种:

服务注册与发现:EUREKA

服务负载与调用:NETFLIX OSS RIBBON、NETFLIX FEIGN

服务熔断降级:HYSTRIX

服务网关:NETFLIX Zuul

服务器分布式配置:Spring Coloud Config

服务开发:Spring Boot

 下面来看下官方解析

 Cloud

分布式系统的开发与一般的系统来说是具有挑战性的。服务之间的交流更为密切,Cloud把项目的工作重点由应用层移到了网络层。代码想要连接到Cloud服务需要12个因素,如配置文件,状态,日志,连接到后端的服务。Spring Cloud提供了这些成套的服务使得开发者的程序服务能够在云上跑起来。

 Spring Cloud architecture

Service discovery

在cloud,应用只会知道除了本地服务,不会知道其他主机上的服务。然而Netflix Eureka和或HashiCorp Consul可以人本地服务知道其他主机上服务的问题,Spring Boot提供了DiscoveryClient实现用于Eureka、Consul、Zookeeper、Kubernetes系统注册方面的服务。

 API gateway

Cloud上的服务都依赖与API gateway维护其安全,服务隐藏,调节负载等作用

 Cloud configuration

cloud中,配置文件往往是在一套环境中或者系统中或者几个应用中使用,而不是单独在一个应用中使用,Spring Cloud Config就是用于提供这些帮助的。

 Tracing

分布式应用程序的调试比较复杂,定为故障需要几个独立的服务一起运行定位。Spring Cloud Sleuth可以测试应用程序。