私はwebappプロジェクトに取り組んでおり、複数のサーバーにデプロイすることを検討しています。
Springを使用したクラスタリング/負荷分散についてどのようなソリューションをお勧めしますか?
考慮すべき問題は何ですか?
例:マシンのクラスターでシングルトンはどのように動作しますか?セッションレプリケーションはどうですか?考慮すべき他の問題はありますか?
私はwebappプロジェクトに取り組んでおり、複数のサーバーにデプロイすることを検討しています。
Springを使用したクラスタリング/負荷分散についてどのようなソリューションをお勧めしますか?
考慮すべき問題は何ですか?
例:マシンのクラスターでシングルトンはどのように動作しますか?セッションレプリケーションはどうですか?考慮すべき他の問題はありますか?
考えられる問題のリストは次のとおりです(必ずしもSpring関連ではありません)。
ステートフルBean-何かを蓄積するコレクションやカウンターなど、Beanに状態がある場合は、この状態を複製する必要があるかどうかを検討する必要があります。たとえば、このカウンターは1つのJVMに対してローカルである必要がありますか、それともクラスター全体でグローバルである必要がありますか?後者の場合、テラコッタとヘーゼルキャストを検討してください
ファイルシステム-すべてのインスタンスが同じデータベースを使用している限り、すべてが正常です。ただし、1つのノードがディスクに書き込む場合、他のインスタンスはそれを読み取ることができません。ソリューション?すべてのストレージまたは分散ファイルシステムにデータベースを使用する
HTTPセッション-スティッキーセッションまたはレプリケートセッションのいずれかを使用します。レプリケーションを行う場合は、セッションをできるだけ小さくしてください。
非同期ジョブ-1時間ごとに実行するジョブがある場合、それはすべてのマシンで実行する必要がありますか、それとも専用のマシンで(またはランダムに)実行する必要がありますか?