問題タブ [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.
tomcat - Tomcat クラスタリングの構成
クラスタリング用に Tomcat 7 で Liferay を構成しています。Webで検索したところ、いくつかの指示が見つかりました。それらすべてを読んで、いくつかの疑問が生じました。誰かが私を助けてくれれば幸いです。
A. server.xml の「${CATALINA_HOME}/conf」に次の行を挿入すると、Tomcat のドキュメント (リンク)に記載されているように、Tomcat がデフォルト値で構成されます。
重要なデフォルト値の一部を次に示します。
1- マルチキャスト アドレスは 228.0.0.4 です
2- マルチキャスト ポートは 45564 です (ポートとアドレスが一緒になってクラスタ メンバーシップを決定します。
3- ブロードキャストされる IP は java.net.InetAddress.getLocalHost().getHostAddress() です127.0.0.1 をブロードキャストします。これは一般的なエラーです)
4- レプリケーション メッセージをリッスンする TCP ポートは、4000 ~ 4100 の範囲で最初に使用可能なサーバー ソケットです
5- 2 つのリスナーが構成されています ClusterSessionListener
6- 2 つのインターセプターが構成されています
私のクラスター環境は小さいので (Tomcat インスタンスが 2 つ)、デフォルトの構成で十分だと思います。
Q#A. 項目 3 の正確な意味を知りたいです。どうすればその間違いを犯すことができますか?
B. 上記に基づいて、デフォルト構成は IP アドレス 228.0.0.4 で動的クラスタリングを使用します。これは放送用アドレスだと思います (間違っていたら訂正してください)。もしそうなら、このリンクは言う:
Linux 環境では、ほとんどのシステム カーネルがマルチキャスト アドレスを処理できます。ただし、カーネル ルーティング テーブルにルート エントリを追加する必要があります。
Q#B. これはどういう意味ですか?これを行うべきかどうかをどうやって知ることができますか?
C. クラスタリングの次のステップとして、Web アプリケーションの web.xml ファイルに「<distributable/>」要素を追加する必要があります。サーバーの「${CATALINA_HOME}/webapps」フォルダーには、Web アプリケーションごとに 1 つの web.xml があります。それらのすべてに、セッションのレプリケーションにこの要素を含める必要があることを理解しています (間違っている場合は修正してください)。
Q#C1. すべてのWebアプリケーションのプレフィックスとして「liferay-」が付いた別の「web.xml」ファイルを見つけました。それらは別の web.xml と見なされ、この要素を持つべきですか?
Q#C2. 「<distributable/>」要素を 1 か所に追加して、すべての Web アプリケーションに適用する方法はありますか? ある種の親/グローバル「web.xml」ファイル?
D. 一部の指示では、「distributable='true'」属性を「${CATALINA_HOME}/conf/context.xml」ファイルの「<Context>」要素に追加する必要があります。また、指示しない人もいます。
Q#D. この構成は必須ですか? この属性を持っていて、持っていないことの結果は何ですか?
前もって感謝します。
jakarta-ee - セッション複製は Java EE 標準の一部ですか
アプリケーション サーバー間のセッション レプリケーションが公式の EE 標準の一部であるかどうか疑問に思っていますか? 私はそれについて何も見つけることができないので、公式ドキュメントへのリンクを提供していただければ幸いです。
amazon-ec2 - S3 Ping を使用して Amazon EC2 で動作する JBoss AS7 がセッションを複製しない
Amazon に自動スケーリング グループがあります。各インスタンスで Jboss を次のように構成しました。
mybucket に入ると、各ノードのファイルが表示されますが、セッションが複製されていません。
これは、ノード 2 の初期化における jboss ログ ファイルの一部です。
jboss - mod_cluster を使用した JBoss での負荷分散
JBoss (7.1.1.Final) でのロード バランシングのセットアップに関する一般的な質問を受けました。マスター ノードとスレーブ ノードを使用してクラスター化された JBoss インスタンスをセットアップしようとしています。デモ アプリ ( https://docs.jboss.org/author/display/AS72/AS7+Cluster+Howto ) を使用して証明しています。ロード バランシング/セッション レプリケーション。基本的に、「クラスター構成」セクションの直前までたどりました。
マスター ノードとスレーブ ノードにアプリをデプロイしました。個々の IP に直接アクセスすると、アプリケーションに問題なくアクセスできます。JBoss ログと管理コンソールによると、スレーブはマスターに正常に接続されています。ただし、スレーブのセッションに何かを配置した場合、スレーブをオフラインにすると、マスターはスレーブがセッションに配置したアイテムを読み取ることができません。
これは、一般的なセットアップに関する助けが必要な場所です。負荷分散を行うために、JBoss の前に別の apache httpd インスタンスを配置する必要がありますか? 別のサーバーを必要としないJBossに組み込まれた負荷分散機能があると思いましたか、それとも完全に間違っていますか? Apache が必要ない場合は、JBoss ロード バランシングをセットアップする手順を教えてください。
ありがとう。
grails - Grails 2.4.x のクラスター化されたキャッシュ
入手できる最新バージョンでの Grails のキャッシュ クラスタリングに関する提案が必要です。
Grails 2.4.4 で Terracotta をセットアップしようとしましたが、そのプラグインの互換性のあるバージョンを見つけることができません (ちなみに、Terracotta プラグインのページには、6 年前に最後に更新されたと書かれています)。また、grails のキャッシュ クラスタリングに関する最近の投稿が見つかりません。セッションの複製にも使用する予定です。認証/承認に Apache Shiro を使用しています。しかし、それは問題ではありません。
java - クラスタ化されていない環境でのシリアル化の問題を特定する
JSF-Spring 統合アプリケーションがあります。アプリケーションは、私の非クラスター環境でうまく機能します。アプリケーションをクラスター化された [wildfly 8.0.0] 環境にデプロイすると、シリアライゼーションに関するさまざまな問題に直面します。いくつかの例は、DTO クラスがシリアライズ可能に実装されていなかったこと、私がしたくない Logger クラスをシリアライズしようとしたことなどです。
クラスター化された環境にデプロイされたアプリケーションには、web.xml に< distributable />タグがあるため、ノード間でセッション レプリケーションを試行し、シリアル化できない場合に失敗します。
すべての開発者がこれらの行のガイドラインに従っていない可能性があり、これらのインスタンスの一部が発生します。
したがって、私の質問は、クラスター化されていない環境であるテスト サーバー [wildfly 8.0.0] でこれらすべてのシリアライゼーションの問題を確認するための最良のオプションは何かということです。
より明確にするために、1 つの例外の詳細を追加します。