Descripción general del servicio de descubrimiento automático

En esta página, se proporciona una descripción general del servicio de descubrimiento automático de Memorystore para Memcached. Para obtener información sobre cómo acceder al servicio de descubrimiento automático y conectarse a él, consulta Cómo usar el servicio de descubrimiento automático.

El servicio de descubrimiento automático es una manera programática para que los clientes se adapten automáticamente a la adición y eliminación de direcciones IP del nodo que se produce cuando escalas tu instancia de Memcached.

Si no usas el servicio de descubrimiento automático, debes administrar de forma manual la lista de direcciones IP del nodo en tu cliente de Memcached durante el escalamiento. Administrar manualmente la lista de direcciones IP del nodo agrega sobrecarga adicional porque debes asegurarte de que los clientes se actualicen a medida que la escala de la instancia aumenta y disminuye. El descubrimiento automático ayuda a automatizar este trabajo por ti.

Debes usar el extremo de descubrimiento automático para su propósito previsto y no ejecutar comandos de Memcached como get, set y delete.

Descripción general de la arquitectura del servicio de descubrimiento automático

Memorystore para Memcached expone el servicio de descubrimiento automático mediante un extremo de descubrimiento. El extremo de descubrimiento es una dirección IP dedicada para tu instancia que muestra una lista actualizada de los nodos en tu instancia de Memcached. Cada instancia de Memorystore para Memcached tiene un extremo de descubrimiento único.

Para obtener la información de detección automática de la instancia, consulta el extremo de descubrimiento. El extremo de descubrimiento muestra la siguiente información:

Campo Descripción Tipo de datos Ejemplo
ID de la versión de configuración ID que aumenta por cada cambio en la lista de nodos Entero 9
NodeList Muestra una lista de los nodos actuales y sus direcciones IP. String node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port

En Memorystore para Memcached, se expone directamente el extremo de descubrimiento. Sin embargo, el descubrimiento automático también debe estar disponible en tus bibliotecas cliente. Existen dos formas de realizar la detección automática en tus clientes:

  1. Usa una biblioteca cliente que admita el descubrimiento automático.

    • Bifurca el cliente de Memcached de Golang.
  2. Agrega la lógica de descubrimiento automático a tu biblioteca cliente de forma manual.

Comportamiento del servicio de descubrimiento automático.

El servicio de descubrimiento automático tiene coherencia eventual. Puede haber una demora (en cuestión de segundos) mientras la lista de nodos de descubrimiento automático se pone al día con la configuración actual del clúster después de una operación de escalamiento.

La coherencia eventual, además de la naturaleza distribuida del servicio, puede producir el siguiente comportamiento para los clientes. La lógica del cliente debe diseñarse para justificar este comportamiento:

  • El mismo cliente en dos consultas separadas para el servicio de descubrimiento automático puede recibir dos respuestas de descubrimiento automático diferentes (mientras el servicio sea incoherente). Sin embargo, una de las respuestas tiene una Configuration version ID más alta que los clientes pueden usar para manejar las respuestas.

  • Dos clientes pueden recibir dos respuestas diferentes de descubrimiento automático del servicio (mientras el servicio es incoherente), pero no tienen una forma de determinar cuál es la más reciente, ya que los clientes no se comunican entre sí. En este estado, la instancia puede mostrar errores de caché. En esta situación, los clientes deben esperar a que el servicio de descubrimiento automático sea coherente.

¿Qué sigue?