Sun Java System Application Server のロードバランサはデフォルトで、スティッキラウンドロビンアルゴリズムを使用して、着信 HTTP および HTTPS 要求を負荷分散します。
新しい HTTP 要求がロードバランサプラグインに送信されると、単純なラウンドロビンスキーマに基づいてアプリケーションサーバーインスタンスに転送されます。要求がセッションベースのアプリケーションに対するものである場合、これには新しいセッションに対する要求も含まれます。同じセッションベースのアプリケーションに対する同じクライアントからの後続の要求は、割り当て済み要求 (スティッキ要求) と見なされ、ロードバランサによって同じインスタンスにルーティングされます。スティッキ (sticky: 粘着性の) ラウンドロビンという名前が付いているのはそのような理由からです。セッションベースでないアプリケーションへの要求や、セッションベースのアプリケーションに対する最初の要求は未割り当て要求と呼ばれます。スティッキー性は Cookie を使用して、または明示的 URL 書き換えによって実現されます。ロードバランサは、スティッキ度を判断する方法を自動的に決定します。
ロードバランサプラグインは次の方法を使ってセッションのスティッキ度を判断します。
Cookie に基づいた方法: ロードバランサプラグインは、個別の Cookie を使用してルート情報を記録します。Cookie に基づいた方法を使用するには、HTTP クライアント (通常は Web ブラウザ) が Cookie をサポートしている必要があります。HTTP クライアントが Cookie を受け入れることができない場合、プラグインは次の方法を使用します。
明示的な URL 書き換え: スティッキ情報が URL に追加されます。この方法は、HTTP クライアントが Cookie をサポートしない場合でも機能します。
スティッキ情報から、ロードバランサプラグインは、まず、以前に要求が転送されたインスタンスを判断します。そのインスタンスが正常であるとわかると、ロードバランサプラグインは、要求をその特定のアプリケーションサーバーインスタンスに転送します。したがって、特定のセッションに対するすべての要求が同じアプリケーションサーバーインスタンスに送信されます。