Informazioni sul servizio di individuazione automatica

Questa pagina fornisce una panoramica del servizio di individuazione automatica per Memorystore for Memcached. Per scoprire come accedere al servizio di individuazione automatica e connetterti, consulta Utilizzo del servizio di individuazione automatica.

Il servizio di rilevamento automatico è un modo programmatico per consentire ai client di adattarsi automaticamente all'aggiunta e alla rimozione di indirizzi IP dei nodi che si verificano quando scalate l'istanza Memcached.

Se non utilizzi il servizio di rilevamento automatico, devi gestire manualmente l'elenco degli indirizzi IP dei nodi nel client memcached durante lo scaling. La gestione manuale dell'elenco di indirizzi IP dei nodi aggiunge un overhead aggiuntivo perché devi assicurarti che i client vengano aggiornati man mano che l'istanza viene scalata. La scoperta automatica ti aiuta ad automatizzare questo 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 di rilevamento automatico utilizzando un endpoint di rilevamento. L'endpoint di rilevamento è un indirizzo IP dedicato per l'istanza che restituisce un elenco attuale di nodi nell'istanza Memcached. Ogni istanza Memorystore for Memcached ha un endpoint di rilevamento univoco. Una volta creata l'istanza, l'indirizzo IP dell'endpoint di rilevamento non cambia.

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

Campo Descrizione Tipo di dati Esempio
ID versione configurazione ID che viene incrementato per ogni modifica all'elenco dei nodi Numero intero 9
Elenco nodi Restituisce un elenco dei 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 il rilevamento automatico deve essere disponibile anche nelle librerie client. Esistono due modi per attivare l'individuazione automatica nei client:

  1. Utilizza una libreria client che supporti l'individuazione automatica.

    • Golang Fork del client memcached.
  2. Aggiungi manualmente la logica di rilevamento automatico alla libreria client.

Comportamento del servizio di individuazione automatica

Il servizio di rilevamento automatico è coerente nel tempo. Potrebbe verificarsi un ritardo (dell'ordine di secondi) mentre l'elenco dei nodi di rilevamento automatico si aggiorna alla configurazione del cluster corrente dopo un'operazione di scalabilità.

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

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

  • Due client possono ricevere due risposte di rilevamento automatico diverse dal servizio (mentre il servizio è incoerente), ma non hanno modo di scoprire quale sia l'ultima, poiché i client non comunicano tra loro. In questo stato, l'istanza può restituire errori di cache. In questo scenario, i client devono attendere che il servizio di rilevamento automatico diventi coerente.

Passaggi successivi