Spring Cloud是基于Spring Boot的一整套實現(xiàn)微服務的框架。他提供了微服務開發(fā)所需的配置管理、服務發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態(tài)管理等組件。最重要的是,跟spring boot框架一起使用的話,會讓你開發(fā)微服務架構(gòu)的云服務非常好的方便。
Spring Cloud包含了非常多的子框架,其中,Spring Cloud Netflix是其中一套框架,由Netflix開發(fā)后來又并入Spring Cloud大家庭,它主要提供的模塊包括:服務發(fā)現(xiàn)、斷路器和監(jiān)控、智能路由、客戶端負載均衡等。
以下為Spring Cloud的核心功能:
Spring Cloud Netflix組件介紹
Spring Cloud Netflix框架剛好就滿足了上面的核心功能,而且最重要的是,使用起來非常的簡單。Spring Cloud Netflix包含的組件及其主要功能大致如下:
Eureka,服務注冊和發(fā)現(xiàn),它提供了一個服務注冊中心、服務發(fā)現(xiàn)的客戶端,還有一個方便的查看所有注冊的服務的界面。 所有的服務使用Eureka的服務發(fā)現(xiàn)客戶端來將自己注冊到Eureka的服務器上。
Zuul,網(wǎng)關(guān),所有的客戶端請求通過這個網(wǎng)關(guān)訪問后臺的服務。他可以使用一定的路由配置來判斷某一個URL由哪個服務來處理。并從Eureka獲取注冊的服務來轉(zhuǎn)發(fā)請求。
Ribbon,即負載均衡,Zuul網(wǎng)關(guān)將一個請求發(fā)送給某一個服務的應用的時候,如果一個服務啟動了多個實例,就會通過Ribbon來通過一定的負載均衡策略來發(fā)送給某一個服務實例。
Feign,服務客戶端,服務之間如果需要相互訪問,可以使用RestTemplate,也可以使用Feign客戶端訪問。它默認會使用Ribbon來實現(xiàn)負載均衡。
Hystrix,監(jiān)控和熔斷器。我們只需要在服務接口上添加Hystrix標簽,就可以實現(xiàn)對這個接口的監(jiān)控和斷路器功能。
Hystrix Dashboard,監(jiān)控面板,他提供了一個界面,可以監(jiān)控各個服務上的服務調(diào)用所消耗的時間等。
Turbine,監(jiān)控聚合,使用Hystrix監(jiān)控,我們需要打開每一個服務實例的監(jiān)控信息來查看。而Turbine可以幫助我們把所有的服務實例的監(jiān)控信息聚合到一個地方統(tǒng)一查看。這樣就不需要挨個打開一個個的頁面一個個查看。