2009-05-11 7 views
1

Das klingt vielleicht nach einer dummen oder einfachen Frage, aber ich habe wirklich wenig oder gar keine Erfahrung mit Clustering jeglicher Art und ich bin nur neugierig, ob und wie ein bestimmtes Szenario möglich ist.Wie teilen Sie in einem Tomcat-Cluster Beans in einer Anwendung?

Nehmen wir an, ich habe einen Cluster von N Tomcat-Instanzen eingerichtet, und ich habe meine Anwendung App1 über alle N Instanzen verteilt.

Was müsste ich tun, damit bestimmte Beans in der Anwendung - nicht alle, aber einige - im Cluster "freigegeben" werden?

dh, wenn ich eine Bohne für WebsiteSettings hätte, würde ich gerne einige Nachschlageprozesse haben, wo die Anwendung nach der Bean fragen könnte und eine Instanz davon erhalten würde, und auch alle Aktualisierungen der Eigenschaften/Werte der Bean für alle anderen Maschinen in dem Cluster verfügbar, dh WebsiteSettings.getGreeting() würde den gleichen Wert auf allen N Maschinen zurückgeben, wann immer es aktualisiert wurde.

Muss ich diese Beans als MBeans einrichten und App1 über JMX suchen? Unterstützt Tomcat's Clustering-Unterstützung dann automatisch das Replizieren von Änderungen in der MBean auf alle Knoten im Cluster?

Antwort

1

Eine Option ist die Verwendung eines gemeinsam genutzten verteilten Caches. Es gibt mehrere, die Ihnen diese Funktionalität leicht geben könnten.

+0

Das ist ein interessanter Ansatz, den ich nicht wirklich gedacht hatte, danke. Ich würde immer noch interessiert sein, einige der "traditionellen" Methoden zu kennen, obwohl –

+0

Ich denke, das ist der Standard oder traditionelle Ansatz für Ihr Problem. – Robin

5

Werfen Sie einen Blick auf Terracotta - es ermöglicht Ihnen, das gleiche Objekt (in gewisser Weise) auf vielen Instanzen zu haben, wo alle Updates der anderen Knoten nahtlos in der JVM-Ebene und nicht in Ihrem Code durchgeführt werden.

Sie können einen Blick auf diese für weitere Informationen nehmen wollen - What Is Terracotta