Sobre o serviço Auto Discovery

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 muda.

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:

  1. Use uma biblioteca de cliente compatível com a descoberta automática.

    • Bifurcação do cliente do Golang (em inglês).
  2. 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