2012-04-06 13 views
0

Ich arbeite an einer Anwendung, die bis jetzt auf JBoss AS auf einem einzigen Server ausgeführt wurde. Jetzt ist eine Failover-Anforderung erforderlich, für die wir einen weiteren Server hinzufügen und einen JBoss-Cluster erstellen. Hier ist das Problem:replizierte zwischengespeicherte Daten zwischen mehreren Servern

Bis jetzt verwendete die Anwendung eine Hashmap, um etwa 2 Millionen Datensätze zu speichern, die wir aus der Datenbank abgerufen haben. Nun muss ich diese Daten auf den zweiten Knoten replizieren (möglicherweise werden in Zukunft weitere Knoten hinzugefügt). Die Daten, die wir speichern müssen, werden jetzt eher 5 Millionen Datensätze umfassen.

Ich möchte nur eine Meinung darüber haben, was der beste Ansatz zum Speichern dieser Schlüssel/Werttyp-Daten ist und replizieren Sie es auf allen Serverknoten.

Ich habe überlegt, ob Redis oder Memcached eine geeignete Lösung wäre? Wie wäre es mit JBoss Cache? Ich weiß, dass es verteilter Cache ist und Replikation für alle Knoten im Cluster durchführt.

Hier sind Dinge, die ich bin sehr besorgt über:

  1. Effekt auf die Leistung - Replikationsdaten Netzwerk-Latenz verursachen könnten
  2. Qualität - wollen mit veralteten Daten Auswirkungen auf das Arbeitsgedächtnis zu vermeiden -
  3. einmal Die Daten werden in HashMap/Cache geladen und sollten nicht ablaufen. Es gibt möglicherweise einige Ergänzungen oder Löschungen von Datensätzen, und diese Änderungen müssen auf allen Knoten repliziert werden.
  4. Skalierbarkeit - wie ich bereits erwähnt ... mehr Knoten

Irgendwelche Gedanken auf, diese sind sehr geschätzt hinzugefügt werden könnten.

+0

Replikationskonsistenz! Aaargh! Holen Sie sich ein paar Middlewares :) – PhD

Antwort

1

Da Sie in einer Java-Umgebung arbeiten, würde ich vorschlagen, dass Sie einen Blick auf hazelcast (http://www.hazelcast.com/) werfen. Wir benutzen es um mehrere Portalserver zu synchronisieren und es funktioniert sehr gut!

+0

hi csupnig. Hast du hazelcast mit anderen alternativen Caches wie JBoss Cache verglichen? Was ist der entscheidende Vorteil von hazelcast, für den Sie es verwenden? – sul

+0

Wir haben vorher JCSCache verwendet und beschlossen, auf hazelcast umzusteigen, da es auch das Senden von Nachrichten an andere Serverinstanzen unterstützt, wodurch die Synchronisierungsfunktionen weiter verbessert werden ... – csupnig

Verwandte Themen