Spring Cloud 簡介



在瞭解 Spring Cloud 之前,讓我們簡要概述一下微服務架構以及 Spring Boot 在建立微服務中的作用。

微服務架構

微服務架構是一種應用程式開發風格,其中應用程式被分解成小的服務,並且這些服務之間具有鬆散耦合。以下是使用微服務架構的主要優點:

  • 易於維護 - 微服務規模小,並且只處理單一業務任務。因此,它們易於開發和維護。

  • 獨立擴充套件和部署 - 微服務具有其各自的部署模式和節奏。因此,每個服務可以根據其需要處理的負載進行擴充套件。每個服務可以根據其自身的時間表進行部署。

  • 獨立技術使用 - 微服務的程式碼庫與其部署環境隔離,因此可以使用基於用例的語言和技術。不需要在所有微服務中使用公共技術棧。

更多關於微服務架構的詳細資訊,請訪問 微服務架構

Spring Boot

Spring Boot 是一個基於 Java 的框架,用於建立微服務架構中使用的微服務。它進一步縮短了開發 Spring 應用程式所需的時間。以下是它提供的主要好處:

  • 易於理解和開發 Spring 應用程式

  • 提高生產力

  • 縮短開發時間

更多關於 Spring Boot 的資訊,請訪問:Spring Boot

Spring Cloud

Spring Cloud 提供了一組元件,這些元件在構建雲中的分散式應用程式時非常有用。我們可以自己開發這些元件,但是這會在開發和維護這些樣板程式碼上浪費時間。

這就是 Spring Cloud 發揮作用的地方。它為在分散式環境中觀察到的常見問題提供了現成的雲模式。它嘗試解決的一些模式包括:

  • 分散式訊息傳遞

  • 負載均衡

  • 斷路器

  • 路由

  • 分散式日誌記錄

  • 服務註冊

  • 分散式鎖

  • 集中式配置

這就是為什麼它成為開發需要高可擴充套件性、效能和可用性的應用程式的非常有用的框架的原因。

在本教程中,我們將介紹上面列出的 Spring Cloud 元件。

使用 Spring Cloud 的好處

  • 開發人員專注於業務邏輯 - Spring Cloud 提供了實現雲的常見設計模式的所有樣板程式碼。因此,開發人員可以專注於業務邏輯,而無需開發和維護這些樣板程式碼。

  • 快速的開發時間 - 由於開發人員可以免費獲得樣板程式碼,因此他們可以在保持程式碼質量的同時快速交付所需的專案。

  • 易於使用 - Spring Cloud 專案可以輕鬆地與現有的 Spring 專案整合。

  • 活躍的專案 - Spring Cloud 由 Pivotal(Spring 背後的公司)積極維護。因此,我們只需升級 Spring Cloud 版本即可免費獲得所有新功能和錯誤修復。

微服務架構具有多種優點;但是,其最嚴重的缺點之一是它在分散式環境中的部署。並且在分散式系統中,我們有一些常見的問題經常出現,例如:

  • 服務 A 如何知道在哪裡聯絡服務 B,即服務 B 的地址?

  • 多個服務如何相互通訊,即使用什麼協議?

  • 我們如何在我們的環境中監控各種服務?

  • 我們如何將服務的配置與服務例項一起分發?

  • 我們如何連結跨服務的呼叫以進行除錯?

  • 等等…

這些都是 Spring Cloud 試圖解決並提供通用解決方案的問題集。

雖然Spring Boot 用於快速應用程式開發,但將其與 Spring Cloud 一起使用可以減少我們在分散式環境中開發和部署的微服務的整合時間。

Spring Cloud 元件

現在讓我們來看看 Spring Cloud 提供的各種元件以及這些元件解決的問題

問題 元件
分散式雲配置 Spring Cloud Config,Spring Cloud Zookeeper,Spring Consul Config
分散式訊息傳遞 Spring Stream 與 Kafka,Spring Stream 與 RabbitMQ
服務發現 Spring Cloud Eureka,Spring Cloud Consul,Spring Cloud Zookeeper
日誌記錄 Spring Cloud Zipkin,Spring Cloud Sleuth
Spring 服務通訊 Spring Hystrix,Spring Ribbon,Spring Feign,Spring Zuul

我們將在接下來的章節中介紹其中一些元件。

Spring Cloud 和 Spring Boot 之間的區別

這是一個在開始使用 Spring Cloud 時經常出現的問題。實際上,這裡沒有可比性。Spring Cloud 和 Spring Boot 用於實現不同的目標。

Spring Boot 是一個用於加快應用程式開發的 Java 框架,尤其用於微服務架構。

Spring Cloud 用於整合這些微服務,以便它們可以輕鬆地在分散式環境中協同工作並相互通訊

事實上,為了獲得最大好處,例如更少的開發時間,建議將 Spring Boot 與 Spring Cloud 一起使用。

廣告
© . All rights reserved.