問題タブ [session-replication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
glassfish - glassfish ロードバランサの動作原理
Glassfish 3.1.1 と iPlanet Web Server の 2 つのインスタンスでクラスターをロード バランサーとして (同じマシン上で) 構成しました。Glassfish で提供されるテスト アプリケーションでは、すべて正常に動作します (このアプリケーションではセッション レプリケーションが有効になっています)。
しかし、自分のアプリケーションを動作させようとすると、次のような状況が発生します。特定のインスタンスのポート (つまり、28080 と 28081) でリクエストを送信すると応答しますが、ロード バランサー (ポート 81) を介してリクエストを送信しようとすると、私はエラー 404 が発生します。私のアプリケーションではまだセッション レプリケーションが有効になっていませんが、接続を確立し、インスタンスごとに別の 2 つのセッションを作成できます。ロードバランサーでも同様の効果を得たいと思います。
だから私は決定したいと思います:
- ロード バランサが正常に機能するためには、セッション レプリケーションが強く必要ですか?
- このエラーの他の理由を知っている人はいますか?
iPlanet ログからのメッセージ:
追加の結論:
(81 - iPlanet の http リスナー ポート)
送信するとGET http://localhost:81/testApp
、ロードバランサーはそれをグラスフィッシュに渡し、正しいサイトを返します。しかし、テスト アプリケーションで同じことを試してみると、GET http://localhost:81/myApp
iPlanet は独自のリソース (上記のログの docs ディレクトリ) でこのサイトを探します。
myHost-obj.conf のフラグメント:
time - Jboss クラスタリングのレプリケーション時間
mod_cluster をロード バランサーとして使用し、Jboss をアプリケーション サーバーとして使用しているアプリケーション用のクラスタリング セットアップを使用しています。リクエストをすぐに新しいノードに転送しますが、セッション全体を複製するのに少なくとも 10 秒かかります。秒それは完全に機能します。したがって、基本的に、私のセッションには数文字の変数が1つしかないにもかかわらず、なぜそんなに時間がかかるのかを知りたいのですが、どうすればこの時間を最小化できますか?
grails - Gals - アプリケーション停止時の Hazelcast IllegalStateException
grails アプリケーションをクラスタ化する方法を試しています。Hazelcast が非常に興味深いことがわかりました。
grails との統合を試すために、小さなテスト アプリケーションを作成しました。
サイトのドキュメントに従って、セッションを複製しました。
ノードを停止すると、次のような多くの例外がスローされ始めることがわかりました。
なぜそれが起こるのか、そしてそれを解決する方法を誰かが私に説明できますか?
ありがとう
amazon-ec2 - Glassfish と mod_jk - 負荷分散とセッション レプリケーション
Glassfish と mod_jk を使用して負荷分散とセッション レプリケーションを提供する環境を構成しています。
私のworker.propertiesは次のとおりです:
私が行った手順は次のとおりです。サーバーから(SSH経由で)一元的に管理されるn1とn2の2つのノードを作成しました。
クラスター c1 を作成しました。
2 つのインスタンスを作成しました。
開始インスタンス i1 開始インスタンス i2
http-listener と network-listener を作成しました
次に、routes JVM オプションを作成しました。
...そして jvmRoute による sysyem プロパティ:
server_ip/app_name にアクセスして自分のアプリケーションを使用できると思っていました。
Cookie を見ると、次のことがわかります。
- JSESSIONIDVERSION、形式: value:number_of_operation
- JSESSIONID、形式: value.i1
- JREPLICA、形式: i2
(または i2 と i1 を交換した場合も同様)。これにより、レプリケーションが正しく設定されていると仮定できますが、i1 を停止すると、空白のページが表示され、Cookie に変更はありません (JSESSIONID は、「.i2」の最後の部分「.i1」を変更して、要求が i2 にルーティングされます。間違っていますか?)。ありがとう、アンドレア
nosql - Jetty8およびMongoDBを介したレプリケートされたセッションでノードセッションのタイムアウトを防止します
私はJetty8を使用しており、現在2つのインスタンスがセットアップされ、ラウンドロビンロードバランサーの背後で実行されています。MongoDBを介したセッションレプリケーションを使用するように構成しました。2つの例外を除いてうまく機能しています。ここに1つ、別の質問にもう1つを含めます。
- 一方のノードのセッションを存続させながら、もう一方のノードの同じセッションがタイムアウトする可能性があります。タイムアウトしたノードに到達するとすぐに、他のノードのユーザーからのアクティビティがある場合でも、セッションが期限切れになったかのように動作します。
誰か提案はありますか?私はjetty-nosqlの実装を掘り下げ始めようとしていますが、誰かが私に時間を節約してくれれば、それが大好きです。
spring-security - Spring の「Remember Me」が突堤とセッション複製で機能しない
私は Jetty 8 を使用しており、現在 2 つのインスタンスをセットアップして、ラウンド ロビン ロード バランサーの背後で実行しています。MongoDB 経由でセッション レプリケーションを使用するように構成しました。私のアプリケーションは春のセキュリティを使用しています。2つの例外を除いて、うまく機能しています。1 つをここに含め、もう 1 つを別の質問に含めます。
- Spring Security の「Remember Me」が正しく機能しません。ユーザーがログインして「Remember me」をリクエストした場合、ユーザーの将来の認証リクエストが最初のログイン中にヒットした特定のノードにヒットすると仮定すると、正常に機能します。ただし、将来の認証リクエストが別のノードにヒットした場合、そのノードは「Remember me」リクエストを認識していないように見えるため、ユーザーに資格情報の入力を求めます。
誰か提案はありますか?私はSpring Securityのremember meコードとjetty-nosqlの実装を掘り下げ始めようとしていますが、誰かが私に時間を節約してくれると嬉しいです.
さらに、Cookie ハッシュベースの「remember me」トークンと db 永続化「remember me」トークン アプローチの両方を試しましたが、どちらも同じ問題を抱えています。
spring - 速度クラスタリングの問題
複数の tomcat がロード バランサーの下で実行されているクラスター化された環境で、環境が単純なノードからクラスター化されたノードに移行したときに、何らかの構成が必要な速度エンジンである可能性があると想定される問題が発生しました。
これは私が遭遇した方法であり、次の手順に従うと再現できます。手順は次のとおりです。たとえば、クラスタリングの開発環境では、開発者には 2 つの異なる (仮想) サーバーがあり、各サーバーの tomcat は、シリアル化されたセッションを送信する他方と通信し、もう一方のサーバーはその側で非シリアル化されます。このようにして、両方のサーバーが同じセッションを持っている場合、一方がダウンしている (または応答していない) 場合、もう一方のサーバーが要求を処理します。ユーザーのセッションは維持され、あらゆる種類のサーバー障害がユーザーを悩ませることはありません。
ブラウザでアプリケーションを閲覧しているときに、各サーバーの「catalina.out」ログを監視しているとします。すべてのリクエストを処理するサーバーがあり、もう1つはセッションを同期するだけです(スタンバイ中)。すべてのリクエストが処理されているサーバーの tomcat を強制終了しました。これで、スタンバイ サーバーがサーバーを提供する準備が整いました。レコードを検索できるページを参照すると、最初はページが空で表示されます。一度、3 つのレコードが表示される検索をヒットしますが、すべての行の列の最初の列には何か奇妙なことがあります。
#dotPaddingWithoutTitle はベロシティ マクロです。このようなシナリオではレンダリングできないようですが、ビュー全体 (ヘッダー、フッター、ナビゲーション、ツールバーなど) をレンダリングできるのに、これをレンダリングできない理由がわかりませんでした。
それについて何か考えがある場合は、これについて助けてください。ありがとう。
jsf-2 - JSF アプリケーションで Glassfish クラスタリングを使用して Session および ViewState データが失われないようにする
クラスター化されたアプリケーションでこの構成を使用しています。
glassfish-web.xml :
セッションは Glassfish によって保存および複製されます。問題は、クラスターに問題が発生し、再起動する必要がある場合、すべてのセッションおよび ViewState データが失われることです。
memcached や mysql などの外部ストレージをプラグインして、Session および ViewState 情報を保存し、クライアント データが失われないようにする方法はありますか?
PS : @ManagedBean @ViewScoped を広く使用しており、ビュー ステートを安全な場所に保持したいと考えています。
java - cloudfoundry プロパティの使用
このセクションで説明されているように、 cloudfoundryプロパティを使用したいと考えて います。 xml (Tomcat context.xml ファイルとしましょう) ファイルは、cloudfoundry でのセッション レプリケーションに関する調査を行うのに役立ちます。そのcontext.xmlファイルでconnection.host、connection.portなどを取得して、JDBCベースのセッションストアを指定したいと考えています。
しかし、これらのプロパティはSpring構成ファイルではうまく機能しますが、他のファイルでは機能しないため、そうする際に問題に直面しました。誰でもこれで私を助けてもらえますか?