1.マイクロサービスとは
1.1、アーキテクチャの進化
アーキテクチャの開発プロセスは、モノリシックアーキテクチャから分散アーキテクチャ、SOAアーキテクチャ、マイクロサービスアーキテクチャまでです。
モノリシックアーキテクチャ:分割のないJavaWebプログラム
分散アーキテクチャ:ビジネスの垂直部門によると、各ビジネスは単一のアーキテクチャであり、APIを介して相互に呼び出します。
SOAアーキテクチャー:SOAはサービス指向アーキテクチャーです。アプリケーションのさまざまなコンポーネントが、ネットワーク上の通信プロトコルを介して他のコンポーネントにサービスを提供したり、サービスを利用したりするため、一種の分散アーキテクチャでもあります。
1.2、マイクロサービスアーキテクチャ
ある程度、マイクロサービスアーキテクチャはSOAアーキテクチャをさらに発展させたものであり、現在、正式な定義はありません。マイクロサービスの父であるMartinFowlerは、マイクロサービスの概要を次のように説明しました。
1)現在、マイクロサービス業界の統一された標準的な定義はありません(このアーキテクチャスタイルの正確な定義はありませんが)。
2)しかし、一般的に言えば、マイクロサービスアーキテクチャは、アーキテクチャパターンまたはアーキテクチャスタイルです。単一のアプリケーションを一連の小さなサービスに分割することを提唱します。各サービスは独自の独立したプロセスで実行されます。相互に調整および協力して、ユーザーに究極のサービスを提供します。値。
3)サービス間で軽量の通信メカニズムを使用して相互に通信します(通常はHTTPベースのRESTful API)。各サービスは特定のビジネスを中心に構築されており、本番環境、本番環境のような環境などに個別に展開できます。
4)さらに、統一された集中型のサービス管理メカニズムは可能な限り回避する必要があります。特定のサービスについては、ビジネスコンテキストに応じて適切な言語とツールを選択して構築する必要があります。これにより、非常に軽量な集中型の管理が可能になります。これらのサービスを調整します。さまざまな言語を使用してサービスを作成することも、さまざまなデータストアを使用することもできます。
1.3、マイクロサービスソリューション
最も人気のある2つのマイクロサービスソリューションは、SpringCloudとDubboです。
2.SpringCloudの概要
2.1、SpringCloudとは
Java言語のマイクロサービスフレームワークとして、SpringCloudはSpringBootに依存しており、迅速な開発、継続的デリバリー、および簡単なデプロイという特徴があります。Spring Cloudには、マイクロサービスのすべての側面を含む多くのコンポーネントがあり、オープンソースコミュニティのSpringとNetflixPivotalのプロモーションによってますます完璧になっています。
SpringCloudは、一連のコンポーネントの有機的なコレクションです。
2.2、SpringCloudの主要コンポーネント
2.2.1、ユーレカ
Netflix Eurekaは、EurekaサーバーやEurekaクライアントなど、Netflixによってオープンソース化されたRESTベースのサービス検出コンポーネントです。
2.2.2、リボン
リボンNetflixによってオープンソース化された負荷分散コンポーネント。
2.2.3、偽物
Feignは宣言型Webサービスクライアントです。
2.2.4、Hystrix
HystrixはNetflixのオープンソースプロジェクトであり、分散システムでのリンケージ障害を防ぐためのヒューズ機能を提供します。
2.2.5、ズール
Zuulは、Netflixによってインキュベートされた「ゲートウェイ」ソリューション専用のオープンソースコンポーネントです。
2.2.6、ゲートウェイ
Spring Cloud Gatewayは、Spring 5.0、Spring Boot 2.0、およびProjectReactorテクノロジーに基づいてSpringによって正式に開発されたゲートウェイです。SpringCloudGatewayは、マイクロサービスアーキテクチャにシンプルで効果的かつ統合されたAPIルーティング管理方法を提供することを目的としています。
2.2.7、構成
Spring Cloudは、分散構成でSpring Cloud Configを提供し、外部構成のクライアントおよびサーバーサポートを提供します。
2.2.8、バス
Spring Cloud Busを使用すると、メッセージバスを簡単に構築できます。
2.2.9、OAuth2
Sprin Cloudによって構築されたマイクロサービスシステムは、Spring CloudOAuth2を使用してマイクロサービスシステムを保護できます。
2.2.10、スルース
Spring CloudSleuthはSpringCloudのコンポーネントであり、その主な機能は、分散システムでのサービスリンク追跡のソリューションを提供することです。
3.まとめ
この記事では、マイクロサービスを構築するためのSpringCloudのアーキテクチャーと基本コンポーネントの進化の概要を説明します。