web-dev-qa-db-ja.com

JBoss対Tomcat

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

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

私がTomcatに賛成するもう1つの説明は、軽量であるということです。それはメモリ要件が少ないことを意味します。繰り返しになりますが、jbossが要件に従ってコンポーネントをロードしないこと、つまりサーブレットのみを使用している場合、jbossが残りの機能をスキップして自動的に軽量にならないことを知る必要があります。

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

助けてください。

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

Tomcatは作業に手間がかからないことがわかりました。したがって、Java EE機能の多くを使用していない場合は、Tomcatが正しい選択になる可能性があります。 PS:まだTomcatでSpringとHibernateを使用していることに注意してください

138
Ashish

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

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

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セント

133
home

TOMEE を見てください

完全なJava EEアプリを構築するために必要なすべての機能を備えています。

13
Deb J

Tomcatはデフォルトで欠落しているすべてのJavaEE 6統合をTomcatに持ち込むという考え方なので、私は確かにTomEEを期待しています。それは一種の非常に良い妥協です

7

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

他の人が指摘したように、JBossは(ほぼ)完全なJava EEスタックを持っていますが、TomcatはWebコンテナーのみです。 JBossは、webcontainerとしてのみ機能するように設定することもできます。そうすると、含まれるTomcat webcontainerの薄いラッパーになります。そうすれば、Tomcatを実際に単に「ラッパー」するだけの軽量のJBossを使用できます。それはほとんど軽量です。

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

6

また、一部のサーバーでは永続コンテキストに注釈を付けるだけでよいことも読んでいますが、一部のサーバーでは手動で挿入する必要があります。

2
Antti Tanskanen