Nesta página, você encontra uma visão geral do serviço de descoberta automática do Memorystore para Memcached. Para saber como acessar e se conectar ao serviço de descoberta automática, consulte Como usar o serviço de descoberta automática.
O serviço de descoberta automática é uma maneira programática para que os clientes se adaptem automaticamente à adição e à remoção de endereços IP de nós que ocorrem quando você escalona sua instância do Memcached.
Se você não usar o serviço de descoberta automática, precisará gerenciar manualmente a lista de endereços IP do nó no cliente memcached durante o escalonamento. O gerenciamento manual da lista de endereços IP do nó adiciona sobrecarga porque você precisa garantir que os clientes sejam atualizados à medida que a instância aumenta e diminui. A descoberta automática ajuda a automatizar esse trabalho para você.
Use o endpoint de descoberta automática para a finalidade pretendida e não
para executar comandos do Memcached, como get
, set
e delete
.
Visão geral da arquitetura do serviço de descoberta automática
O Memorystore para Memcached expõe o serviço de descoberta automática usando um endpoint de descoberta. O endpoint de descoberta é um endereço IP dedicado para a instância que retorna uma lista atual de nós na instância do Memcached. Cada instância do Memorystore para Memcached tem um endpoint de descoberta exclusivo. Depois que a instância é criada, o endereço IP do endpoint de descoberta não é alterado.
Para receber as informações de descoberta automática da instância, consulte o endpoint de descoberta. O endpoint de descoberta retorna as seguintes informações:
Campo | Descrição | Tipo de dados | Exemplo |
---|---|---|---|
Código da versão de configuração | Código que aumenta para cada alteração da lista de nós | Inteiro | 9 |
Lista de nós | Retorna uma lista de nós atuais e os respectivos endereços IP. | String | node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port |
O Memorystore para Memcached expõe diretamente o endpoint de descoberta. No entanto, a descoberta automática também precisa estar disponível nas bibliotecas de cliente. Há duas maneiras de ter a descoberta automática nos seus clientes:
Use uma biblioteca de cliente compatível com a descoberta automática.
- Bifurcação do cliente do Golang (em inglês).
Adicione manualmente a lógica de descoberta automática à sua biblioteca de cliente.
Comportamento do serviço de descoberta automática
O serviço de descoberta automática tem consistência eventual. Pode haver um atraso (na ordem de segundos), enquanto a lista de nós da descoberta automática captura a configuração atual do cluster após uma operação de escalonamento.
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 precisa ser projetada para considerar esse comportamento:
O mesmo cliente em duas consultas separadas para o serviço de descoberta automática pode receber duas respostas diferentes da descoberta automática (enquanto o serviço é inconsistente). No entanto, uma das respostas tem um
Configuration version ID
maior que os clientes podem usar para processar as respostas.Dois clientes podem receber duas respostas de descoberta automática diferentes do serviço (enquanto o serviço é inconsistente), mas não têm como descobrir qual é a mais recente, já que os clientes não se comunicam. Enquanto estiver nesse estado, a instância poderá retornar erros de cache. Nesse cenário, os clientes precisam aguardar a consistência do serviço de descoberta automática.
A seguir
- Saiba como usar o serviço de descoberta automática.
- Revise as configurações do Memcached disponíveis.