2

クラスタリング用に Tomcat 7 で Liferay を構成しています。Webで検索したところ、いくつかの指示が見つかりました。それらすべてを読んで、いくつかの疑問が生じました。誰かが私を助けてくれれば幸いです。

A. server.xml の「${CATALINA_HOME}/conf」に次の行を挿入すると、Tomcat のドキュメント (リンク)に記載されているように、Tomcat がデフォルト値で構成されます。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

重要なデフォルト値の一部を次に示します。

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 環境では、ほとんどのシステム カーネルがマルチキャスト アドレスを処理できます。ただし、カーネル ルーティング テーブルにルート エントリを追加する必要があります。

sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

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. この構成は必須ですか? この属性を持っていて、持っていないことの結果は何ですか?

前もって感謝します。

4

1 に答える 1

1

A.) ボードキャストされた IP アドレスはクラスタ ノードの IP アドレスであり、マルチキャスト アドレスではありません。udp パッケージにはこの ip が含まれ、このパッケージを送信した受信者に通知されます。送信者の ip. localhost/127.0.0.1 に設定されている場合、受信者は自分自身を呼び出すため、送信者を呼び出すことができません。

B.) そのようなルートを追加する必要はありませんでした。申し訳ありませんが、わかりません。それなしで試してみます。

C.) セッションを処理するため、「メイン」の Liferay アプリのみが配布可能フラグを必要とします。

D.) web.xml にフラグを追加すると、同じことが行われます。context 要素で、特定のサーバーのこのプロパティを上書きできます。フラグが設定されている場合、アプリはセッション レプリケーションに参加します。つまり、バランサーのスティッキー セッション フラグが false に設定されている場合、クライアントは継続的にリダイレクトされ、すべてのノードで新しいセッションが作成されます。設定すると、それらもリダイレクトされますが、最初のセッションは維持されます。

于 2014-07-04T08:41:00.020 に答える