Infinispan im Client-Server Mode

Viele Applikationen profitieren bereits von einem lokalen Cache, wie er mit Infinispan im embedded Mode umgesetzt werden kann. Lokaler Cache bedeutet in diesem Szenario, dass die Applikation und der Infinispan Cache in der gleichen Java VM ausgeführt werden. Der embedded Mode von Infinispan zeichnet sich durch eine einfache Konfiguration, einen geringen Resourcenbedarf (sowohl bzgl. Speicher als auch Netzwerk- und CPU-Kapazität) und leichte Integrierbarkeit in bestehende Caching-Architekturen aus:
ClusteredEmbeddedMode

Grob verkürzt kann man Infinispan in dieser Konfiguration als eine clusterfähige ConcurrentHashMap betrachten.

Wann lohnt es sich der Client-Server Mode?

In folgenden Szenarien kann es sinnvoll sein, Infinispan im Client-Server Mode zu betreiben:

  • Der Client ist nicht in Java geschrieben
    Infinispan ist in Java bzw. Scala geschrieben und der Client kann in diesem Fall nicht direkt auf die gecachten Java-Objektinstanzen innerhalb der Infinispan-JVM zugreifen. Hier bietet sich der Client-Server Mode in Kombination mit einem sprachneutralen Protokoll wie z.B. memcached an.
    ClientServerMemcached
  • Gemeinsamer Datenspeicher mehrerer Applikationen
    Wenn verschiedene Java-Applikationen auf die gleichen Daten zugreifen, wird die Synchronisierung dieser Zugriffe bisher häufig über Drittsysteme wie z.B. relationale Datenbanken oder Fileserver umgesetzt. Ein ähnliches Szenario ist z.B. die gemeinsame Nutzung eines Volltextindexes durch mehrere Applikationen bzw. einen Applikationscluster. Durch einen gemeinsamen RAM-Cache dieser Daten können die Zugriffszeiten auf diese Daten optimiert werden. Die Konfiguration von Infinispan im Client-Server Mode kann in diesem Szenario als eine gemeinsame genutzte RAM-Disk betrachtet werden. Besonders elegant an dieser Lösung ist einfache Erweiterbarkeit der Kapazität dieser RAM-Disk zur Laufzeit durch Clustering des Infinispan Servers ohne Eingriff in die Client-Applikationen. Ein anderer positiver Aspekt dieses Infinispan-Modus ist die Möglichkeit, Hardware und JVM der RAM-Disk und der Applikation getrennt zu tunen.
  • Clouddeployments von Anwendungen
    Wenn Infinispan in einer Cloud-Anwendung im embedded Mode benutzt wird, ist bei jedem Neustart eines Anwendungsknotens der Infinispan-Cache mit Distibution oder State Transfer neu zu synchronisieren. Dies führt je nach Datenmenge trotz Cloud-Deployment zu einem Verfügbarkeitsproblem der Anwendung. Die Applikation auf dem neuen Knoten ist erst erreichbar, wenn alle Daten im Knoten angelangt sind.
    Der Client Server Mode bietet sich hier an, da ein Hinzufügen neuer Clientapplikationensknoten keinen State Transfer verursacht. Der Client kann sich sofort mit dem bereits vorhanden Infinispan DataGrid Server beim Startup verbinden.
Short URL for this post: https://wp.me/p4nxik-1MN
This entry was posted in Java EE, Java Persistence, Java Runtimes - VM, Appserver & Cloud and tagged , , . Bookmark the permalink.

1 Response to Infinispan im Client-Server Mode

  1. Pingback: CDI Unterstützung für Infinispan - techscouting through the java news

Leave a Reply