2016-07-16 5 views
0

ハローキャストキャッシングを使用する2ノードのtomcatクラスタにサーブレットをデプロイします。設定は次のとおりです。ヘビキャストキャッシングを使用するTomcatサーブレット

  • 2つのVMです。それぞれtomcat7の設定で動作します。
  • 各VM上でヘイルキャストをインスタンス化するJavaプログラム。 Tomcatコンテキストとは独立して2つのVM間で分散キャッシュが作成されます。

サーブレットはヘビキャストクライアント接続を作成し、ヘレスキャストでIMAPにアクセスします。

私はいくつかのフォーラムで、tomcatのcontextInitialized()関数でヘイルキャストをインスタンス化すると述べました。したがって、tomcatコンテキストが開始されるたびに、ヘイルキャストが開始されます。風雲のコンテキストが破壊され、ヘーゼルキャスティングも破壊されます。

contextInitialized()関数でヘビキャストをインスタンス化すると、tomcat-hazelcastの統合にもっと効率的で適切かどうか疑いがありますか?あるいは、現在のjavaプログラムを使用してtomcatコンテキストのライフサイクルとは独立したヘイルキャストを作成するのであれば、実際にはそれほど違いはありませんか?

私は現在、複数のユーザーがSerlvet Webページにアクセスするときにサーブレットの応答時間が長いという問題に直面しています。私はまた、IMAPロックを使用して、適切な並行処理を確認します。だから、より良いパフォーマンスのために調整する方法を知りたい。アドバイスをいただければ幸いです。

ありがとうございます! Ryan

答えて

0

私は、HazelcastクライアントのNearCache機能を利用して、TomcatからHazelcastノードを切り離すことができます。

Hazelcastクラスタ:IMAPの設定と セットアップHazelcastクラスタおよびキャッシュ対象とセグメントとのIMAPをロードするの世話をする必要がありMapStoreを実装します。また、キャッシュをリフレッシュするためにイベントハンドラを使用します。

Tomcatサーブレットレイヤー:各Tomcatサーバー上でHazelcastクライアントを起動し、それらのクライアントでNearCacheを有効にします。 Hazelcastクライアントが起動すると、NearCacheの設定でその内容がクラスタから同期されます。両方のTomcatインスタンスは、キャッシュの内容で最新のものになります。を覚えて

もの:

  1. HZクラスタ内のノードの数は、キャッシュのサイズによって異なります。 GCオーバーヘッドを回避し、必要な数のノードをスピンアップさせるために、最大ヒープサイズを約4GBに保つことが推奨されています。
  2. NearCacheはTomcatコンテナ自体の一部であるため、Tomcatを起動するときに適切なヒープサイズを割り当てます。
  3. 同期中にクラスタとTomcatコンテナ間でデータ転送が行われるため、マップの内容を適切に分割し、I/Oの問題を避けるためにサイズを小さくしてください。

これがあなたのアーキテクチャに適しているかどうか教えてください。

関連する問題