2009-09-28 56 views
12

Ich bin auf der Suche nach einer Java Distributed Caching-Lösung. Wir möchten, dass Funktionen mag:Distributed Caching

  • Auto-Discovery-Distributed
  • Redundanz
  • Nicht-Zentrale

wir ein Framework wie Terrakotta analysiert haben, die alles zu sein scheint, würden wir jemals wollen von einem Caching-Framework ... Allerdings scheint es eine zentrale Caching-Knoten, die unsere Single-Point-of-Failure benötigt werden.

Irgendwelche Ideen außer dem Ausrollen unserer eigenen Lösung?

+0

Terrakotta hat kein SPOF - Sie können so viele Hot-Backups verwenden, wie Sie möchten, wenn ein aktiver Server stirbt. Mit Terracotta FX können Sie sogar mehrere Wirkstoffe für mehr Maßstab haben. –

Antwort

0

Terracotta bietet auch einen verteilten Cache.

+0

Kommerzielle Version ist es nicht? – cletus

+0

Ich denke nicht, wenn Sie die Terracotta ES Edition verwenden (siehe http://www.terracotta.org/web/display/enterprise/Products). –

4

Terracotta hat kürzlich Ehcache erworben und hat released a tight integration of the Ehcache API with the Terracotta clustered store in einem einfachen Paket und benötigt nur ein paar zusätzliche Zeilen Ehcache-Konfiguration, um von einzelnen Knoten zu Clustered zu gehen, obwohl Sie auch den Terracotta-Server-Prozess ausführen müssen.

Ehcache mit der Terracotta ES Edition ist Open Source und kostenlos zu verwenden. Kommerzielle Lizenzen sind verfügbar, wenn Sie Unterstützung, mehr Skalierung, Schadloshaltung, Patch-Unterstützung usw. wünschen.

Terracotta verwendet einen zentralen Server Array, keinen einzigen zentralen Server, es gibt also keinen Single Point of Failure! Sie können so viele Hot-Backup-Server einrichten, wie Sie möchten, und diese Backup-Server können so konfiguriert werden, dass sie übernehmen, wenn der aktive Server ausfällt. Mit Terracotta FX (kommerzielles Produkt) können Sie auch mehrere aktive Server verwenden.

+0

Das Problem mit TerraCotta ist, dass, um keine einzige Fehlerquelle zu haben, benötigen Sie mindestens 4 Maschinen (oder JVM): - 2 für Ihre App - 2 für TerraCotta Ich hätte lieber 4 JVM für meine App, aber mit In-JVM-Caching-Clustering. –

14

Versuchen Sie Hazelcast. Es ist eine Open-Source-Clustering- und hochskalierbare Datenverteilungsplattform für Java. Es erfüllt alle Ihre Anforderungen. Plus es ist super einfach zu bedienen.

+0

Befürwortet Hazelcast im Falle einer Netzwerkpartition Konsistenz im CAP-Server (https://en.wikipedia.org/wiki/CAP_theorem)? –

1

Normalerweise tritt ein einzelner Fehlerpunkt auf, wenn alle Operationen auf einem einzelnen Knoten ausgeführt werden und wenn dieser Knoten ausfällt, kann die gesamte Operation untergehen. Die Lösung dieses Problems besteht darin, Topologie wie Replikat oder Partitionsreplikat zu verwenden. Wenn der Knoten einmal ausfällt, wird die gesamte Operation auf einen anderen Knoten verschoben, ohne dass irgendwelche Daten verloren gehen.

soweit die Funktionen, die Sie suchen, in einem einzigen Produkt gefunden werden können, NCache, wie Umer auch erwähnt hat.

4

Versuchen Sie Infinispan. Infinispan-Cache kann als verteilter Cache verwendet und auch als replizierter Cache verwendet werden. Es gibt keine Möglichkeit eines Single Point Failure. Im verteilten Cache-Modus kann mehr Platz als die Heap-Größe bereitgestellt werden. Berücksichtigen Sie, dass es 4 Knoten im Cluster mit je 1 GB Heap Size und Infinispan als replizierten Cache gibt, dann hat der Gesamtgröße-Cluster 1 GB, aber wenn Infinispan als verteilter Cache verwendet wird und 2 Kopien pro Datenelement erstellt, beträgt die Gesamtgröße 2 GB.

+0

hmm..gut zu wissen .. –

1

Ich bin spät auf die Party, aber haben Sie versucht, TayzGrid, eine Open Source java distributed cache. Wird auch als In-Memory-Datenraster oder Schlüsselwertspeicher bezeichnet.

Es beantwortet alle Ihre grundlegenden Bedürfnisse

- Distributed 
- Auto-Discovery 
- Redundancy 
- Non-Centralized 

Es verwaltet auch erweiterte Failover-Szenarien wie split brain und plötzlich neu gestartet. Alle Knoten sind intelligent und daher vollständig verteilt.

Sie können auch auswählen, welche Topologie Sie verwenden möchten (Partition oder repliziert). Wenn Sie erweiterte Topologien (Partition of Replica) verwenden möchten, können Sie maybe buy a license.