Kami memiliki aplikasi web berbasis Java EE yang berjalan di cluster server aplikasi Glassfish . Lalu lintas yang masuk sebagian besar adalah permintaan TENANG untuk representasi berbasis XML dari sumber daya aplikasi kami, tapi mungkin 5% dari lalu lintas mungkin untuk representasi berbasis JSON atau XHTML / CSS.
Kami sekarang sedang menyelidiki solusi penyeimbangan beban untuk mendistribusikan lalu lintas masuk di seluruh instance Glassfish di cluster. Kami juga mencari cara untuk melepas cluster menggunakan memcached, peta hash terdistribusi dalam-memori yang kuncinya adalah nama sumber daya REST (mis. "/ User / bob", "/ group / jazzlovers") dan yang nilainya representasi XML yang sesuai.
Salah satu pendekatan yang kedengarannya menjanjikan adalah membunuh kedua burung dengan satu batu dan menggunakan server HTTP / nginx HTTP yang ringan dan cepat . Nginx akan menangani setiap permintaan masuk dengan terlebih dahulu mencari URI-nya di memcached untuk melihat apakah sudah ada representasi XML yang belum kadaluwarsa di sana. Jika tidak, nginx mengirimkan permintaan ke salah satu instance Glassfish. Modul nginx memcached dijelaskan dalam artikel singkat ini .
Apa kesan Anda secara keseluruhan dengan nginx dan memcached menggunakan cara ini, seberapa senang Anda dengan mereka? Sumber apa yang menurut Anda paling membantu untuk mempelajarinya? Jika Anda mencobanya dan tidak sesuai dengan tujuan Anda, mengapa tidak, dan apa yang Anda gunakan?
Catatan: inilah pertanyaan terkait . Sebelum saya tahu tentang ServerFault saya menanyakan ini di StackOverflow .
Sunting: Semua jawaban di sini sejauh ini cukup membantu, meskipun tidak ada pengalaman langsung. Jawaban ini akhirnya muncul di StackOverflow, dan itu cukup bullish pada pengaturan nginx / memcached.