1

現在、同じ Web アプリケーションが 4 つの異なる Tomcat インスタンスにデプロイされており、それぞれが独立したマシンで実行されています。ロード バランサーは、これらのサーバーに要求を分散します。私たちの Web アプリケーションは、データベース呼び出しを行い、キャッシュ (キーと値のペア) を維持します。すべての tomcat インスタンスは、同じデータ ソース (別のサーバー) から同じデータ (XML) を読み取り、それをクライアントに提供します。将来的には、リクエストからいくつかの使用状況データを収集し、処理してデータベースに保存する予定です。この機能は、すべての tomcat サーバー間で共通 (1 つのモジュール) である必要があります。

現在、Tomcat クラスタリングの使用を考えています。私はいくつかの調査を行いましたが、データフェッチ操作を分離する方法、つまり、同じデータソース (別のサーバー) 部分から同じデータ (XML) を読み取る方法を理解できません。そのため、1 つのサーバーがサーバーからデータをフェッチすると、それが維持され (キャッシュにある場合があります)、同じデータを他のサーバーが使用してクライアントにサービスを提供できます。現在、この機能は分散キャッシュを使用して実装できます。しかし、他のすべての tomcat インスタンスで共通にすることができる他のモジュールがあります。

基本的に、Tomcat クラスタリングを使用する利点はありますか? はいの場合、すべての tomcat サーバーに共通のモジュールを実装するにはどうすればよいですか。

4

1 に答える 1

0

Tomcat構成リファレンスクラスタリング ガイドをお読みください。利用可能なクラスタリング機能は次のとおりです。

Tomcat クラスターの実装は、セッションの複製、コンテキスト属性の複製、およびクラスター全体の WAR ファイルの展開を提供します。

したがって、クラスタリングにより、次のことが得られます。

  • 高可用性: 1 つのノードに障害が発生した場合、データへのアクセスを失うことなく、別のノードが引き継ぐことができます。たとえば、ユーザーがエラーに気付かずに HTTP セッションを処理できます。
  • ファーム展開: .war を単一のノードに展開でき、残りは自動的に同期されます。

コストは主にパフォーマンスにあります。

  • レプリケーションは、ノード間のオブジェクトのシリアル化を意味します。これは場合によっては望ましくない場合もありますが、微調整することもできます。

ノード間で何らかの状態を共有するだけの場合は、クラスタリングはまったく必要ありません (コンテキストまたはセッションのレプリケーションを使用する場合を除きます)。データベースや ehcache などの分散キャッシュ モデル (またはその他のもの) を使用するだけです。

于 2013-03-21T17:36:06.180 に答える