天天看點

什麼是 Spring Cloud ?

Spring Cloud 為開發者提供了快速建構分布式系統中一些常見模式的工具(例如配置管理、服務發現、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、上司選舉、分布式會話、叢集狀态)。分布式系統的協調導緻了樣闆模式,使用 Spring Cloud 開發人員可以快速建立實作這些模式的服務和應用程式。它們将适用于任何分布式環境,包括開發人員自己的筆記本電腦、裸機資料中心和托管平台(如 Cloud Foundry)。

什麼是 Spring Cloud ?

特征

Spring Cloud 專注于為典型用例和可擴充性機制提供良好的開箱即用體驗以覆寫其他用例。

分布式/版本化配置

服務注冊和發現

路由

服務到服務呼叫

負載均衡

斷路器

全局鎖

上司選舉和叢集狀态

分布式消息傳遞

入門

生成一個新的 Spring Cloud 項目

最簡單的入門方法是通路start.spring.io,選擇您的 Spring Boot 版本和您要使用的 Spring Cloud 項目。這将在您生成項目時将相應的 Spring Cloud BOM 版本添加到您的 Maven/Gradle 檔案中。

将 Spring Cloud 添加到現有的 Spring Boot 應用程式

如果您想要将 Spring Cloud 添加到該應用程式的現有 Spring Boot 應用程式,第一步是确定您應該使用的 Spring Cloud 版本。您在應用中使用的版本取決于您使用的 Spring Boot 版本。

下表概述了 Spring Cloud 的哪個版本映射到 Spring Boot 的哪個版本。

釋出系列 Spring Boot 相容性

什麼是 Spring Cloud ?

Spring Cloud Dalston、Edgware、Finchley 和 Greenwich 都已達到生命周期終止狀态,不再受支援。

通過服務版本 (SR) 将錯誤修複和向後相容功能添加到每個版本系列中。确定要使用哪個版本的 Spring Cloud 後,您應該使用該版本系列的最新服務版本。您可以在我們的釋出說明頁面上找到最新的服務釋出資訊。

既然您知道要使用哪個版本系列以及該版本系列的最新服務版本,您就可以将 Spring Cloud BOM 添加到您的應用程式中。

<properties>

<spring.cloud-version>Hoxton.SR8</spring.cloud-version>

</properties>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>${spring.cloud-version}</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

buildscript {

dependencies {

classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE"      

}

ext {

set(‘springCloudVersion’, “Hoxton.SR8”)

apply plugin: “io.spring.dependency-management”

dependencyManagement {

imports {

mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"      

釋出系列包含 spring-cloud-dependencies和 spring-cloud-starter-parent. 您可以像使用父對象一樣使用spring-boot-starter-parent(如果您使用的是 Maven)。如果您隻需要依賴管理,“依賴”版本是同一事物的僅 BOM 版本(它隻包含依賴管理,沒有插件聲明或對 Spring 或 Spring Boot 的直接引用)。如果您使用的是 Spring Boot 父 POM,那麼您可以使用 Spring Cloud 中的 BOM。相反的情況并非如此:使用 Cloud 父級使得不可能或至少不可靠地還使用 Boot BOM 來更改 Spring Boot 及其依賴項的版本。

就像 Spring Boot 一樣,許多 Spring Cloud 項目都包含 starters,您可以将其添加為依賴項,以将各種雲原生功能添加到您的項目中。在許多情況下,許多功能純粹是通過将 starter 添加到類路徑來啟用的。起始名稱記錄在各個項目中。下面是一個示例,說明如何将 Spring Cloud Config Client 和 Spring Cloud Netflix Eureka 用戶端添加到您的應用程式中。

<artifactId>spring-cloud-starter-config</artifactId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

compile ‘org.springframework.cloud:spring-cloud-starter-config’

compile ‘org.springframework.cloud:spring-cloud-starter-netflix-eureka-client’

//…

入門資源

Spring Cloud 初學者指南

主要項目

春雲配置

由 git 存儲庫支援的集中外部配置管理。配置資源直接映射到 Spring,Environment但如果需要,可以由非 Spring 應用程式使用。

春雲 Netflix

與各種 Netflix OSS 元件(Eureka、Hystrix、Zuul、Archaius 等)內建。

春雲巴士

用于将服務和服務執行個體與分布式消息連接配接在一起的事件總線。用于在叢集中傳播狀态更改(例如配置更改事件)。

Spring Cloud Cloudfoundry

将您的應用程式與 Pivotal Cloud Foundry 內建。提供服務發現實作,還可以輕松實作 SSO 和 OAuth2 保護的資源。

Spring Cloud 開放服務代理

提供建構實作 Open Service Broker API 的服務代理的起點。

Spring Cloud 叢集

上司選舉和通用狀态模式,具有 Zookeeper、Redis、Hazelcast、Consul 的抽象和實作。

Spring Cloud 領事

使用 Hashicorp Consul 進行服務發現和配置管理。

春雲安全

為 Zuul 代理中的負載平衡 OAuth2 其餘用戶端和身份驗證标頭中繼提供支援。

春雲偵探

Spring Cloud 應用程式的分布式跟蹤,相容 Zipkin、HTrace 和基于日志(例如 ELK)的跟蹤。

Spring Cloud 資料流

用于現代運作時上的可組合微服務應用程式的雲原生編排服務。易于使用的 DSL、拖放式 GUI 和 REST-API 共同簡化了基于微服務的資料管道的整體編排。

春雲流

一個輕量級的事件驅動微服務架構,用于快速建構可以連接配接到外部系統的應用程式。在 Spring Boot 應用程式之間使用 Apache Kafka 或 RabbitMQ 發送和接收消息的簡單聲明模型。

Spring Cloud Stream 應用程式

Spring Cloud Stream 應用程式是開箱即用的 Spring Boot 應用程式,使用 Spring Cloud Stream 中的綁定器抽象提供與外部中間件系統(如 Apache Kafka、RabbitMQ 等)的內建。

Spring Cloud 任務

一個短暫的微服務架構,用于快速建構執行有限資料處理量的應用程式。用于向 Spring Boot 應用程式添加功能和非功能特性的簡單聲明。

Spring Cloud Task 應用啟動器

Spring Cloud Task App Starters 是 Spring Boot 應用程式,可以是任何程序,包括不會永遠運作的 Spring Batch 作業,它們在有限的資料處理時間後結束/停止。

春雲動物園管理者

使用 Apache Zookeeper 進行服務發現和配置管理。

Spring Cloud 連接配接器

使各種平台中的 PaaS 應用程式可以輕松連接配接到後端服務,如資料庫和消息代理(該項目以前稱為“Spring Cloud”)。

Spring Cloud 初學者

Spring Boot 風格的啟動項目,以簡化 Spring Cloud 消費者的依賴管理。(作為一個項目停止并與Angel.SR2之後的其他項目合并。)

Spring Cloud CLI

Spring Boot CLI 插件,用于在 Groovy 中快速建立 Spring Cloud 元件應用程式

Spring Cloud 合約

Spring Cloud Contract 是一個包含解決方案的傘形項目,可幫助使用者成功實施消費者驅動的合同方法。

春雲網關

Spring Cloud Gateway 是一個基于 Project Reactor 的智能可程式設計路由器。

Spring Cloud OpenFeign

Spring Cloud OpenFeign 通過自動配置和綁定到 Spring Environment 和其他 Spring 程式設計模型習語,為 Spring Boot 應用程式提供內建。

Spring Cloud 管道

Spring Cloud Pipelines 提供了一個自以為是的部署管道,其中包含確定您的應用程式可以以零停機時間的方式部署并輕松復原出現問題的步驟。

春雲功能

Spring Cloud Function 通過函數促進業務邏輯的實作。它支援跨無伺服器提供商的統一程式設計模型,以及獨立運作(本地或在 PaaS 中)的能力。