一、概述架構
1.1 Spring Cloud是一個基於SpringBoot實現的微服務架構開發工具;app
Spring Cloud爲微服務架構中涉及的配置管理、服務治理、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話、集羣狀態管理等操做提供了一種簡單的開發方式;負載均衡
1.2 Spring Cloud包含了多個子項目:分佈式
Spring Cloud Config:微服務
Spring Cloud Netflix:工具
Spring Cloud Bus:開發工具
Spring Cloud Cluster:ui
二、快速入門spa
1.1 配置服務代理
SpringCloud提供了Config Server,提供在分佈式系統中外部配置的功能;
SpringCloud提供了@EnableConfigServer來啓用配置服務;
1.2 服務發現
SpringCloud經過Netflix OSS的Eureka來實現服務發現;
服務發現的目的:讓每一個服務之間相互通訊;
Eureka Server爲微服務註冊中心;
SpringCloud使用@EnableEurekaServer做爲Eureka服務端
@EnableEurekaClient做爲Eureka客戶端
1.3 路由網關
路由網關的目的:讓全部的微服務對外只有一個接口,只須要訪問一個網關地址,由網關將請求代理到不一樣的服務中;
SpringCloud經過Zuul實現路由網關,支持自動路由映射到在Eureka Server上註冊的服務;
SpringCloud經過@EnableZuulProxy來啓用路由代理
1.4 負載均衡
SpringCloud提供了Ribbon、Feign做爲客戶端的負載均衡
使用Ribbon時,直接注入一個RestTemplate對象(已作好負載均衡的配置)便可
使用Feign時,只需定義個註解,有@FeignClient註解的接口,而後使用@RequestMapping在方法上映射遠程的REST服務,此方法也是作好負載均衡的
1.5 斷路器
斷路器:爲了解決當某個方法調用失敗時,調用後備方法來替代失敗的方法,以達到容錯、阻止級聯錯誤等功能;
SpringCloud使用@EnableCircuitBreaker來啓用斷路器支持
使用@HystrixCommand的fallbackMethod來指定後備方法
SpringCloud提供了@EnableHystrixDashboard能夠在控制檯監控斷路器的運行狀況