Glassfishアプリサーバークラスターで実行されているJava EEベースのWebアプリケーションがあります。着信トラフィックは、主にアプリケーションリソースのXMLベースの表現に対するRESTfulリクエストですが、おそらくトラフィックの5%はJSONまたはXHTML / CSSベースの表現に対するものです。
現在、クラスター内のGlassfishインスタンス全体に着信トラフィックを分散するための負荷分散ソリューションを調査しています。また、memcachedを使用してクラスターをオフロードする方法も検討しています。memcachedは、キーがRESTリソース名(たとえば、「/ user / bob」、「/ group / jazzlovers」)であり、値が対応するXML表現。
有望と思われるアプローチの1つは、1石で両方の鳥を殺し、軽量で高速なnginx HTTPサーバー/リバースプロキシを使用することです。Nginxは、最初にmemcachedでURIを調べて、期限切れになっていないXML表現が既にあるかどうかを確認することにより、各着信要求を処理します。そうでない場合、nginxはGlassfishインスタンスの1つにリクエストを送信します。nginx memcachedモジュールについては、この短い記事で説明しています。
nginxとmemcachedをこのように使用した場合の全体的な印象はどうですか?それらについて学ぶのに最も役立つリソースは何ですか?あなたがそれらを試したが、それらがあなたの目的に合わなかったなら、なぜそうではなく、代わりに何を使いましたか?
注:ここに関連する質問があります。ServerFaultについて知る前に、StackOverflowでこれを尋ねました。
編集:ここまでのすべての回答は、直接的な経験はありませんでしたが、非常に役立ちました。最終的にこの答えはStackOverflowに表示され、nginx / memcachedの設定ではかなり強気でした。