Questa pagina fornisce una panoramica del servizio di individuazione automatica per Memorystore for Memcached. Per scoprire come accedere e connetterti al servizio di individuazione automatica, 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 degli indirizzi IP dei nodi che si verificano quando esegui la scalabilità dell'istanza Memcached.
Se non utilizzi il servizio di rilevamento automatico, devi gestire manualmente l'elenco di indirizzi IP dei nodi nel client memcached durante l'aumento di scalabilità. La gestione manuale dell'elenco di indirizzi IP dei nodi comporta un overhead aggiuntivo perché devi assicurarti che i client vengano aggiornati man mano che l'istanza aumenta e diminuisce di dimensioni. L'individuazione 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 individuazione automatica utilizzando un endpoint di individuazione. L'endpoint di rilevamento è un indirizzo IP dedicato per l'istanza che restituisce un elenco corrente dei nodi nell'istanza Memcached. Ogni istanza di 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 sul 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 aumenta per ogni modifica dell'elenco di 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 discovery, ma la scoperta automatica deve essere disponibile anche nelle librerie client. Esistono due modi per attivare la scoperta automatica nei tuoi client:
Utilizza una libreria client che supporta l'individuazione automatica.
- Golang fork del client memcached.
Aggiungi manualmente la logica di rilevamento automatico alla libreria client.
Comportamento del servizio di individuazione automatica
Il servizio di individuazione automatica è a coerenza finale. Può verificarsi un ritardo (dell'ordine di alcuni secondi) mentre l'elenco dei nodi di rilevamento automatico si aggiorna alla configurazione corrente del cluster dopo un'operazione di scalabilità.
La coerenza eventuale, oltre alla natura distribuita del servizio, può produrre il seguente comportamento per i client. La logica del client deve essere progettata in modo da tenere conto di questo comportamento:
Lo stesso client su due query separate al servizio di individuazione automatica può ricevere due risposte diverse dal servizio (se il servizio è incoerente). Tuttavia, una delle risposte ha un valore
Configuration version ID
più alto che i client possono utilizzare per gestirle.Due client possono ricevere due risposte diverse dal servizio di rilevamento automatico (se il servizio non è coerente), ma non hanno modo di capire quale sia la più recente perché i client non comunicano tra loro. In questo stato, l'istanza può restituire mancate corrispondenze nella cache. In questo caso, i clienti devono attendere che il servizio di individuazione automatica diventi coerente.
Passaggi successivi
- Scopri come utilizzare il servizio di individuazione automatica.
- Esamina le configurazioni di Memcached disponibili.