独立したプロセスとして2台のサーバーを実行するには?

J_Strauton:

私は2、サービスがあり、各コントローラを持っています。

@Service
public class Service1
{
}

@RestController
@RequestMapping("/api")
public class Controller1
{
}

...

@Service
public class Service2
{
}

@RestController
@RequestMapping("/api")
public class Controller2
{
}

私は自分のプロセス内の各サービスやコントローラーを実行したいと思います。どのように私は2つのアプリを作成せずにこれを行うことができますか?

これは私が欲しいものに似て、下の画像を参照してください。 ここでは、画像の説明を入力します。

アーサーGurov:

付属部品図を考えると、私はmicroservicesアーキテクチャに探してお勧めします。あなたは、ドメイン(映画、顧客、レビュー)によって責任を分離しても、別のアクセスルール(映画カタログや顧客データへのアクセスをセキュアにするためなどの匿名アクセス)を構築することができるようになります。各データストレージ(DB1、DB2など)が唯一の責任サービスにリンクされます。また、あなたは利用状況など5つの映画サービス、2つの顧客データサービス、及び3つのレビューサービスに応じて、正確に必要なサービスを拡張することができるようになります。

GradleのかMavenは簡単に使用すると、複数のサブモジュールで大きなプロジェクトをビルドすることができます。あなたのモジュールのいくつかは、アプリケーションモジュールとなり、そのうちのいくつかは、共有モジュール(モデル、utilsの、など)になります。

また、私は、簡素化、変更管理およびレビューするために、プロジェクトごとに別々のレポを設定することをお勧めします - それは大規模で非常に参考になります。

例Gradleの構造:

ルートモジュール

  • モデル
  • utilsの
  • 映画サービス
  • 顧客サービス
  • レビューサービス

各サービスのサブモジュールは、コントローラ、サービスおよびリポジトリを持つ独自の@SpringBootApplicationが含まれています。もちろん、あなたは、各サービスのサブモジュールに春ブーツのGradleプラグインを追加する必要があります。

更新:今後、各サービスのサブモジュールにドッカー設定を追加し、ドッカーコンテナとして各アプリケーションを実行するのが賢明だろう。ドッカーが大幅に開発を簡素化します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=219830&siteId=1