Chúng tôi có một ứng dụng web dựa trên Java EE chạy trên cụm máy chủ ứng dụng Glassfish . Lưu lượng đến chủ yếu sẽ là các yêu cầu RESTful cho các biểu diễn dựa trên XML của tài nguyên ứng dụng của chúng tôi, nhưng có lẽ 5% lưu lượng có thể dành cho các biểu diễn dựa trên JSON- hoặc XHTML / CSS.
Chúng tôi hiện đang điều tra các giải pháp cân bằng tải để phân phối lưu lượng truy cập đến qua các phiên bản Glassfish trong cụm. Chúng tôi cũng đang xem xét cách giảm tải cụm bằng memcached, bản đồ băm phân tán trong bộ nhớ có các khóa sẽ là tên tài nguyên REST (ví dụ: "/ user / bob", "/ group / jazzlovers") và có giá trị là các biểu diễn XML tương ứng.
Một cách tiếp cận nghe có vẻ hứa hẹn là giết cả hai con chim bằng một viên đá và sử dụng máy chủ HTTP / máy chủ ngược nginx nhẹ, nhanh . Nginx sẽ xử lý từng yêu cầu đến bằng cách trước tiên tìm URI của nó trong memcached để xem có đại diện XML chưa hết hạn ở đó không. Nếu không, nginx sẽ gửi yêu cầu tới một trong các trường hợp Glassfish. Mô-đun memcached nginx được mô tả trong bài viết ngắn này .
Ấn tượng chung của bạn với nginx và memcached được sử dụng theo cách này là gì, bạn hạnh phúc với họ như thế nào? Những tài nguyên nào bạn thấy hữu ích nhất cho việc tìm hiểu về chúng? Nếu bạn đã thử chúng và chúng không phù hợp với mục đích của bạn, tại sao không, và thay vào đó bạn đã sử dụng cái gì?
Lưu ý: đây là một câu hỏi liên quan . Trước khi tôi biết về ServerFault, tôi đã hỏi điều này trên StackOverflow .
Chỉnh sửa: Tất cả các câu trả lời ở đây cho đến nay đều khá hữu ích, mặc dù không có kinh nghiệm trực tiếp. Câu trả lời này cuối cùng đã xuất hiện trên StackOverflow và nó khá lạc quan về thiết lập nginx / memcached.