JBoss vs Tomcat một lần nữa [đóng]


138

Đây có vẻ là câu hỏi cũ (đó là :)) rằng máy chủ nào tốt hơn giữa Tomcat và JBoss, nhưng tôi chưa tìm thấy câu trả lời đủ tốt để giải quyết vấn đề của mình.

Tôi biết rằng Tomcat chỉ là một công cụ servlet và JBoss cung cấp nhiều chức năng hơn, nhưng điều tôi không hiểu là tại sao Tomcat lại tốt hơn để sử dụng trong một số tình huống hơn jboss. Tôi đã đọc ở đâu đó rằng 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 khỏi JBoss để biến nó thành một thùng chứa tomcat servlet. Nếu đó là trường hợp, thì tốt hơn là làm như vậy thay vì sử dụng Tomcat, để để lại phạm vi cho việc 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ó rất 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 đáp ứng nhanh hơn. Một lần nữa, tôi cần biết rằng sẽ không tải các thành phần jboss theo yêu cầu, tức là nếu tôi chỉ sử dụng các máy chủ, thì jboss sẽ không bỏ qua các tính năng còn lại và tự động trở nên nhẹ.

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 các đối số 'nhẹ' có lợi cho Tomcat nghe có vẻ không đủ sức thuyết phục vì những lý do đã nêu ở trên.

Xin vui lòng giúp đỡ.

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

Tôi đã thấy tomcat không gặp rắc rối cho công việc của chúng tôi và do đó có thể là lựa chọn phù hợp khi bạn không sử dụng nhiều tính năng 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 rẽ nhánh của cơ sở mã Tomcat, nhưng nó đã chuyển hướng khá nhiều.
skaffman

1
Một ứng dụng web đơn giản, không có tính năng j2ee nên dễ dàng triển khai trên bất kỳ vùng chứa servlet tuân thủ nào. Cho rằng điều này không quan trọng quá nhiều mà bạn sử dụng lên phía trước. Tôi sẽ bắt đầu với cách đơn giản nhất để triển khai (Tomcat và Jetty đều phục vụ tôi tốt trong quá khứ).
Joel

3
FYI, vào cuối năm 2011 Tomcat đã được chứng nhận JavaEE 6 là TomEE để trả lời câu hỏi cũ này.
David Blevins

1
một ques kín với khoảng 150K lượt xem, 125 lượt upvote và 0 lượt down? Tôi biết rằng đây là những quy tắc nhưng tôi phải nói những quy tắc như vậy phải được thay đổi một chút.
Muhammed giới thiệu

Câu trả lời:


132

Đầu tiên là 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áy chủ ứng dụng 'hoàn thành' hỗ trợ Java EE 6 (bao gồm cả Servlet 3.0) trong phiên bản hiện tại.

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 cao Tomcat bằng cách cung cấp các thư viện cần thiết như 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ư hoàn toàn.

Cách quyết định nên sử dụng Tomcat hay Java EEmáy chủ ứng dụng ngăn xếp đầy đủ :

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

  1. Tin nhắn JMS để tích hợp không đồng bộ
  2. Công cụ dịch vụ web (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ụ: tích hợp sẵn có với các thư mục của bên thứ 3
  5. Hỗ trợ tệp EAR thay vì "chỉ" hỗ trợ tệp WAR
  6. tất cả các tính năng Java EE "tuyệt vời" khác mà tôi không thể nhớ :-)

Theo tôi Tomcat là một sự phù hợp rất tốt nếu nói đến trung tâm web, các ứng dụng phải đối mặt với người dùng. Nếu tích hợp phụ trợ đi vào hoạt động, máy chủ ứng dụng Java EE nên được xem xét (ít nhất là). 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 sang JBoss sẽ là một cuộc hành trình kéo dài 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 1.000 trường hợp JBoss, bạn có thể luôn đi theo đ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 nâng cao kỹ năng). Tất nhiên, điều này áp dụng ngược lại.

2 xu của tôi


13

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 chỉnh.


7

Tôi chắc chắn sẽ tìm đến TomEE vì ý tưởng đằng sau là giữ 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


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áy chủ ứng dụng ;-)

Giống như những người khác đã chỉ ra JBoss có một ngăn xếp Java EE đầy đủ (ít nhiều) trong khi Tomcat chỉ là một người điều khiển web. JBoss có thể được cấu hình để chỉ đóng vai trò là người điều khiển web, sau đó nó chỉ là một trình bao bọc mỏng xung quanh trình điều khiển web tomcat đi kè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 "lớp bọc" mỏng xung quanh Tomcat. Đó sẽ là gần như lightweigth.

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


1
việc sử dụng các dịch vụ web và jmx với tomcat khó khăn như thế nào, bạn có thể vui lòng cung cấp một số tài liệu tham khảo / liên kết tốt
Ashish

2

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.