JBoss vs Tomcat lagi [ditutup]

138

Ini akan muncul sebagai pertanyaan lama (yang mana :)) bahwa server mana yang lebih baik antara Tomcat dan JBoss, tapi saya belum menemukan jawaban yang cukup baik untuk menyelesaikan masalah saya.

Saya tahu bahwa Tomcat hanya mesin servlet dan JBoss menawarkan lebih banyak fungsi di luar kotak, tetapi apa yang saya gagal pahami adalah mengapa Tomcat lebih baik digunakan dalam beberapa situasi daripada jboss. Saya membaca di suatu tempat bahwa JBoss memiliki arsitektur pluggable dan jika diperlukan, Anda dapat mencabut fitur dari JBoss untuk membuatnya dasarnya sebuah wadah servom kucing jantan. Jika itu masalahnya, maka bukankah lebih baik melakukannya daripada menggunakan Tomcat, untuk meninggalkan ruang lingkup untuk memasukkan kembali hal-hal.

Penjelasan lain yang saya temukan dalam mendukung Tomcat adalah ringan, apakah itu berarti kebutuhan memori lebih sedikit atau apakah itu juga memungkinkan respons yang lebih cepat. Sekali lagi, saya perlu tahu bahwa tidak akan memuat komponen jboss sesuai kebutuhan yaitu jika saya hanya menggunakan servlets, maka jboss tidak akan melewatkan sisa fitur dan menjadi ringan secara otomatis.

Pada dasarnya, aplikasi saya tidak memiliki fitur Java EE, tetapi argumen 'ringan' yang mendukung Tomcat tidak terdengar cukup meyakinkan karena alasan yang disebutkan di atas.

Tolong bantu.

Sunting: Kami akhirnya memutuskan untuk menggunakan tomcat saat itu dan kami telah menggunakannya selama lebih dari 6 bulan sekarang dengan sangat mudah digunakan. Bahkan kami menemukan beberapa penggunaan praktis di mana kami dapat dengan mudah menjalankan beberapa instance kucing jantan pada mesin server yang sama untuk pengembang yang berbeda, hal yang sama bisa sangat sulit dengan jboss.

Saya telah menemukan bahwa kucing jantan tidak repot untuk pekerjaan kami dan karena itu mungkin menjadi pilihan yang tepat ketika Anda tidak menggunakan banyak fitur Java EE. PS: Harap dicatat bahwa kami masih menggunakan Spring dan Hibernate dengan Tomcat

Ashish
sumber
1
Uhh tidakkah JBoss berintegrasi dengan Tomcat?
Navi
4
@Navi: Tidak juga. Ini berisi versi bercabang dari basis kode Tomcat, tapi agak menyimpang.
skaffman
1
Sebuah aplikasi web sederhana, tanpa fitur j2ee harus menyebar dengan mudah pada wadah servlet yang sesuai. Mengingat hal ini seharusnya tidak terlalu penting mana yang Anda gunakan di depan. Saya akan mulai dengan penyebaran paling sederhana (Tomcat dan Jetty sama-sama membantu saya di masa lalu).
Joel
3
FYI, pada akhir 2011 Tomcat adalah JavaEE 6 yang disertifikasi sebagai TomEE untuk menjawab pertanyaan lama ini.
David Blevins
1
sebuah pertanyaan tertutup dengan sekitar 150 ribu tampilan, 125 upvote, dan 0 downvotes? !! Saya tahu bahwa ini adalah peraturannya tetapi saya harus mengatakan aturan semacam itu harus diubah sedikit.
Muhammed Refaat

Jawaban:

132

Pertama faktanya, tidak ada yang lebih baik . Seperti yang telah Anda sebutkan, Tomcat menyediakan wadah servlet yang mendukung spesifikasi Servlet (Tomcat 7 mendukung Servlet 3.0). JBoss AS, server aplikasi 'lengkap' mendukung Java EE 6 (termasuk Servlet 3.0) dalam versi saat ini.

Tomcat cukup ringan dan jika Anda memerlukan fitur Java EE tertentu di luar Servlet API, Anda dapat dengan mudah meningkatkan Tomcat dengan menyediakan perpustakaan yang diperlukan sebagai bagian dari aplikasi Anda. Misalnya, jika Anda memerlukan fitur JPA Anda dapat memasukkan Hibernate atau OpenEJB dan JPA bekerja hampir di luar kotak.

Cara memutuskan apakah akan menggunakan Tomcat atau Java EEserver aplikasi tumpukan penuh :

Saat memulai proyek Anda, Anda harus memiliki ide tentang apa yang diperlukan. Jika Anda berada di lingkungan perusahaan besar, JBoss (atau server Java EE lainnya) mungkin merupakan pilihan yang tepat karena menyediakan dukungan bawaan untuk misalnya:

  1. Olahpesan JMS untuk integrasi asinkron
  2. Mesin Layanan Web (JAX-WS dan / atau JAX-RS)
  3. Kemampuan manajemen seperti JMX dan antarmuka administrasi yang dituliskan
  4. Keamanan tingkat lanjut, misalnya integrasi out-of-the-box dengan direktori pihak ke-3
  5. File EAR alih-alih "hanya" mendukung file WAR
  6. semua fitur Java EE "hebat" lainnya yang tidak saya ingat :-)

Menurut pendapat saya, Tomcat sangat cocok jika menyangkut web centric, aplikasi yang dihadapi pengguna. Jika integrasi backend ikut bermain, server aplikasi Java EE harus (setidaknya) dipertimbangkan. Last but not least, memigrasikan PERANG yang dikembangkan untuk Tomcat ke JBoss harus menjadi latihan 1 hari.

Kedua, Anda juga harus mempertimbangkan penggunaan di dalam lingkungan Anda. Jika organisasi Anda sudah menjalankan 1.000 instance JBoss, Anda mungkin selalu setuju dengan itu terlepas dari persyaratan konkret Anda (pertimbangkan aspek-aspek seperti biaya untuk operasi atau peningkatan keterampilan). Tentu saja ini berlaku sebaliknya.

2 sen saya

rumah
sumber
13

Lihatlah TOMEE

Ini memiliki semua fitur yang Anda perlukan untuk membangun aplikasi Java EE yang lengkap.

Deb J
sumber
7

Saya pasti akan melihat TomEE karena ide di belakang adalah untuk menjaga Tomcat membawa semua integrasi JavaEE 6 hilang secara default. Itu semacam kompromi yang sangat bagus

Romain Manni-Bucau
sumber
6

Sesungguhnya; Tanpa fitur Java EE, aplikasi Anda hampir tidak memerlukan server sama sekali ;-)

Seperti orang lain tunjukkan JBoss memiliki (lebih atau kurang) Java EE stack penuh sementara Tomcat adalah webcontainer saja. JBoss dapat dikonfigurasi untuk hanya berfungsi sebagai webcontainer juga, maka itu hanya akan menjadi pembungkus tipis di sekitar webcontainer tomcat yang disertakan. Dengan begitu Anda bisa memiliki JBoss yang hampir sama ringannya, yang sebenarnya hanya akan menjadi "bungkus" tipis di sekitar Tomcat. Itu hampir sama ringannya.

Jika Anda tidak membutuhkan tambahan apa pun yang ditawarkan JBoss, pilihlah yang paling nyaman bagi Anda. Yang mana yang paling mudah dikonfigurasi dan dirawat untuk Anda?

Jon Martin Solaas
sumber
1
betapa sulitnya untuk menggunakan layanan web dan jmx dengan kucing jantan, dapatkah Anda memberikan beberapa referensi / tautan yang bagus
Ashish
2

Saya juga telah membaca bahwa untuk beberapa server misalnya hanya perlu menjelaskan konteks kegigihan, tetapi di beberapa server, injeksi harus dilakukan secara manual.

Antti Tanskanen
sumber