一、SpringCloud簡介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啓動和部署。Spring Cloud並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。
二、SpringCloud常用的五個組件
- Spring Cloud Config
服務配置中心,將所有的服務的配置文件放到本地倉庫或者遠程倉庫,配置中心負責讀取倉庫的配置文件,其他服務向配置中心讀取配置。Spring Cloud Config使得服務的配置統一管理,並可以在不人爲重啓服務的情況下進行配置文件的刷新。 - Eureka
服務註冊和發現組件 - Ribbon
負載均衡組件 - Hystrix
熔斷器組件。它通過控制服務的API接口的熔斷來轉移故障,防止微服務系統發生雪崩效應。另外Hystrix能夠起到服務限流和服務降級的作用。使用Hystrix Dashboard組件監控單個服務的熔斷狀態,使用Hystrix Turbine組件可以監控多個服務的熔斷器的狀態。 - Zuul
智能路由網關組件。能夠起到智能路由和請求過濾的作用,內部服務API接口通過Zuul網關統一對外暴露,防止內部服務敏感信息對外暴露。也可以實現安全驗證,權限控制。
後面學習所用的Springboot、Cloud的版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath />
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>