Spring Cloud-新一代Web框架微服務

序言

springcloud是微服務架構的集大成者,將一系列優秀的組件進行了整合。基於springboot構建,對咱們熟悉spring的程序員來講,上手比較容易。前端

經過一些簡單的註解,咱們就能夠快速的在應用中配置一下經常使用模塊並構建龐大的分佈式系統。java

下面主要用圖來理解下各個組件的概念吧程序員

都有哪些優秀組件

 

Eureka算法

功能:服務註冊與發現,各個服務啓動時,Eureka Client都會將服務註冊到Eureka Server,而且Eureka Client還能夠反過來從Eureka Server拉取註冊表,從而知道其餘服務在哪裏spring

Ribbon後端

功能:服務請求調用客戶端負載均衡,服務間發起請求的時候,基於Ribbon作負載均衡,從一個服務的多臺機器中選擇一臺 
api

Feignspringboot

功能:服務請求調用,基於Feign的動態代理機制,根據註解和選擇的機器,拼接請求URL地址,發起請求restful

Hystrix架構

功能:熔斷器,發起請求是經過Hystrix的線程池來走的,不一樣的服務走不一樣的線程池,實現了不一樣服務調用的隔離,避免了服務雪崩的問題

Zuul

功能:api路由網關,若是前端、移動端要調用後端系統,統一從Zuul網關進入,由Zuul網關轉發請求給對應的服務

Sleuth

功能:服務鏈路追蹤,主要功能就是在分佈式系統中提供追蹤解決方案,而且兼容支持了 zipkin

 

Spring Cloud核心組件:Eureka 服務註冊與發現

他有三端構成

1.Eureka Server 服務註冊與發現中心端

2.Service Provider服務提供者端

3.Service Consumer服務調用者端

官方圖

Spring Cloud核心組件:Feign

接口調用,restful風格http能夠用調java接口方式去調用。

本身組裝url與參數還有請求頭等信息,不用本身去寫啦。簡單易用。

看下調用方式與代碼

//url=http://www.me.com@FeignClient(url = "${feign.order-promotion.url}")
public interface PromotionClient {
    @RequestMapping(value = "/Member/Promotion/ReleasePromtionByOrderId", method = RequestMethod.POST)
    BaseWcfResponse<Integer> ReleasePromtionByOrderId(@RequestBody ReleasePromtionReq request);
}

Spring Cloud核心組件:Ribbon

客戶端負載均衡,一個服務部署多臺機器的狀況feign不知道調用那臺服務,那麼ribbon就能夠使用默認abab的輪詢算法,給肯定那一臺機器

Spring Cloud核心組件:Hystrix

熔斷器,個別服務接口掛拉,可能會影響整個服務鏈路,致使總體服務不可用,這個時候hystrix就派上用場啦。

Spring Cloud核心組件:Zuul

前端、移動端要調用後端系統,統一從Zuul網關進入,由Zuul網關轉發請求給對應的服務

總體項目架構圖

相關文章
相關標籤/搜索