Panoramica del servizio di individuazione automatica

Questa pagina offre una panoramica del servizio di individuazione automatica per Memorystore per Memcached. Per informazioni su come accedere al servizio di individuazione automatica e connetterlo, consulta l'articolo Utilizzo del servizio di individuazione automatica.

Il servizio di individuazione automatica è un modo programmatico per consentire ai client di adattarsi automaticamente all'aggiunta e alla rimozione di indirizzi IP dei nodi che si verificano durante la scalabilità dell'istanza Memcached.

Se non utilizzi il servizio di individuazione automatica, devi gestire manualmente l'elenco di indirizzi IP del nodo nel client memorizzato nella cache durante la scalabilità. La gestione manuale dell'elenco di indirizzi IP dei nodi aggiunge un overhead aggiuntivo, in quanto è necessario assicurarsi che i client vengano aggiornati man mano che l'istanza viene scale up e scale down. La funzionalità di individuazione automatica ti aiuta ad automatizzare il lavoro.

Devi utilizzare l'endpoint di individuazione automatica per lo scopo previsto e non per eseguire comandi Memcached come get, set e delete.

Panoramica dell'architettura del servizio di individuazione automatica

Memorystore for Memcached espone il servizio Auto Discovery utilizzando un endpoint di rilevamento. L'endpoint di rilevamento è un indirizzo IP dedicato per la tua istanza che restituisce un elenco corrente di nodi nell'istanza Memcached. Ogni istanza di Memorystore for Memcached ha un endpoint di individuazione univoco. Una volta creata l'istanza, l'indirizzo IP dell'endpoint di rilevamento non cambia.

Per ottenere le informazioni di individuazione automatica dell'istanza, esegui una query sull'endpoint di individuazione. L'endpoint di rilevamento restituisce le seguenti informazioni:

Campo Descrizione Tipo di dati Esempio
ID versione configurazione ID che incrementa per ogni modifica dell'elenco di nodi Numero intero 9
Elenco nodi Restituisce un elenco di nodi attuali e dei relativi indirizzi IP. Stringa node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port

Memorystore for Memcached espone direttamente l'endpoint di rilevamento, ma la funzionalità di individuazione automatica deve essere disponibile anche nelle librerie client. Esistono due modi per rendere il rilevamento automatico nei tuoi clienti:

  1. Utilizza una libreria client che supporta il rilevamento automatico.

    • Golang con un fork client memorizzato nella cache.
  2. Aggiungi manualmente la logica di individuazione automatica alla libreria client.

Comportamento del servizio di individuazione automatica

Il servizio di individuazione automatica deve essere coerente. Potrebbe verificarsi un ritardo (in ordine di secondi) mentre l'elenco dei nodi di Rilevamento automatico raggiunge la configurazione attuale del cluster dopo un'operazione di scalabilità.

La coerenza finale, oltre alla natura distribuita del servizio, può produrre il seguente comportamento per i client. La logica client deve essere progettata per tenere conto di questo comportamento:

  • Lo stesso client per due query distinte al servizio di individuazione automatica può ricevere due diverse risposte di individuazione automatica dal servizio (mentre il servizio è incoerente). Tuttavia, una delle risposte ha un Configuration version ID più elevato che i client possono utilizzare per gestire le risposte.

  • Due client possono ricevere due diverse risposte di individuazione automatica dal servizio (mentre il servizio è incoerente), ma non hanno modo di trovare quello più recente poiché i clienti non parlano tra loro. In questo stato l'istanza può restituire errori di cache. In questo scenario, i clienti devono attendere che il servizio di individuazione automatica sia coerente.

Passaggi successivi