Was würden Sie empfehlen für eine groß angelegte Java Daten-Grid-Technologie: Terrakotta, GigaSpaces, Kohärenz, etc? [geschlossen]

StackOverflow https://stackoverflow.com/questions/539985

Frage

Ich habe auf so genannte „Data-Grid“ Lösungen für die Java-Plattform, einschließlich Terrakotta, GigaSpaces und Kohärenz zu lesen auf. Ich habe mich gefragt, ob jemand praktische Erfahrungen jedes dieser Werkzeuge hat zu arbeiten und ihre Erfahrungen austauschen können. Ich bin auch sehr gespannt zu wissen, welche Skala Einsatz Menschen mit gearbeitet hat: reden wir 2-4 Knoten-Cluster oder haben Sie mit etwas wesentlich größer ist als das funktionieren

Ich bin zu Terracotta angezogen wegen seiner „Drop in“ Unterstützung für Hibernate und Spring, die wir beide stark nutzen. Ich mag auch die Vorstellung davon, wie es Bytecode auf Konfiguration basiert ziert und Sie nicht gegen eine Programmierung erfordern „Grid-API.“ Ich bin nicht bekannt, dass Vorteile zu Tools, die den Ansatz einer expliziten API verwenden, aber würde gerne über sie hören, wenn sie tatsächlich existieren. :)

Ich habe auch Zeit mit dem Lesen über Memcached verbracht, aber ich bin mehr daran interessiert zu hören Feedback zu diesen drei spezifischen Lösungen. Ich würde gespannt sein, zu hören, wie sie Memcached messen gegen den Fall jemand hat beides verwendet.

War es hilfreich?

Lösung

Wir hatten ein 50 Server eine Webservice-Anwendung ausgeführt und alle diese Server waren Last BigIP ausgeglichen werden. Die Anforderung war jeden Benutzer Zustand zwischenzuspeichern, so dass nachfolgende Staaten tun nicht die gleiche Verarbeitung wieder und die Daten aus vorherigen Zustand erhalten. Auf diese Weise der Client des Webservice nicht brauchen Zustand zu halten.

Wir haben Terracotta die Zustände zwischenzuspeichern und konfrontiert nie Performance-Problem. Zu Spitzenzeiten Anzahl der Anfrage Anwendung wird immer 100 pro Sekunde.

Andere Tipps

Sie möchten überprüfen, auch Hazelcast. Hazelcast ist eine Open-Source-transaktionale, verteilt / partitioniert Umsetzung der Warteschlange, Themas, Karte, Set, Liste, Schlosses und Testamentsvollstrecker Service. Es ist super einfach zu handhaben; nur hazelcast.jar in Ihrem Classpath hinzu und starten Codierung. Fast keine Konfiguration erforderlich ist.

Hazelcast ist unter der Apache-Lizenz und Enterprise-Grade-Unterstützung veröffentlicht ist ebenfalls verfügbar. Code gehostet wird unter Google Code .

Die Bibliothek, die Sie wirklich wählen, hängt von Ihrer Anwendung und was Sie versuchen zu erreichen.

Ich arbeitete für ein Geschäft, dass die Kohärenz verwendet Skalierbarkeit bereitzustellen (und Redundanz, eine Art) für die Web-Anwendungen sind. Wir fanden, dass man etwa 4-5 Knoten haben, müssen zu beginnen, alle Vorteile von Coherence bekommen (2 oder 3 Knoten potentiell Leistung reduziert). Ich glaube, Oracle docs sagen Sie viel brauchen (30+) Knoten, um wirklich einen Vorteil mit Coherence zu bekommen. Wenn Sie mit Coherence gehen Sie sicher, dass Sie Ihre Hardware richtig eingerichtet bekommen - es ist sehr empfindlich auf Latenzzeit.

Ich würde auf jeden persönlich weg von einem „Drop-in“ Sachen. Sie könnten Sie etwas geben, mit zu beginnen, aber Sie werden schließlich in Synchronisation oder Performance-Probleme laufen und beginnen müssen, um Code Schicht spezifisch für Ihr Raster Schreiben sowieso. Im Grunde wissen Sie Ihre App besser als die Bibliothek und in der Lage, um herauszufinden, welche Elemente müssen im Cache sein, wie lange müssen sie leben, wie Sie Ihre App verwendet wird, usw.

Ich habe nicht genug Erfahrung mit diesen Technologien, aber ich denke, Apache Hadoop bewiesen werden skalierbar und zuverlässig. Yahoo lief es auf 10.000 Core Linux-Cluster .

Es basiert auf Google MapReduce Algorithmus.

Diese Artikel beschreibt, MapReduce und warum sollten Sie darum kümmern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top