1前書き

この記事では、https://jhipster.github.io/[JHipster]という興味深い例を探っていきます。単純なマイクロサービス・アーキテクチャーの構築です。必要なものをすべて構築してデプロイする方法を説明します。最後に、本格的なマイクロサービスアプリケーションを起動して実行します。

JHipsterを初めて使用する場合は、このプロジェクト生成ツールの基本をよく理解する前に、リンク:/jhipster[紹介記事]を確認してください。


2モノリシックvsマイクロサービス

最初の記事では、比較的保守が簡単なモノリシック・アプリケーションを作成してブートストラップする方法を説明しました。

一方、私たちのマイクロサービスシステムはフロントエンドとバックエンドを分離します。それはまた、それぞれが完全なアプリケーションドメインのサブセットを扱ういくつかの小さなアプリケーションに分割することもできます。

当然、すべてのマイクロサービスの実装と同様に、これによっていくつかの問題が解決されますが、コンポーネントのレジストリやセキュリティの処理など、複雑な作業も発生します。

JHipsterは、Netflixのhttps://github.com/Netflix/eureka/[Eureka Server]やHashicorpのhttps://www.hashicorpのような最新のオープンソースツールの助けを借りて、マイクロサービスアプリケーションを管理する上での最も困難な面倒を見ます。 com/blog/consul-announcement/[領事]

もちろん、ここで考慮しなければならないことがいくつかあります。たとえば、ドメインの大きさや複雑さ、アプリケーションの重要性、必要な可用性レベルなど、さまざまなサーバーや場所でサービスをホストする場合これらのツールの目標は、もちろん、これらの組み合わせを可能にし、管理するのが簡単なことです。


2.1. JHipsterマイクロサービスコンポーネント

JHipsterを使用してマイクロサービスアーキテクチャを処理する場合は、少なくとも3つの異なるプロジェクト(JHipsterレジストリ、マイクロサービスゲートウェイ、および少なくとも1つのマイクロサービスアプリケーション)を構築してデプロイする必要があります。

  • JHipster Registry ** はマイクロサービスアーキテクチャの重要な部分です。それは他のすべてのコンポーネントを結び付け、それらが互いに通信できるようにします。

  • Microservice Application ** にはバックエンドコードが含まれています。実行すると、それが関係しているドメインのAPIを公開します。マイクロサービスアーキテクチャは、それぞれが少数の関連エンティティとビジネスルールを含む、多数のマイクロサービスアプリケーションで構成されている場合があります。

  • そしてMicroservice Gateway ** はすべてのフロントエンド(Angular)コードを持ち、マイクロサービスアプリケーションのグループ全体によって作成されたAPIを消費します。


3インストール

インストールプロセスの詳細については、/jhipster[JHipsterの紹介記事]を参照してください。


4マイクロサービスプロジェクトの作成

それでは、マイクロサービスプロジェクトの3つのコアコンポーネントをインストールしましょう。


4.1. JHipster Registry

のインストール

JHipsterレジストリは標準のJHipsterなので、それをダウンロードして実行するだけです。変更する必要はありません。

git clone https://github.com/jhipster/jhipster-registry
cd jhipster-registry && ./mvnw

これでGitHubから

jhipster-registry

プロジェクトが複製され、アプリケーションが起動します。正常に起動したら、http://localhost:8761/にアクセスし、ユーザー

admin

とパスワード

admin

でログインします。


4.2. マイクロサービスアプリケーションのインストール

これが、プロジェクトの実際の機能を構築するところです。この例では、車を管理する簡単なマイクロサービスアプリケーションを作成します。最初にアプリケーションを作成し、次にエンティティを追加します。

# create a directory for the app and cd to it
mkdir car-app && cd car-app
# run the jhipster wizard
yo jhipster

ウィザードが起動したら、指示に従って

carapp

という名前のマイクロサービスタイプのアプリケーションを作成します。その他の関連パラメータは次のとおりです。

  • ポート:8081

  • パッケージ:

    com.car.app

  • 認証:JWT

  • サービスの発見:JHipster Registry

以下のスクリーンショットは、オプションの完全なセットを示しています。

それでは、アプリケーションに

char

エンティティを追加します。

# runs entity creation wizard
yo jhipster:entity car

エンティティ作成ウィザードが起動します。指示に従って、

ma

という3つのフィールド(

make



model



price.

)を持つエンティティを作成します。

それが終わったら、私たちの最初のMicroserviceアプリケーションは完成です。生成されたコードを見ると、JavaScript、HTML、CSS、またはフロントエンドのコードがないことがわかります。 Microservice Gatewayが作成されると、これらはすべて生成されます。また、プロジェクトに関する重要な情報と便利なコマンドについては、READMEファイルを調べてください。

最後に、新しく作成したコンポーネントを実行しましょう。

./mvnw

上記のコマンドを実行する前に、

jhipster-registry

コンポーネントが稼働していることを確認してください。そうでなければ、エラーが発生します。

すべてが計画どおりに進んだ場合は、

car-app

が起動し、

jhipster-registry

ログに、アプリが正常に登録されたことが示されます。

Registered instance CARAPP/carapp:746e7525dffa737747dcdcee55ab43f8
  with status UP (replication=true)


4.3. マイクロサービスゲートウェイのインストール

今フロントエンドビット。 Microservice Gatewayを作成し、フロントエンドコードを作成したい既存のコンポーネント上にエンティティがあることを示します。

# Create a directory for our gateway app
mkdir gateway-app && cd gateway-app
# Runs the JHipster wizard
yo jhipster

指示に従って、Microserviceゲートウェイタイプのアプリケーションを作成しましょう。アプリケーションに「ゲートウェイ」と名前を付けて、その他のパラメータに次のオプションを選択します。

  • ポート:8080

  • パッケージ:

    com.gateway

  • auth:JWT

  • サービスの発見:JHipster Registry

これは、完全なパラメータセットの概要です。

エンティティ作成に移りましょう。

# Runs entity creation wizard
yo jhipster:entity car

既存のマイクロサービスから生成するかどうかを尋ねられたら、

はい、

を選択し、

car-app

ルートディレクトリへの相対パスを入力します(例:../car-app)。最後に、エンティティを更新するかどうかを尋ねられたら、[はい]をクリックしてエンティティを再生成します。

JHipsterは、先ほど作成した既存のマイクロサービスアプリケーションの一部である

Car.json

ファイルを見つけ、そのファイルに含まれるメタデータを使用してそのエンティティに必要なすべてのUIコードを作成します。

Found the .jhipster/Car.json configuration file, entity can be automatically generated!


gateway-app

を実行して、すべてがうまくいっているかどうかをテストする時間です。

# Starts up the gateway-app component
./mvnw

それでは、http://localhost:8080/に移動し、ユーザー

admin

とパスワード

admin

でログインしましょう。トップメニューに、車のリストページに行くためのアイテム

Car

が見えるはずです。すべていいね!

リンク:/uploads/jhipster-car-page-768×316.png%20768w[]リンク:/uploads/jhipster-create-car-300×190.png%20300w[]


4.4. 2番目のマイクロサービスアプリケーションの作成

次に、私たちのシステムをさらに一歩進めて、Microservice Applicationタイプの2番目のコンポーネントを作成しましょう。この新しいコンポーネントは自動車ディーラーを管理するので、

dealer

というエンティティを追加します。

新しいディレクトリを作成し、そのディレクトリに移動して

yo jhipster

コマンドを実行しましょう。

mkdir dealer-app && cd dealer-app
yo jhipster

その後、アプリケーションの名前として

dealerapp

を入力し、実行するポートとして

8082

を選択します(これが

jhipster-registry

および

car-app

に使用しているものとは異なるポートであることが重要です)。

他のパラメータについては、必要なオプションを選択できます。

car-app

コンポーネントとは異なるデータベースタイプ、キャッシュ戦略、およびテストを使用できるように、これは別のマイクロサービスであることを忘れないでください。


dealer

エンティティにいくつかのフィールドを追加しましょう。たとえば、

name



address:

# Runs the create entity wizard
yo jhipster:entity dealer


gateway-app

に移動して

dealer

エンティティのフロントエンドコードを生成するように指示することを忘れないでください。

# Navigate to the gateway-app root directory
cd ../gateway-app
# Runs the create entity wizard
yo jhipster:entity dealer

最後に、

dealer-app

ルートディレクトリで

./mvnw

を実行してそのコンポーネントを起動します。

次に、http://localhost:8080でゲートウェイアプリケーションにアクセスし、ページを更新してDealerエンティティ用に新しく作成されたメニュー項目を確認します。

最後に、

jhipster-registry

アプリケーションをもう一度http://localhost:8761/で調べてみましょう。[アプリケーション]メニュー項目をクリックして、3つのコンポーネントすべてが正しく識別および登録されたことを確認します。+

/uploads/jhipster-registered-applications-1.png%20867w

+ link:/uploads/Captura-de-Tela -2017-05-16-às-19.26.48.png%20963w[]+以上です。わずか数分で2つのマイクロサービスに裏打ちされたすべてのフロントエンドコードを含む1つのGatewayアプリケーションで構成される洗練されたアーキテクチャを作成しました。


5結論

JHipsterを使ってMicroservice Architectureプロジェクトを開始するのはとても簡単です。必要な数のマイクロサービスアプリケーションと1つのマイクロサービスゲートウェイを作成するだけで、準備は完了です。

このフレームワークについては、https://jhipster.github.io/microservices-architecture/[公式のJHipster Webサイト]で詳しく調べることができます。

いつものように、私たちの自動車アプリ、ディーラーアプリ、およびゲートウェイアプリのためのコードベースはhttps://github.com/eugenp/tutorials/tree/master/jhipster/jhipster-microservice[over on GitHub]です。