Memcached-Server: Ist es eine gute Praxis, zwei Server-URLs auf denselben Server zu verweisen?

Memcached-Server: Ist es eine gute Praxis, zwei Server-URLs auf denselben Server zu verweisen?

Ich habe ein System, bei dem von mehreren verschiedenen Dateien und Servern aus Verbindungen zu einem Memcache-Server bestehen.

Ich möchte bei einem Server bleiben, mir aber die Option offen halten, die Anzahl der Memcache-Server zu erhöhen (für Zeiten mit hohem Datenverkehr).

Meine Idee ist, Memcache mitzuteilen, dass es zwei Server gibt, während die beiden URLs (per DNS) auf einen einzigen Server verweisen. Wenn ich in Zukunft möchte, kann ich einen Server hinzufügen und DNS ändern, ohne den Code an vielen Stellen ändern zu müssen.

Ist das eine gute Vorgehensweise? Geht es auf Kosten der Leistung, wenn es zwar zwei Serververbindungen gibt, diese aber beide auf denselben Server verweisen?

Irgendwelche andere Ideen, wie man eine sofortige Erweiterbarkeit der Memcache-Kapazität erreichen kann, ohne den Code ändern und bereitstellen zu müssen?

Antwort1

Dies hängt vom verwendeten Memcached-Client ab und davon, wie dieser bestimmt, ob Schlüssel über mehrere Server hinweg gehasht werden. Sie sollten keine höhere Leistung erwarten, wenn Sie zwei statt einem Server angeben, da ein einzelner Memcached-Server mehr Verbindungen bereitstellt, als Ihr einzelner Webserver (höchstwahrscheinlich) verarbeiten kann. Tatsächlich kann es mehr schaden als nützen, wenn der Client versucht, Schlüssel über zwei verschiedene Server hinweg (die eigentlich gleich sind) zu hashen.

Wenn Sie die Bereitstellung nicht erneut durchführen möchten, würde ich Ihre Server in einer Umgebungsvariable auflisten, die als Konfigurationsoption auf den Server übertragen wird. Beispielsweise ENV['MEMCACHE_SERVERS'] und es einfach serverseitig konfigurieren, ohne die Bereitstellung erneut durchzuführen.

Das Schöne an Memcache ist, dass es weder redundant noch ausfallsicher ist, es ist kein Persistenzspeicher. Es könnte sogar komplett ausfallen und Ihre Site hat einfach nur einen Cache-Treffer von 0 %, aber zumindest funktioniert es noch.

Weitere Informationen zu Redundanz und Failover finden Sie in den FAQ..

verwandte Informationen