微服務架構學習(四) Spring Cloud

2021-10-02 22:37:06 字數 1597 閱讀 9410

前面學習了解了微服務架構的常見選型,本次就深入的學習了解spring cloud這種選型,考慮是否適用於我目前參與的專案選擇

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

從度娘看來的介紹,描述的已經大概的說明了,spring cloud是一系列的框架集合起來,spring cloud的子專案,大致可分成兩類,一類是對現有成熟框架」spring boot化」的封裝和抽象,也是數量最多的專案;第二類是開發了一部分分布式系統的基礎設施的實現,如spring cloud stream扮演的就是kafka, activemq這樣的角色。我們細看一下第一類子專案中的核心專案。

spring cloud netflix:核心元件,可以對多個netflix oss開源套件進行整合,包括以下幾個元件:

eureka:服務治理元件,包含服務註冊與發現

hystrix:容錯管理元件,實現了熔斷器

ribbon:客戶端負載均衡的服務呼叫元件

feign:基於ribbon和hystrix的宣告式服務呼叫元件

zuul:閘道器元件,提供智慧型路由、訪問過濾等功能

archaius:外部化配置元件

spring cloud config:配置管理工具,實現應用配置的外部化儲存,支援客戶端配置資訊重新整理、加密/解密配置內容等。

spring cloud bus:事件、訊息匯流排,用於傳播集群中的狀態變化或事件,以及觸發後續的處理

spring cloud security:基於spring security的安全工具包,為我們的應用程式新增安全控制

spring cloud consul :

封裝了consul操作,consul是乙個服務發現與配置工具(與eureka作用類似),與docker容器可以無縫整合

流程

請求統一通過 api 閘道器(zuul)來訪問內部服務。

閘道器接收到請求後,從註冊中心(eureka)獲取可用服務。

由 ribbon 進行均衡負載後,分發到後端具體例項。

微服務之間通過 feign 進行通訊處理業務。

hystrix 負責處理服務超時熔斷。

turbine 監控服務間的呼叫和熔斷相關指標。

經過以上內容的了解,對spring cloud這一系列架構有了基礎的認知與了解,還需深入的進行學習。

針對spring cloud架構選型的學習,整體上感覺很匆忙,導致學習到的知識也僅僅停留在表面,沒有深入進入,後面我會繼續挑時間,進行進一步的學習,爭取能夠有所收穫,有所感悟。

微服務架構學習

微服務框架當下很火,那到底什麼是微服務呢?為什麼會火呢?我們傳統的應用程式是乙個專案,在乙個程序裡面執行的。這樣就會導致各個業務邏輯模組耦合性高,有時 調整時,牽一髮而動全身。傳統的專案大部分採用單體式開發,如下圖所示 如上圖所示,單體式開發弊端顯而易見。我們改動訂單模組時,倉儲 物流 使用者模組也...

微服務與微服務架構

微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...

微服務架構

一 先了解一下什麼是單體應用 就是乙個應用程式包含了所有模組功能,各模組同時部署。當然這種應用模式比較容易部署 測試,但隨著專案的加大,單體模式就會變得越來越臃腫,維護的成本逐漸變高。當乙個模組出錯,整個應用都會出現問題,擴充套件能力也會受到限制。二 什麼是微服務 是將整個應用程式分解為多個模組,各...