Skip to main content

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などのツールを使用した包括的なモニタリングとログ記録が特徴です。

Diagram