Cluster オブジェクト
目次
はじめに
Tomcat クラスタ実装は、セッションレプリケーション、コンテキスト属性レプリケーション、およびクラスタ全体の WAR ファイルデプロイメントを提供します。Cluster
設定はかなり複雑ですが、デフォルト設定はほとんどの場合そのまま使用できます。
Tomcat Cluster 実装は非常に拡張性が高いため、無数のオプションが公開されており、設定が複雑に見えるかもしれませんが、心配しないでください。代わりに、何が起こっているかを非常に細かく制御できます。
セキュリティ
クラスタ実装は、すべてのクラスタ関連のネットワークトラフィックに安全で信頼できるネットワークが使用されるという前提で記述されています。安全でない、信頼できないネットワークでクラスタを実行することは安全ではありません。
Tomcat クラスタで使用するための安全で信頼できるネットワークを提供するための多くのオプションがあります。これらには以下が含まれます
- プライベート LAN
- 仮想プライベートネットワーク (VPN)
- IPSEC
EncryptInterceptor
は、機密性と整合性の保護を提供しますが、信頼できないネットワークで Tomcat クラスタを実行することに関連するすべてのリスク、特に DoS 攻撃から保護するわけではありません。
Engine と Host への配置
<Cluster>
要素は、<Engine>
コンテナまたは <Host>
コンテナのいずれかに配置できます。
Engine に配置すると、Tomcat のすべての仮想ホストでクラスタリングがサポートされ、メッセージングコンポーネントが共有されます。 <Cluster>
を <Engine>
要素内に配置すると、クラスタは各セッションマネージャーのホスト名をマネージャー名に追加するため、同じ名前を持つが 2 つの異なるホスト内にある 2 つのコンテキストを区別できます。
コンテキスト属性のレプリケーション
コンテキスト属性レプリケーションを設定するには、アプリケーションコンテキストに使用されるコンテキスト実装を交換するだけです。
<Context className="org.apache.catalina.ha.context.ReplicatedContext"/>
このコンテキストは Tomcat StandardContext
を拡張しているため、基本実装のすべてのオプションが有効です。
ネストされたコンポーネント
Manager:
セッションマネージャー要素は、このクラスタ実装で使用されるセッションマネージャーの種類を識別します。このマネージャー設定は、通常の <Context>
設定で使用するものと同じです。
デフォルト値は、SimpleTcpCluster
実装と緊密に結合されている org.apache.catalina.ha.session.DeltaManager
です。 org.apache.catalina.ha.session.BackupManager
のような他のマネージャーは、疎結合である可能性があり、データレプリケーションに SimpleTcpCluster
に依存しません。
Channel:
Channel とそのサブコンポーネントはすべて、クラスタグループの IO レイヤーの一部であり、「Tribes」というニックネームが付けられた独自のモジュールです。
ネットワーク層、メッセージング、およびメンバーシップロジックの設定と調整は、チャネルとそのネストされたコンポーネントで行われます。 Apache Tribes について詳しく知ることができます
Valve:
Tomcat Cluster 実装は、Tomcat Valves
を使用して、リクエストがサーブレットコンテナに出入りするタイミングを追跡します。これらのバルブを使用して、いつデータをレプリケートするかをインテリジェントに決定できます。これは常にリクエストの最後です。
Deployer:
Deployer コンポーネントは、Tomcat Farm Deployer です。アプリケーションをクラスタ全体にデプロイおよびアンデプロイできます。
ClusterListener:
ClusterListener は、SimpleTcpCluster
を使用して送受信されたメッセージを追跡するために使用されます。メッセージを追跡する場合は、ここにリスナーを追加するか、チャネルオブジェクトにバルブを追加できます。
属性
SimpleTcpCluster 属性
属性 | 説明 |
---|---|
className |
メインのクラスタクラス。現在、使用可能なのは |
channelSendOptions |
Tribes チャネル送信オプション。デフォルトは
値の一部は次のとおりです さまざまな
これらのオプションは、コンマ区切りの文字列(例:「async、multicast」)として設定することもできます。これは、 |
channelStartOptions |
クラスタで使用される
静的メンバーシップサービス |
heartbeatBackgroundEnabled |
コンテナのバックグラウンドスレッドでチャネルハートビートを呼び出すかどうかを示すフラグ。デフォルト値は false です。このフラグを有効にする場合は、チャネルハートビートスレッドを無効にすることを忘れないでください。 |
notifyLifecycleListenerOnFailure |
すべての ClusterListener がチャネルメッセージを受け入れることができなかった場合に LifecycleListeners に通知するかどうかを示すフラグ。デフォルト値は false です。 |