web-dev-qa-db-ja.com

各マイクロサービスには独自のサーバーを実行する必要がありますか(Tomcat、Dockerコンテナー)

開発中、JavaバックエンドAPIがあり、これをTomcatで実行しています。バックエンドをDockerコンテナーにラップしてAWS EC2インスタンスにデプロイし、スケーリングできるようにしたいのですが上下。

すべてのDockerコンテナーで個別のTomcatサーバーを実行する必要がありますか?私はそれを回避する方法を知りませんが、それはコンテナーあたりのオーバーヘッド(1 GB〜2 GBのメモリ、500 MBのディスク領域)のように思えます。

4
nanotek

マイクロサービスアーキテクチャでは、通常、サービスを個別にデプロイする柔軟性が必要であり、この要件により、サービスごとに1つのコンテナがあり、その実行に必要なすべての依存関係と環境が得られます。

デフォルトのJavaエコシステムはクラウドネイティブアプリケーションを作成するのが重いですが、これは QuarkusGraaVM などのプロジェクトで変更され、ビルドできます高性能でメモリ消費量が少ないクラウドネイティブアプリケーション。

4
Edu Costa

アプリをTomcatインスタンスにデプロイするのではなく、アプリ内で embedded Tomcatを使用することを検討してください。私はこのアプローチを一般的に好んでいますが、それは間違いなくマイクロサービスのアーキテクチャーとコンテナーとはるかに整合しています。

3
JimmyJames

この場合、Dockerは必要ありません。

Tomcatはすでにコンテナー実行システムであり、複数の別個のWebサイトおよびAPIを実行できます

2
Ewan