Spring Cloud 新一代Web框架微服務翹楚(一)


序言

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

通過一些簡單的注解,我們就可以快速的在應用中配置一下常用模塊並構建龐大的分布式系統。

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

都有哪些優秀組件

被我搞綠的,是比較常用的組件!!

那么本篇也簡單介紹下被我搞綠的,我沒搞的,你們找度娘搞吧。 

Eureka:全球(美國)/jʊ'rikə/ 

n. 尤里卡(美國地名);優銅

n. (美)歐雷卡(人名)

int. (eureka) 我發現了,我找到了;有了

功能:服務注冊與發現,各個服務啟動時,Eureka Client都會將服務注冊到Eureka Server,並且Eureka Client還可以反過來從Eureka Server拉取注冊表,從而知道其他服務在哪里  

Ribbon: 全球(美國)/'rɪbən/

n. [動力] 渦輪;[動力] 渦輪機

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

Feign: 全球(英語)/feɪn/  

vt. 假裝;裝作;捏造;想象

vi. 假裝;裝作;作假;佯作

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

Hystrix:hy /,etʃ 'waɪ/  strix /s墜x/      嗨s墜x 

短語:.豪豬屬 蝟草屬 豪豬 斷路器

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

Zuul:/zuːl/    

短語:zuul 網關 路由網關 祖魯樂團 靜態文件

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

看別人博客的一句話,貼出來:當我對zuul有點映像的時候,它已經過時了,SpringCloud Gateway就誕生,這讓我們這些33歲的老程序員怎么活呢。 

Sleuth:  /sluθ/  

n. 偵探;警犬

vi. 做偵探;偵查

功能:服務鏈路追蹤,主要功能就是在分布式系統中提供追蹤解決方案,並且兼容支持了 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網關轉發請求給對應的服務

整體項目架構圖

總結

感覺好累,接下來會寫這個總架構圖中的代碼與運維實現。

就這吧,88

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM