閉じる

Spring Cloud

Hoxton SR5

Spring Cloud は、開発者が分散システムの一般的なパターン(構成管理、サービス検出、サーキットブレーカー、インテリジェントルーティング、マイクロプロキシ、コントロールバス、ワンタイムトークン、グローバルロック、リーダーシップ選出、分散セッションなど)をすばやく構築するためのツールを提供します。クラスター状態)。分散システムの調整はボイラープレートパターンにつながり、Spring Cloud 開発者を使用すると、それらのパターンを実装するサービスとアプリケーションをすばやく立ち上げることができます。開発者自身のラップトップ、ベアメタルデータセンター、Cloud Foundry などの管理プラットフォームなど、あらゆる分散環境でうまく機能します。

機能

Spring Cloud は、一般的なユースケースですぐに使用できる優れたエクスペリエンスと、他のケースをカバーする拡張性メカニズムの提供に重点を置いています。

  • 分散 / バージョン構成

  • サービス登録およびディスカバリ

  • ルーティング

  • サービス間呼び出し

  • 負荷分散

  • サーキットブレーカー

  • グローバルロック

  • リーダーシップ選出とクラスター状態

  • 分散メッセージング

Spring Cloud は非常に宣言的なアプローチを採用しており、多くの場合、クラスパスの変更やアノテーションだけで多くの機能を利用できます。ディスカバリクライアントであるアプリケーションの例:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

主なプロジェクト

Spring Cloud Config

git リポジトリに一元化された集中外部設定管理。構成リソースは Spring Environment に直接マップされますが、必要に応じて、Spring 以外のアプリケーションで使用できます。

Spring Cloud Netflix

さまざまな Netflix OSS コンポーネント(Eureka、Hystrix、Zuul、Archaius など)との統合。

Spring Cloud Bus

サービスとサービスインスタンスを分散メッセージングとリンクするためのイベントバス。クラスター全体に状態変更を伝播できます(例:構成変更イベント)。

Spring Cloud Cloudfoundry

アプリケーションを Pivotal Cloud Foundry と統合します。サービス検出の実装を提供し、SSO および OAuth2 で保護されたリソースの実装も簡単にします。

Spring Cloud Open Service Broker

Open Service Broker API を実装する Service Broker を構築するための出発点を提供します。

Spring Cloud Cluster (GitHub)

Zookeeper、Redis、Hazelcast、Consul の抽象化と実装によるリーダーシップ選出と一般的なステートフルパターン。

Spring Cloud Consul

Hashicorp Consul によるサービスの検出と構成管理。

Spring Cloud Security

Zuul プロキシで負荷分散された OAuth2 レストクライアントと認証ヘッダーリレーのサポートを提供します。

Spring Cloud Sleuth

Spring Cloud アプリケーションの分散トレース。Zipkin、HTrace、およびログベース(ELK など)のトレースと互換性があります。

Spring Cloud Data Flow

最新のランタイムで構成可能なマイクロサービスアプリケーション向けのクラウドネイティブオーケストレーションサービス。使いやすい DSL、ドラッグアンドドロップ GUI、および REST-API を組み合わせることにより、マイクロサービスベースのデータパイプラインの全体的なオーケストレーションが簡素化されます。

Spring Cloud Stream

外部システムに接続できるアプリケーションを迅速に構築するための、軽量のイベント駆動型マイクロサービスフレームワーク。Apache Kafka または RabbitMQ を使用して Spring Boot アプリ間でメッセージを送受信するための単純な宣言モデル。

Spring Cloud Stream App Starters

Spring Cloud Stream App Starters は、外部システムとの統合を提供する Spring Boot ベースの Spring Integration アプリケーションです。

Spring Cloud Task

有限量のデータ処理を実行するアプリケーションを迅速に構築する、短命のマイクロサービスフレームワーク。Spring Boot アプリに機能と非機能の両方の機能を追加するための単純な宣言。

Spring Cloud Task App Starters

Spring Cloud Task App Starters は Spring Boot アプリケーションであり、永久に実行されない Spring Batch ジョブを含む任意のプロセスである可能性があり、一定期間のデータ処理後に終了 / 停止します。

Spring Cloud Zookeeper

Apache Zookeeper を使用したサービス検出と構成管理。

Spring Cloud Connectors (GitHub)

さまざまなプラットフォームの PaaS アプリケーションが、データベースやメッセージブローカー(以前は「Spring Cloud」として知られていたプロジェクト)などのバックエンドサービスに簡単に接続できるようにします。

Spring Cloud スターター (GitHub)

Spring ブートスタイルのスタータープロジェクトは、Spring Cloud のコンシューマーの依存関係管理を容易にします。(プロジェクトとして廃止され、Angel.SR2 の後、他のプロジェクトと統合されました。)

Spring Cloud CLI (GitHub)

Groovy で Spring Cloud コンポーネントアプリケーションをすばやく作成するための Spring Boot CLI プラグイン

Spring Cloud Contract

Spring Cloud Contract は、ユーザーがコンシューマードリブン契約アプローチをうまく実装するのに役立つソリューションを保持する包括的なプロジェクトです。

Spring Cloud Gateway

Spring Cloud Gateway は、Project Reactor に基づくインテリジェントでプログラム可能なルーターです。

Spring Cloud OpenFeign

Spring Cloud OpenFeign は、Spring 環境およびその他の Spring プログラミングモデルのイディオムへの自動構成およびバインドにより、Spring Boot アプリの統合を提供します。

Spring Cloud Pipelines

Spring Cloud Pipelines は、アプリケーションをダウンタイムなしでデプロイし、問題が発生した場合に簡単にロールバックできるようにするための手順を備えた、デプロイパイプラインを提供します。

Spring Cloud Function (GitHub)

Spring Cloud Function は、関数を介してビジネスロジックの実装を促進します。サーバーレスプロバイダー全体で統一されたプログラミングモデルをサポートし、スタンドアロン(ローカルまたは PaaS)で実行することもできます。

リリーストレイン

Spring Cloud は、原則として異なるリリースケイデンスを持つ独立したプロジェクトで構成される包括的なプロジェクトです。ポートフォリオを管理するために、BOM(Bill of Materials)が公開され、個々のプロジェクトに対する依存関係のキュレーションセットが作成されます(以下を参照)。リリーストレインには、サブプロジェクトとの混乱を避けるために、バージョンではなく名前が付けられています。名前はアルファベット順(したがって、時間順に並べ替えることができます)で、ロンドンの地下鉄駅の名前(「天使」が最初のリリース、「ブリクストン」が 2 番目)です。個々のプロジェクトのポイントリリースがクリティカルマスに累積する場合、またはプロジェクトの 1 つにすべてのユーザーが使用できるクリティカルバグがある場合、リリーストレインは名前が「.SRX」で終わる「サービスリリース」をプッシュします。ここで、「X」は数字です。

表 1: リリーストレイン Spring Boot の互換性
リリーストレイン Boot バージョン

Hoxton

2.2.x

Greenwich

2.1.x

Finchley

2.0.x

Edgware

1.5.x

Dalston

1.5.x

Greenwich は Spring Boot 2.1.x でビルドおよび動作し、Spring Boot 1.5.x での動作は想定されていません。

メモ : Dalston リリーストレインはなり終末期に達する (英語) Edgware が Spring Boot 1.5.x のエンドオブライフサイクルに従います 12 月 2018 年に。

Dalston および Edgware リリーストレインは Spring Boot 1.5.x に基づいて構築されており、Spring Boot 2.0.x での動作は想定されていません。

メモ
Camden リリーストレインはサポート終了となりました (英語)

Camden リリーストレインは Spring Boot 1.4.x に基づいて構築されていますが、1.5.x でもテストされています。

メモ
Brixton および Angel のリリーストレインは、2017 年 7 月にサポート終了 (英語) (EOL)とマークされました (英語)

Brixton リリーストレインは Spring Boot 1.3.x に基づいて構築されていますが、1.4.x でもテストされています。

Angel リリーストレインは Spring Boot 1.2.x に基づいて構築されており、一部の領域では Spring Boot 1.3.x と互換性がありません。Brixton は Spring Boot 1.3.x 上に構築されており、1.2.x と同様に互換性がありません。Angel で構築された一部のライブラリとほとんどのアプリは Brixton で正常に動作しますが、Spring-cloud-security 1.0.x の OAuth2 機能が使用されるすべての場所で変更が必要になります(ほとんど 1.3.0 の Spring Boot に移動されます)。

依存関係管理ツールを使用して、バージョンを制御します。Maven を使用している場合は、最初に宣言されたバージョンが優先されることを忘れないでください。BOM を順番に宣言します。通常、最初のバージョンが最新です(たとえば、Spring Boot 1.3.6 を Brixton.RELEASE で使用する場合は、ブート BOM を最初に配置します)。Spring 依存関係管理プラグインを使用する場合、同じルールが Gradle に適用されます。

メモ
リリーストレインには、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 Initializr

プロジェクトのクイックスタート

Spring Initializr (英語) を使用してアプリケーションをブートストラップします。

ドキュメント

Spring プロジェクト別に用意されています。プロジェクトの機能を使用する方法と、それを使用して達成できることを詳細に説明しています。
Hoxton SR5 CURRENT GA リファレンスドキュメント (英語)
2020.0 SNAPSHOT
2020.0 0-M2 PRE リファレンスドキュメント (英語)
Hoxton SNAPSHOT
Greenwich SR6 GA リファレンスドキュメント (英語)
Greenwich SNAPSHOT

ガイド

15-30 分で完成するように設計されたガイドは、Spring を使用した開発タスク用のスターターアプリ構築するための、迅速で実践的な手順を提供します。

Unofficial Translation by spring.pleiades.io. See the original content.