2011-01-12 44 views
138

Điều này sẽ xuất hiện để được các câu hỏi tuổi già (mà nó là :)) mà máy chủ là tốt hơn giữa Tomcat và JBoss, nhưng tôi đã không tìm thấy một câu trả lời đủ tốt chưa giải quyết vấn đề của tôi.JBoss vs Tomcat một lần nữa

Tôi biết rằng Tomcat chỉ là một động cơ servlet và JBoss cung cấp nhiều chức năng hơn trong hộp, nhưng những gì tôi không hiểu là lý do tại sao Tomcat là tốt hơn để sử dụng trong một số tình huống hơn jboss. Tôi đọc một nơi nào đó mà JBoss có một kiến ​​trúc có thể cắm được và nếu được yêu cầu, bạn có thể rút các tính năng từ JBoss để làm cho nó về bản chất là một thùng chứa servlet tomcat. Nếu đó là trường hợp, thì không phải là tốt hơn để làm như vậy thay vì sử dụng Tomcat, để lại phạm vi để cắm lại mọi thứ.

Một lời giải thích khác mà tôi thấy có lợi cho Tomcat là nó nhẹ, điều đó có nghĩa là yêu cầu bộ nhớ ít hơn hoặc điều đó cũng cho phép phản hồi nhanh hơn. Một lần nữa, tôi cần phải biết rằng sẽ không jboss tải các thành phần theo yêu cầu tức là nếu tôi đang sử dụng chỉ servlets, sau đó sẽ không jboss bỏ qua phần còn lại của các tính năng và trở nên nhẹ tự động.

Về cơ bản, ứng dụng của tôi không có bất kỳ tính năng Java EE nào, nhưng đối số 'nhẹ' có lợi cho Tomcat không đủ thuyết phục vì những lý do đã đề cập ở trên.

Vui lòng trợ giúp.

Chỉnh sửa: Cuối cùng chúng tôi đã quyết định sử dụng tomcat vào lúc đó và chúng tôi đã sử dụng nó trong hơn 6 tháng nay với tính dễ sử dụng tuyệt vời. Infact chúng tôi tìm thấy một số sử dụng thực tế, nơi chúng tôi có thể dễ dàng chạy nhiều trường hợp tomcat trên cùng một máy chủ cho các nhà phát triển khác nhau, cùng có thể đã rất khó khăn với jboss.

Tôi đã tìm thấy tomcat không gây rắc rối cho công việc của chúng tôi và do đó có thể là lựa chọn đúng khi bạn không sử dụng nhiều tính năng của Java EE. PS: Xin lưu ý rằng chúng tôi vẫn sử dụng Spring và Hibernate với Tomcat

+1

Uhh không JBoss tích hợp với Tomcat? – Navi

+4

@Navi: Không hẳn. Nó chứa phiên bản phân chia của Tomcat codebase, nhưng nó phân kỳ khá một chút. – skaffman

+0

@skaffman Ok, sau đó tôi đoán những gì chúng ta cần làm là tìm hiểu những khác biệt nào là ... – Navi

Trả lời

132

Đầu tiên sự thật, không phải là tốt hơn. Như bạn đã đề cập, Tomcat cung cấp một thùng chứa servlet hỗ trợ đặc tả Servlet (Tomcat 7 hỗ trợ Servlet 3.0). JBoss AS, một máy chủ ứng dụng 'hoàn chỉnh' hỗ trợ Java EE 6 (bao gồm cả Servlet 3.0) trong phiên bản hiện tại của nó. Tomcat khá nhẹ và trong trường hợp bạn cần một số tính năng Java EE ngoài API Servlet, bạn có thể dễ dàng nâng cấp Tomcat bằng cách cung cấp các thư viện cần thiết như là một phần của ứng dụng của bạn. Ví dụ: nếu bạn cần các tính năng JPA, bạn có thể bao gồm Hibernate hoặc OpenEJB và JPA hoạt động gần như ra khỏi hộp.

Làm thế nào để quyết định có nên sử dụng Tomcat hoặc một chồng Java EE máy chủ ứng dụng đầy đủ:

Khi bắt đầu dự án của bạn, bạn nên có một ý tưởng những gì nó đòi hỏi. Nếu bạn đang ở trong một môi trường doanh nghiệp lớn JBoss (hoặc bất kỳ máy chủ Java EE khác) có thể là lựa chọn đúng đắn vì nó cung cấp built-in hỗ trợ cho ví dụ:

  1. nhắn JMS cho hội nhập không đồng bộ
  2. Web Services động cơ (JAX-WS và/hoặc JAX-RS)
  3. Khả năng quản lý như JMX và giao diện quản trị theo kịch bản
  4. Bảo mật nâng cao, ví dụ: out-of-the-box tích hợp với danh bạ bên thứ 3
  5. tập tin
  6. EAR thay vì "chỉ" hỗ trợ tập tin WAR
  7. tất cả các tính năng Java EE "vĩ đại" khác mà tôi không thể nhớ :-)

Theo ý kiến ​​của tôi Tomcat rất phù hợp nếu nói đến trung tâm web, ứng dụng hướng đến người dùng. Nếu tích hợp phụ trợ đi vào hoạt động, một máy chủ ứng dụng Java EE nên được (ít nhất) xem xét. Cuối cùng nhưng không kém phần quan trọng, việc di chuyển một WAR được phát triển cho Tomcat thành JBoss sẽ là một bài tập 1 ngày.

Thứ hai, bạn cũng nên tính đến việc sử dụng bên trong môi trường của mình. Trong trường hợp tổ chức của bạn đã chạy nói 1.000 trường hợp JBoss, bạn có thể luôn luôn đi với điều đó bất kể yêu cầu cụ thể của bạn (xem xét các khía cạnh như chi phí cho hoạt động hoặc upskilling). Tất nhiên, điều này áp dụng ngược lại.

2 phần trăm của tôi

6

Nói đúng; Không có tính năng Java EE, ứng dụng của bạn hầu như không cần một máy chủ ứng dụng nào cả ;-)

Giống như những người khác đã chỉ ra JBoss có một ngăn xếp Java EE đầy đủ (ít hoặc nhiều) trong khi Tomcat chỉ là một nhà cung cấp web. JBoss có thể được cấu hình để chỉ phục vụ như là một webcontainer là tốt, nó muốn sau đó chỉ là một wrapper mỏng xung quanh tomcat webcontainer bao gồm. Bằng cách đó bạn có thể có một JBoss gần như nhẹ, mà thực sự sẽ chỉ là một "wrapper" mỏng xung quanh Tomcat. Đó sẽ gần như là ánh sáng.

Nếu bạn không cần bất kỳ tính năng bổ sung nào mà JBoss cung cấp, hãy sử dụng tiện ích mà bạn cảm thấy thoải mái nhất. Cách nào dễ nhất để cấu hình và duy trì cho bạn?

+1

mức độ khó khăn khi sử dụng dịch vụ web và jmx với tomcat, bạn có thể vui lòng cung cấp một số tham chiếu/liên kết tốt không – Ashish

2

Tôi cũng đã đọc rằng đối với một số máy chủ một ví dụ chỉ cần chú thích bối cảnh kiên trì, nhưng trong một số máy chủ, việc tiêm nên được thực hiện bằng tay.

12

Hãy xem TOMEE

Nó có tất cả các tính năng mà bạn cần để xây dựng một ứng dụng Java EE hoàn tất.

7

Tôi chắc chắn sẽ xem xét TomEE vì ý tưởng đằng sau là giữ cho Tomcat mang tất cả tích hợp JavaEE 6 bị thiếu theo mặc định. Đó là một loại thỏa hiệp rất tốt

Các vấn đề liên quan