Esta página apresenta uma vista geral do serviço de deteção automática do Memorystore for Memcached. Para saber como aceder e estabelecer ligação ao serviço de deteção automática, consulte o artigo Usar o serviço de deteção automática.
O serviço de deteção automática é uma forma programática de os clientes se adaptarem automaticamente à adição e remoção de endereços IP de nós que ocorrem quando dimensiona a sua instância do Memcached.
Se não usar o serviço de deteção automática, tem de gerir manualmente a lista de endereços IP dos nós no seu cliente memcached durante o dimensionamento. A gestão manual da lista de endereços IP dos nós adiciona custos gerais adicionais porque tem de garantir que os clientes são atualizados à medida que a instância é dimensionada para cima e para baixo. A descoberta automática ajuda a automatizar este trabalho por si.
Deve usar o ponto final de deteção automática para o fim a que se destina e não para executar comandos Memcached, como get
, set
e delete
.
Vista geral da arquitetura do serviço de deteção automática
O Memorystore for Memcached expõe o serviço de deteção automática através de um ponto final de deteção. O ponto final de deteção é um endereço IP dedicado para a sua instância que devolve uma lista atual de nós na sua instância do Memcached. Cada instância do Memorystore for Memcached tem um ponto final de deteção exclusivo. Depois de criar a instância, o endereço IP do ponto final de deteção não muda.
Para obter as informações de deteção automática da instância, consulte o ponto final de deteção. O endpoint de descoberta devolve as seguintes informações:
Campo | Descrição | Tipo de dados | Exemplo |
---|---|---|---|
ID da versão da configuração | ID que é incrementado para cada alteração da lista de nós | Número inteiro | 9 |
Lista de nós | Devolve uma lista dos nós atuais e os respetivos endereços IP. | String | node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port |
O Memorystore for Memcached expõe diretamente o ponto final de deteção, no entanto, a deteção automática também tem de estar disponível nas suas bibliotecas de cliente. Existem duas formas de ter a deteção automática nos seus clientes:
Use uma biblioteca cliente que suporte a deteção automática.
- Golang memcached client fork.
Adicione manualmente a lógica de deteção automática à sua biblioteca de cliente.
Comportamento do serviço de deteção automática
O serviço de deteção automática é eventualmente consistente. Pode haver um atraso (da ordem dos segundos) enquanto a lista de nós de deteção automática acompanha a configuração atual do cluster após uma operação de escalamento.
A consistência eventual, além da natureza distribuída do serviço, pode produzir o seguinte comportamento para os clientes. A lógica do cliente deve ser concebida para ter em conta este comportamento:
O mesmo cliente em duas consultas separadas ao serviço de descoberta automática pode receber duas respostas de descoberta automática diferentes do serviço (enquanto o serviço for inconsistente). No entanto, uma das respostas tem um
Configuration version ID
mais elevado que os clientes podem usar para processar as respostas.Dois clientes podem receber duas respostas de deteção automática diferentes do serviço (enquanto o serviço é inconsistente), mas não têm forma de saber qual é a mais recente, uma vez que os clientes não comunicam entre si. Neste estado, a instância pode devolver falhas de cache. Neste cenário, os clientes têm de esperar que o serviço de deteção automática se torne consistente.
O que se segue?
- Saiba como usar o serviço de deteção automática.
- Reveja as configurações do Memcached disponíveis.