ディレクトリ
分散システムが直面する構成の問題
マイクロサービスとは、モノリシックアプリケーションのビジネスを個別のサービスに分割する必要があることを意味します。各サービスの粒度は比較的小さいため、システムには多数のサービスが表示されます。各サービスを実行するには、必要な構成情報が必要であるため、一元的で動的な構成管理機能が不可欠です。SpringCloudは、この問題を解決するためのConfigServerを提供します。各マイクロサービスには、数百の構成ファイルによって管理されるapplication.ymlが付属しています。
Spring Cloud Configの概要
SpringCloud Configは、マイクロサービスアーキテクチャのマイクロサービスに集中型の外部構成サポートを提供し、構成サーバーは、さまざまなマイクロサービスアプリケーションのすべての環境に集中型の外部構成を提供します。
SpringCloud Configはサーバーとクライアントに分かれています。
サーバーは分散構成センターとも呼ばれ、構成サーバーに接続し、クライアントが構成情報を取得して情報を暗号化/復号化するためのアクセスインターフェイスを提供するために使用される独立したマイクロサービスアプリケーションです。
クライアントは、指定された構成センターを介してアプリケーションリソースとビジネス関連の構成コンテンツを管理し、起動時に構成センターから構成情報を取得して読み込みます。
構成サーバーは、デフォルトでgitを使用して構成情報を格納します。これは、環境構成のバージョン管理に役立ち、gitクライアントツールを介して構成コンテンツを簡単に管理およびアクセスできます。
用途
構成ファイルを集中管理します。
さまざまな環境のさまざまな構成、動的な構成の更新、dev / test / prod / beta / releaseなどのサブ環境の展開。
運用中に構成を動的に調整します。各サービスがデプロイされているマシンに構成ファイルを書き込む必要がなくなり、サービスは構成センターに送信されます。
独自の情報を統一的に引き出して構成します。
構成が変更されると、サービスは構成の変更を検出し、再起動せずに新しい構成を適用できます。
RESTインターフェースの形式で構成情報を公開します。
構成アーキテクチャ
springCloudConfigはサーバーとクライアントに分かれています。サーバーは、ローカル、git、またはsvnに保存されている構成ファイルをRESTスタイルのインターフェースに公開します。クライアントは、サーバー側のRESTインターフェースから構成を取得できます。ただし、新しい構成をアクティブに取得するために、クライアントは構成の変更をアクティブに検知できないため、各クライアントはPOSTメソッドを介して独自の/更新インターフェースをトリガーする必要があります。そして、上記のSpringCloudBusはその役割を果たしてきました
SpringCloudBusは、軽量のメッセージブローカーを通じて分散システムのノード(メッセージキューのようなもの)を接続します。これは、ステータスの変更(構成の変更など)またはその他の管理手順をブロードキャストするために使用できます。SpringCloudBusは、postメソッドを介してアクセスされるエンドポイント/バス/リフレッシュを提供します(スプリングブートには/ healthなどの監視対象のエンドポイントが多数あります)。通常、このインターフェイスはgitフック関数(リスニングトリガー)によって呼び出され、各SpringCloudConfigクライアントに通知しますサーバーは構成を更新します。
gitサーバーはリモートgitから構成ファイルをプルし、ローカルgitファイルライブラリに保存します。リモートgitが利用できない場合、ローカルgitファイルライブラリから構成情報をプルします
以下は、バスと組み合わせた春のクラウド構成のワークフロー図です
2つ目は、構成ファイルにアクセスする際の優先順位関係です。次の図を参照してください(私が試したデータ、サーバーから直接アクセス)
設定された優先度は上から下にあり、最高です