Infinispan als Memcached Server konfigurieren und nutzen

Infinispan kann im Client-Server Mode mit einem Adapter für das Memcached Text Protokoll konfiguriert werden. Der Adapter ermöglicht es Memcached Clients, mit einem oder mehreren Infinispan Servern zu kommunizieren. Die Infinispan-Server können sowohl standalone (ohne miteinander zu kommunizieren) oder geclustert betrieben werden.

Der Infinispan Server ist dazu wie folgt zu starten:
Ins /bin Verzeichnis der ausgepackte Infinispan Distribution wechseln und startServer.bat oder startServer.sh mit Angabe des Protokolls als Parameter starten.

$ ./bin/startServer.sh -r memcached

Konfiguration

Der obige Aufruf startet den Server auf localhost mit dem Port 11211 im Standalone Mode mit den Default Parametern. Es gibt die Möglichkeit, dem Infinispan Server weitere Konfigurationsparameter zu übergeben, um Teile des Servers zu konfigurieren.
Zu beachten ist, dass das Memcached Protokoll keine Spezifizierung des zu benutzenden Infinispan Cache erlaubt. Aus diesem Grund besteht ein 1-zu-1 Mapping zwischen der Infinispan Memcached Server Instanz und der Infinispan Cache Instanz.

Das Mapping erreicht man, indem man dem Infinispan Memcached Server eine Infinispan Konfigurationsdatei übergibt, die einen Named Cache namens memcachedCache enthält oder den Default Cache anpasst. Der Aufruf sieht dann wie folgt aus:

$ ./bin/startServer.sh -r memcached -c etc/de/oio/cache-config.xml

Vorsicht bei Flush All über den Memcached Adapter

Ein Flush All führt nur zum Leeren der Caches Instanz auf dem Server, auf welchem der Befehl ausgeführt wurde. Dies gilt sowohl in einer Standalone- als auch in einer Clusterumgebung des Infinispan-Servers. In einer Clusterumgebung wird also nicht versucht, die anderen Knoten im Cluster ebenfalls zu flushen. Diese Implementierungsentscheidung wurde bewußt gewählt, um eine Anfragenüberlastung der Datenbank bzw. des gecachten 3rd Party Systems zu vermeiden wenn alle Server leer sind. Der FlushAll use case soll durch dieses Design mit einer Verzögerung auf den Knoten eines Clusters aufgerufen werden können.

Nicht unterstützte Features

Folgende memcached Features werden von der Infinispan basierten Implementierung nicht unterstützt:

  • Individuelle Statistiken
    Die originale memcached Implementierung basiert auf C/C++, während Infinispan auf Java/Scala basiert. Aus diesem Grund sind manche Statistiken nicht unterstützt.
    Nicht unterstützte Statistiken:

    • pid
    • pointer_size
    • rusage_user
    • rusage_system
    • bytes
    • curr_connections
    • total_connections
    • connection_structures
    • auth_cmds
    • auth_errors
    • limit_maxbytes
    • threads
    • conn_yields
    • reclaimed
  • Statistikeinstellungen
  • Einstellungen mit Argumenten Parameter
    Infinispan Memchached Server unterstützt keine Übergabeparameter zu dem stats Command
  • Löschen von Hold Time Parameter
  • Verbosity command
Short URL for this post: https://wp.me/p4nxik-24q
This entry was posted in Java EE, Java Runtimes - VM, Appserver & Cloud and tagged , , , . Bookmark the permalink.

1 Response to Infinispan als Memcached Server konfigurieren und nutzen

  1. Pingback: Infinispan im Client-Server Mode - techscouting through the java news

Leave a Reply