JBoss vs Tomcatが再び[終了]


138

これは、TomcatとJBossのどちらのサーバーの方が優れているかという古くからある質問のように見えますが、問題を解決するのに十分な答えはまだ見つかりません。

Tomcatはサーブレットエンジンにすぎず、JBossはそのままでより多くの機能を提供することを知っていますが、私が理解できないのは、Tomcatがjbossよりも状況によって使用するのに適している理由です。私は、JBossにプラグ可能なアーキテクチャがあることをどこかで読みました。必要に応じて、JBossから機能を取り外して、本質的にTomcatサーブレットコンテナにすることができます。その場合は、プラグインするためのスコープを残すために、Tomcatを使用する代わりにそうする方が良いでしょう。

Tomcatを支持するもう1つの説明は、軽量であること、メモリ要件が少ないこと、または応答が速いことです。ここでも、要件に従ってjbossがコンポーネントをロードしないことを知っておく必要があります。つまり、サーブレットのみを使用している場合、jbossは残りの機能をスキップして自動的に軽量化しません。

基本的に、私のアプリケーションにはJava EE機能がありませんが、上記の理由により、Tomcatを支持する「軽量」の引数は十分に説得力がありません。

助けてください。

編集:私たちはついにtomcatを当時使用することを決定し、非常に使いやすく今から6か月以上使用しています。実際、異なる開発者が同じサーバーマシンで複数のTomcatインスタンスを非常に簡単に実行できる実用的な使用方法が見つかりました。jbossでは同じことが非常に困難でした。

tomcatは私たちの作業に手間がかからないことがわかったため、Java EE機能の多くを使用していない場合は正しい選択かもしれません。PS:Tomcatでは引き続きSpringおよびHibernateを使用していることに注意してください


1
JBossはTomcatと統合されませんか?
ナビ

4
@ナビ:そうでもない。Tomcatコードベースの分岐バージョンが含まれていますが、かなり分岐しています。
スカフマン、2011年

1
j2ee機能を持たない単純なWebアプリであれば、準拠しているサーブレットコンテナーに簡単にデプロイできます。これを考えると、どれを最初に使用するかはあまり問題になりません。私は最も簡単にデプロイできるものから始めます(TomcatとJettyはどちらも以前はうまく機能していました)。
Joel

3
ちなみに、2011年後半にTomcatは、この古くからの質問に答えるためにTomEEとしてJavaEE 6認定を受けました。
David Blevins、2012

1
約15万回のビュー、125の賛成票、0の反対票を持つ閉じた質問?!! これらがルールであることは知っていますが、そのようなルールは少し変更する必要があると言わざるを得ません。
Muhammed Refaat 2017年

回答:


132

まず、事実はどちらも良くありません。すでに述べたように、Tomcatはサーブレット仕様をサポートするサーブレットコンテナを提供します(Tomcat 7はサーブレット3.0をサポートします)。「完全な」アプリケーションサーバーであるJBoss ASは、現在のバージョンでJava EE 6(サーブレット3.0を含む)をサポートしています。

Tomcatはかなり軽量であり、サーブレットAPI以外の特定のJava EE機能が必要な場合は、必要なライブラリをアプリケーションの一部として提供することにより、Tomcatを簡単に拡張できます。たとえば、JPA機能が必要な場合は、HibernateまたはOpenEJBを含めることができ、JPAはほとんどそのまま使用できます。

TomcatまたはフルスタックJava EEアプリケーションサーバーのどちらを使用するかを決定する方法:

プロジェクトを開始するときは、何が必要かを理解しておく必要があります。大規模なエンタープライズ環境では、JBoss(またはその他のJava EEサーバー)が適切な選択になる可能性があります。

  1. 非同期統合のためのJMSメッセージング
  2. Webサービスエンジン(JAX-WSおよび/またはJAX-RS)
  3. JMXやスクリプト化された管理インターフェースなどの管理機能
  4. 高度なセキュリティ、たとえばサードパーティのディレクトリとのすぐに使える統合
  5. 「唯一の」WARファイルのサポートではなくEARファイルのサポート
  6. 覚えていない他のすべての「素晴らしい」Java EE機能:-)

私の意見では、Tomcatは、Web中心のユーザー向けアプリケーションに関しては非常に適しています。バックエンド統合が機能する場合は、Java EEアプリケーションサーバーを(少なくとも)検討する必要があります。最後に重要なことですが、Tomcat用に開発されたWARをJBossに移行するには、1日の練習をする必要があります。

次に、環境内での使用も考慮する必要があります。組織がすでに1,000個のJBossインスタンスを実行している場合、具体的な要件に関係なく、常にそれに対応することができます(運用コストやスキルの向上などの側面を考慮してください)。もちろん、これは逆も同様です。

私の2セント



7

デフォルトではTomcatにすべてのJavaEE 6統合を提供しないようにするというのが背後にある考えなので、私は確かにTomEEに目を向けます。それは一種の非常に良い妥協です


6

厳密に言えば; Java EE機能がないため、アプリにアプリサーバーはほとんど必要ありません;-)

他の人が指摘したように、TomcatはWebコンテナのみですが、JBossには(多かれ少なかれ)完全なJava EEスタックがあります。JBossは、Webコンテナーとしても機能するように構成できます。その場合、JBossは、含まれているTomcat Webコンテナーの薄いラッパーになるだけです。そうすれば、Tomcatの薄い「ラッパー」になるだけの、ほとんど同じくらいのJBossを作成できます。それはほとんど光の威力でしょう。

JBossが提供する追加機能が必要ない場合は、最も使いやすいものを選択してください。構成と保守が最も簡単なのはどれですか。


1
TomcatでWebサービスとjmxを使用するのはどれほど難しいですか。いくつかの優れたリファレンス/リンクを提供してください
Ashish

2

また、一部のサーバーでは、たとえば永続化コンテキストに注釈を付けるだけで十分な場合もありますが、一部のサーバーでは、手動で挿入する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.