Acerca do serviço de descoberta automática

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:

  1. Use uma biblioteca cliente que suporte a deteção automática.

    • Golang memcached client fork.
  2. 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?