Diese Seite bietet eine Übersicht über den Auto Discovery-Dienst für Memorystore for Memcached. Informationen zum Zugriff auf und zum Herstellen einer Verbindung zum Auto Discovery-Dienst finden Sie unter Auto Discovery-Dienst verwenden.
Mit dem Auto Discovery-Dienst können Clients automatisch Knoten-IP-Adressen anpassen und entfernen, wenn Sie Ihre Memcached-Instanz skalieren.
Wenn Sie den Auto Discovery-Dienst nicht verwenden, müssen Sie die IP-Adressenliste des Knotens während der Skalierung manuell in Ihrem Memcached-Client verwalten. Die manuelle Verwaltung der Knoten-IP-Adressliste erhöht den Aufwand, da die Clients beim Hoch- und Herunterskalieren der Instanz aktualisiert werden müssen. Mit Auto Discovery lässt sich dieser Vorgang automatisieren.
Sie sollten den Auto Discovery-Endpunkt für den beabsichtigten Zweck verwenden und keine Memcached-Befehle wie get
, set
und delete
ausführen.
Überblick über die Auto Discovery-Dienstarchitektur
Memorystore for Memcached stellt den Auto Discovery-Dienst über einen Discovery-Endpunkt bereit. Der Discovery-Endpunkt ist eine dedizierte IP-Adresse für Ihre Instanz, die eine aktuelle Liste der Knoten in Ihrer Memcached-Instanz zurückgibt. Jede Memorystore for Memcached-Instanz hat einen eindeutigen Discovery-Endpunkt. Nachdem die Instanz erstellt wurde, ändert sich die IP-Adresse des Erkennungsendpunkts nicht mehr.
Fragen Sie den Discovery-Endpunkt ab, um die Auto Discovery-Informationen der Instanz abzurufen. Der Discovery-Endpunkt gibt die folgenden Informationen zurück:
Feld | Beschreibung | Datentyp | Beispiel |
---|---|---|---|
ID der Konfigurationsversion | ID, die sich für jede Änderung der Knotenliste erhöht | Integer | 9 |
Knostenliste | Gibt eine Liste der aktuellen Knoten und ihrer IP-Adressen zurück. | String | node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port |
Memorystore for Memcached stellt den Discovery-Endpunkt direkt bereit. Die automatische Erkennung muss jedoch auch in Ihren Clientbibliotheken verfügbar sein. Es gibt zwei Möglichkeiten, die automatische Erkennung in Ihren Clients zu haben:
Verwenden Sie eine Clientbibliothek, die die automatische Erkennung unterstützt.
- Golang - Memcached-Client-Fork.
Fügen Sie Ihrer Clientbibliothek manuell eine automatische Erkennungslogik hinzu.
Verhalten des Auto Discovery-Dienstes
Der Auto Discovery-Dienst unterliegt der Eventual Consistency. Es kann eine Verzögerung (in der Größenordnung von Sekunden) geben, während die Knotenliste für Auto Discovery nach einem Skalierungsvorgang die aktuelle Clusterkonfiguration aufruft.
Eventual Consistency kann zusätzlich zur verteilten Natur des Dienstes das folgende Verhalten für Clients erzeugen. Die Clientlogik sollte so entwickelt werden, dass sie dieses Verhalten berücksichtigt:
Der gleiche Client für zwei separate Abfragen an den Auto Discovery-Dienst kann zwei verschiedene Auto Discovery-Antworten vom Dienst empfangen (solange der Dienst inkonsistent ist) Eine der Antworten hat jedoch einen höheren
Configuration version ID
, den Clients zum Verarbeiten der Antworten verwenden können.Zwei Clients können zwei verschiedene Auto Discovery-Antworten vom Dienst empfangen (solange der Dienst inkonsistent ist), können jedoch nicht ermitteln, welche das neueste ist, weil Clients nicht miteinander kommunizieren. Solange in diesem Zustand kann die Instanz Cache-Fehler zurückgeben. In diesem Szenario müssen Clients warten, bis der Auto Discovery-Dienst konsistent ist.
Nächste Schritte
- Auto Discovery-Dienst verwenden
- Prüfen Sie die verfügbaren Memcached-Konfigurationen.