2009-05-11 17 views
1

これはダムや簡単な質問のように聞こえるかもしれませんが、実際にはあらゆる種類のクラスタリングに関する経験はほとんどありません。Tomcatクラスタでは、アプリケーションでBeanを共有する方法は?

たとえば、N個のTomcatインスタンスのクラスタを設定し、すべてのN個のインスタンスにアプリケーションApp1をデプロイしました。

アプリケーション内にある特定のBeanを持つことができないようにするには、何をする必要がありますか?

つまり、私がWebsiteSettingsのBeanを持っていたら、アプリケーションがBeanを要求してインスタンスを与えられるようなルックアップ処理をしたいと思います。また、Beanのプロパティ/値の更新もつまり、WebsiteSettings.getGreeting()は、更新されるたびにN台のすべてのマシンで同じ値を返します。

これらのBeanをMBeanとして設定し、App1をJMX経由で検索する必要がありますか? Tomcatのクラスタリングサポートは、MBeanの変更をクラスタ内のすべてのノードに自動的に複製しますか?

答えて

1

1つのオプションは、共有分散キャッシュを使用することです。この機能を簡単に利用できるいくつかの機能があります。

+0

これは、私は本当に感謝、と考えていなかった興味深いアプローチです。私はまだ、より伝統的な方法のいくつかを知りたいと思っていますが、 –

+0

私はこれがあなたの問題に対する標準的な伝統的なアプローチだと思います。 – Robin

5

Terracottaを見てください。他のノードのすべてのアップデートがコード内ではなくJVMレベルでシームレスに実行される、同じオブジェクトを多くのインスタンスに置くことができます。

あなたは、詳細については、このを見てみたいこと - What Is Terracotta

関連する問題