SpringCloud學習筆記(一)——SpringCloud簡介

SpringCloud是什麼?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啓動和部署。Spring Cloud並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。

SpringCloud中的相關概念

1.服務註冊與發現

服務註冊:服務實例將自身服務信息註冊到註冊中心。這部分服務信息包括服務所在主機IP和提供服務的Port,以及暴露服務自身狀態以及訪問協議等信息。
服務發現:服務實例請求註冊中心獲取所依賴服務信息。服務實例通過註冊中心,獲取到註冊到其中的服務實例的信息,通過這些信息去請求它們提供的服務。

2.負載均衡

負載均衡是高可用網絡基礎架構的關鍵組件,通常用於將工作負載分佈到多個服務器來提高網站、應用、數據庫或其他服務的性能和可靠性。

3.熔斷

在互聯網系統中,當下遊服務因訪問壓力過大而響應變慢或失敗,上游服務爲了保護系統整體的可用性,可以暫時切斷對下游服務的調用。這種犧牲局部,保全整體的措施就叫做熔斷。

4.鏈路追蹤

隨着微服務架構的流行,服務按照不同的維度進行拆分,一次請求往往需要涉及到多個服務。互聯網應用構建在不同的軟件模塊集上,這些軟件模塊,有可能是由不同的團隊開發、可能使用不同的編程語言來實現、有可能布在了幾千臺服務器,橫跨多個不同的數據中心。因此,就需要對一次請求涉及的多個服務鏈路進行日誌記錄,性能監控即鏈路追蹤

5.API網關

隨着微服務的不斷增多,不同的微服務一般會有不同的網絡地址,而外部客戶端可能需要調用多個服務的接口才能完成一個業務需求,如果讓客戶端直接與各個微服務通信可能出現:

客戶端需要調用不同的url地址,增加難度
在一定的場景下,存在跨域請求的問題
每個微服務都需要進行單獨的身份認證
針對這些問題,API網關順勢而生。API網關直面意思是將所有API調用統一接入到API網關層,由網關層統一接入和輸出。一個網關的基本功能有:統一接入、安全防護、協議適配、流量管控、長短鏈接支持、容錯能力。有了網關之後,各個API服務提供團隊可以專注於自己的的業務邏輯處理,而API網關更專注於安全、流量、路由等問題。

SpringCloud的架構

1 SpringCloud的體系結構

在這裏插入圖片描述
註冊中心:負責服務的註冊與發現,很好將各服務連接起來
斷路器:負責監控服務之間的調用情況,連續多次失敗進行熔斷保護。
API網關:負責轉發所有對外的請求和服務
配置中心:提供了統一的配置信息管理服務,可以實時的通知各個服務獲取最新的配置信息
鏈路追蹤技術:將所有的請求數據記錄下來,方便我們進行後續分析
各個組件又提供了功能完善的dashboard監控平臺,可以方便的監控各組件的運行狀況

2.SpringCloud 核心組件

Column 1 Column 2
Eureka 服務註冊中心
Ribbon 客戶端負載均衡
Feign 聲明式服務調用
Hystrix 客戶端容錯保護
Zuul API服務網關
  • Eureka:微服務架構中的註冊中心,專門負責服務的註冊與發現。Eureka Client組件專門負責將服務的信息註冊到Eureka Server中,而Eureka Server是一個註冊中心,裏面有一個註冊表,保存了各服務所在的機器和端口號。各個服務啓動時,Eureka Client都會將服務註冊到Eureka Server,並且Eureka Client還可以反過來從Eureka Server拉取註冊表,從而知道其他服務在哪。
  • Feign:客戶端負載均衡,使用了動態代理。當接口定義了@FeignClient註解,Feign就會針對這個接口創建一個動態代理。Feign的動態代理會根據接口上的相關注解,來動態構造出需要請求的服務的地址,針對這個地址,發起請求,解析響應;
  • Ribbon:負載均衡,會幫你在每次請求時選擇一臺機器,均勻的把請求分發到各個機器上,默認使用Round Robin輪詢算法;
  • Hystrix:客戶端容錯保護,能夠實現隔離、熔斷以及降級。發起請求是通過Hystrix的線程池來走的,不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務雪崩的問題;
  • Zuul:也就是微服務網關。這個組件是負責網絡路由的,它使用戶不用關心後端的各種服務,就知道有一個網關,所有請求都往網關走,網關會根據請求中的一些特徵,將請求轉發給後端的各個服務。有一個網關之後,還有很多好處,比如做統一的降級、限流、認證授權、安全等等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章