2011-12-26 50 views
21

Chúng tôi đang trong quá trình viết một máy chủ hiệu suất cao để xử lý tin nhắn. Chúng tôi đã sử dụng Jetty trong nhiều năm và thích nó, nhưng Netty có vẻ như nó có một số tính năng thú vị. Đặc biệt, nó có hỗ trợ cho việc xử lý không đồng bộ, do đó, một luồng không cần phải bị trói buộc để hệ thống xử lý một thông báo đã cho. Nó được thiết kế để giải quyết vấn đề C10k.Sử dụng Jetty hoặc Netty?

Tôi biết rằng Jetty có một số hỗ trợ cho NIO trong nội bộ. Liệu nó cũng có một mô hình không đồng bộ?

Thư có thể ở định dạng http. Netty có bất kỳ lợi thế hiệu suất nào trên Jetty khi thực hiện http thuần cũ không?

Tôi muốn có tất cả các tính năng tiện lợi của thùng chứa servlet thực, nhưng không phải với chi phí hiệu suất giảm.

Trả lời

26

Cầu tàu đã được hỗ trợ xử lý yêu cầu không đồng bộ kể từ phiên bản 6 (xem here), sử dụng API độc quyền. Các phiên bản gần đây hỗ trợ API không đồng bộ như một phần của API Servlet 3.0, giống như bất kỳ triển khai tuân thủ nào khác.

Sử dụng Netty có vẻ như rất nhiều công việc để đạt được ít, trừ khi bạn có yêu cầu rất cụ thể. Nếu không, Jetty sẽ thực hiện công việc cho bạn với nỗ lực tối thiểu.

+9

Lời khuyên tốt, mặc dù chúng tôi đã quyết định đi cùng với Netty. Servlet 3.0 api cho hỗ trợ async được phức tạp. Thật khó để làm theo những gì đang xảy ra và dễ dàng để mess up. Thêm vào đó, Netty sẽ tốt hơn rất nhiều cho việc xử lý giao thức mức thấp trong tương lai. Nhưng câu trả lời của bạn là một câu trả lời hay. – ccleve

+2

@skaffman: có bất kỳ gợi ý nào cho một số bài báo/blog mà Jetty vs Netty được thảo luận chi tiết hơn không? từ quan điểm của một người nên sử dụng Netty hoặc gắn bó với Jetty (hoặc Tomcat hoặc không có điều gì) –

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