Glassfishアプリサーバークラスターで実行されているJavaEEベースのWebアプリケーションがあります。着信トラフィックは主に、アプリケーションリソースのXMLベースの表現に対するRESTfulリクエストですが、おそらくトラフィックの5%がJSONベースまたはXHTML/CSSベースの表現に対するものである可能性があります。
現在、クラスタ内のGlassfishインスタンス全体に着信トラフィックを分散するための負荷分散ソリューションを調査しています。また、メモリ内の分散ハッシュマップであるmemcachedを使用してクラスターをオフロードする方法も検討しています。このハッシュマップのキーは、RESTリソース名(「/ user / bob」、「/ group / jazzlovers」など)であり、値は次のとおりです。対応するXML表現。
有望に聞こえる1つのアプローチは、1つの石で両方の鳥を殺し、軽量で高速なnginxHTTPサーバー/リバースプロキシを使用することです。Nginxは、最初にmemcachedでURIを検索して、有効期限が切れていないXML表現がすでに存在するかどうかを確認することで、各着信リクエストを処理します。そうでない場合、nginxはGlassfishインスタンスの1つにリクエストを送信します。nginx memcachedモジュールについては、この短い記事で説明しています。
このように使用されたnginxとmemcachedの全体的な印象はどうですか?それらにどの程度満足していますか?それらについて学ぶのに最も役立つリソースは何ですか?あなたがそれらを試したが、それらがあなたの目的に合わなかった場合、なぜそうではなく、代わりに何を使用しましたか?
注:これは関連する質問です。
更新:後でServerFault.comで同じ質問をしました。そこにある答えは、主にnginxの代替案を示唆しています(役に立ちますが、間接的に)。