JHipsterでマイクロサービスを実行する
マイクロサービス vs モノリシックアーキテクチャ
JHipsterが最初に尋ねる質問は、生成するアプリケーションの種類です。次の2つのアーキテクチャスタイルから選択できます:
- 「モノリシック」アーキテクチャは、フロントエンドコードとバックエンドのSpring Bootコードの両方を含む、単一の汎用アプリケーションを使用します。
- 「マイクロサービス」アーキテクチャは、フロントエンドとバックエンドを分割 するため、アプリケーションのスケーリングとインフラストラクチャの問題への対応が容易になります。
「モノリシック」アプリケーションの方が作業がはるかに簡単なので、特定の要件がない場合は、これがお勧めのオプションであり、デフォルトのオプションです。
マイクロサービスアーキテクチャの概要
JHipsterのマイクロサービスアーキテクチャは次のように動作します:
- ゲートウェイは、JHipsterで生成されたアプリケーション(マイクロサービスゲートウェイタイプを使用)であり、Webトラフィックを処理し、Angular、React、またはVueアプリケーションを提供するように設計されています。複数のゲートウェイを使用してBackends for Frontendsパターンに従うことも可能ですが、必須ではありません。ゲートウェイはSpring Cloud Gatewayライブラリ上に構築されており、MVCとWebFluxの両方のフレームワークをサポートしています。
- Consulは、サービスディスカバリーサービスであり、キー/バリューストアでもあります。
- JHipster Registryは、すべてのアプリケーションが登録し、設定を取得するランタイムアプリケーションです。また、ランタイムモニタ リングダッシュボードも提供します。Consulの代替として使用することもできます。(非推奨)
- マイクロサービスは、JHipsterで生成されたアプリケーションで(生成時に
microservice application
タイプを使用)、RESTリクエストを処理します。これらはステートレスであり、複数のインスタンスを並行して起動することで、重い負荷に対応できます。
この図は、Netflix OSS、Spring Cloud、およびDockerなどの主要技術を組み込んだJHipsterを利用したマイクロサービスアーキテクチャを示しています。Webトラフィックとユーザー認証を処理するゲートウェイ、バックエンド業務を行うマイクロサービス、およびOpenTelemetry、Elasticsearch、Logstash、Kibanaなどのツールを使用した包括的なモニタリングとログ記録が特徴です。