天天看點

一,springcloud初體驗

SpringCloud簡介與5大常用元件

SpringCloud的元件相當繁雜,擁有諸多子項目。重點關注Netflix

一,springcloud初體驗

圖檔來源@王璐-Louise

下面隻簡單介紹下經常用的5個

服務發現——Netflix Eureka

客服端負載均衡——Netflix Ribbon

斷路器——Netflix Hystrix

服務網關——Netflix Zuul

分布式配置——Spring Cloud Config

Eureka

一,springcloud初體驗

作用:實作服務治理(服務注冊與發現)

簡介:Spring Cloud Eureka是Spring Cloud Netflix項目下的服務治理子產品。

由兩個元件組成:Eureka服務端和Eureka用戶端。

Eureka服務端用作服務注冊中心。支援叢集部署。

Eureka用戶端是一個java用戶端,用來處理服務注冊與發現。

在應用啟動時,Eureka用戶端向服務端注冊自己的服務資訊,同時将服務端的服務資訊緩存到本地。用戶端會和服務端周期性的進行心跳互動,以更新服務租約和服務資訊。

Ribbon

一,springcloud初體驗

作用:Ribbon,主要提供客戶側的軟體負載均衡算法。

簡介:Spring Cloud Ribbon是一個基于HTTP和TCP的用戶端負載均衡工具,它基于Netflix Ribbon實作。通過Spring Cloud的封裝,可以讓我們輕松地将面向服務的REST模版請求自動轉換成用戶端負載均衡的服務調用。

注意看上圖,關鍵點就是将外界的rest調用,根據負載均衡政策轉換為微服務調用。Ribbon有比較多的負載均衡政策,以後專門講解。

Hystrix

一,springcloud初體驗

作用:斷路器,保護系統,控制故障範圍。

簡介:為了保證其高可用,單個服務通常會叢集部署。由于網絡原因或者自身的原因,服務并不能保證100%可用,如果單個服務出現問題,調用這個服務就會出現線程阻塞,此時若有大量的請求湧入,Servlet容器的線程資源會被消耗完畢,導緻服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統造成災難性的嚴重後果,這就是服務故障的“雪崩”效應。

Zuul

一,springcloud初體驗

作用:api網關,路由,負載均衡等多種作用

簡介:類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他元件的特性。

在微服務架構中,後端服務往往不直接開放給調用端,而是通過一個API網關根據請求的url,路由到相應的服務。當添加API網關後,在第三方調用端和服務提供方之間就建立了一面牆,這面牆直接與調用方通信進行權限控制,後将請求均衡分發給背景服務端。

Config

一,springcloud初體驗

作用:配置管理

簡介:SpringCloud Config提供伺服器端和用戶端。伺服器存儲後端的預設實作使用git,是以它輕松支援标簽版本的配置環境,以及可以通路用于管理内容的各種工具。

這個還是靜态的,得配合Spring Cloud Bus實作動态的配置更新。

繼續閱讀