7個點說清楚spring cloud微服務架構
阿新 • • 發佈:2019-12-31
前言
spring cloud作為當下主流的微服務框架,讓我們實現微服務架構簡單快捷,spring cloud中各個元件在微服務架構中扮演的角色如下圖所示,黑線表示註釋說明,藍線由A指向B,表示B從A處獲取服務。 spring cloud組成的微服務架構圖由上圖所示微服務架構大致由上圖的邏輯結構組成,其包括各種微服務、註冊發現、服務閘道器、熔斷器、統一配置、跟蹤服務等。下面說說spring cloud中的元件分別充當其中的什麼角色。
Feign
Feign(介面呼叫):微服務之間通過Rest介面通訊,spring Cloud提供Feign框架來支援Rest的呼叫,Feign使得不同程式的Rest介面呼叫得以用優雅的方式進行,這種優雅表現得就像同一個程式呼叫一樣。Eureka
Ribbon
Ribbon(負載均衡):Ribbon是Netflix釋出的負載均衡器,它有助於控制HTTP和TCP客戶端的行為。為Ribbon,配置服務提供者的地址列表後,Ribbon就可基於某種負載均衡演演算法,自動地幫助服務消費者去請求。Ribbon預設為我們提供了很多的負載均衡演演算法,例如輪詢、隨機等。當然,我們也可為Ribbon實現自定義的負載均衡演演算法。在SpringCloud中,當Ribbon與Eureka配合使用時,Ribbon可自動從EurekaServer獲取服務提供者的地址列表,並基於負載均衡演演算法,請求其中一個服務提供者的例項(為了服務的可靠性,一個微服務可能部署多個例項)。Hystrix
包裹請求:
使用HystrixCommand(或HystrixObservableCommand)包裹對依賴的呼叫邏輯,每個命令在獨立執行緒中執行。這使用了設計模式中的“命令模式”。
跳閘機制:
當某服務的錯誤率超過一定閾值時,Hystrix可以自動或者手動跳閘,停止請求該服務一段時間。
資源隔離:
Hystrix為每個依賴都維護了一個小型的執行緒池(或者訊號量)。如果該執行緒池已滿,發往該依賴的請求就被立即拒絕,而不是排隊等候,從而加速失敗判定。
監控:
Hystrix可以近乎實時地監控執行指標和配置的變化,例如成功、失敗、超時和被拒絕的請求等。
回退機制:
當請求失敗、超時、被拒絕,或當斷路器開啟時,執行回退邏輯。回退邏輯可由開發人員指定。