Cómo configurar un clúster Redis en Centos 8 - Parte 3

Cómo configurar un clúster Redis en Centos 8 - Parte 3

Racimo de redis es un construido Rehacer característica que admite fragmentos automáticos, replicación y alta disponibilidad que se implementó previamente utilizando Centinela. Está diseñado para dos propósitos principales: uno es dividir automáticamente su conjunto de datos entre múltiples instancias y, en segundo lugar, proporcionar cierto grado de disponibilidad durante las particiones, para continuar las operaciones cuando algunas instancias (especialmente los maestros) fallan o no pueden comunicarse con la mayoría de nodos en el clúster.

Sin embargo, el clúster se detiene para operar en caso de fallas más grandes (E.g cuando la mayoría de las instancias maestras no están disponibles). Además, si un maestro y un esclavo fallan al mismo tiempo, el clúster no puede continuar las operaciones normales (aunque la solución es agregar más nodos o crear una asimetría en el clúster, para cambiar el diseño del clúster).

De acuerdo con la Rehacer Documentación de clúster, la "clúster mínimo"Eso funciona como se espera que requiere contener al menos 3 nodos maestros. Pero la configuración más adecuada para la alta disponibilidad debe tener al menos 6 nodos con tres maestros y tres esclavos, cada maestro tiene un esclavo.

Importante: Redis Cluster también tiene algunas limitaciones que son falta de soporte para Enormes entornos también aquellos en los que las direcciones IP o los puertos TCP se reasignan, por ejemplo, Estibador. Además, no todas las bibliotecas de clientes lo admiten.

Este artículo muestra cómo configurar un Racimo de redis (con Modo de clúster discapacitado) en Centos 8. Incluye cómo instalar redis, configurar los nodos de clúster, crear un clúster y probar la conmutación por error de clúster.

Nota: Para esta guía, usaremos instancias de redis frescas/vacías para ejecutar el modo de clúster. El modo de clúster no funcionará con algunas configuraciones realizadas en las dos primeras guías de nuestra serie Redis, particularmente no funciona cuando se usa la réplica del parámetro.

Prerrequisitos:

  1. Servidores con instalación de CentOS 8

Configuración del entorno de prueba

Redis Master1: 10.42.0.247 Redis Master2: 10.42.0.197 Redis Master3: 10.42.0.132 Redis Slave1: 10.42.0.200 Redis Slave2: 10.42.0.21 Redis Slave3: 10.42.0.34 
Diagrama lógico de Redis Cluster

Nuestra configuración tiene 3 nodos maestros de lectura/escritura y 3 nodos de réplica de solo lectura, cada maestro tiene una réplica, por lo que tres fragmentos contienen todos los datos del clúster en cada nodo. Una aplicación API o CLI El cliente solo puede escribir en los nodos maestros, pero lea desde cualquier nodo en el clúster.

Paso 1: Instalar redis en todos los nodos

1. Inicie sesión en todas las instancias a través de Ssh, Luego ejecute el siguiente comando para instalar el Rehacer módulo usando el administrador de paquetes DNF como se muestra.

# módulo DNF Instalar redis 

2. A continuación, comience el Rehacer Servicio, habilite que comience automáticamente en el arranque del sistema y verifique su estado para verificar que se esté ejecutando (verifique el servicio en las 6 instancias):

# SystemCTL Start Redis # SystemCTL Habilitar Redis # SystemCTL Status Redis 

Paso 2: Configuración de instancias de Redis en todos los nodos

3. Esta sección describe cómo configurar los nodos de clúster redis. Recuerde realizar las configuraciones aquí en todos los nodos.

Utilizar el /etc/redis.confusión archivo de configuración para configurar el Rehacer servidor. Como práctica recomendada, cree una copia de seguridad del archivo original antes de editarlo utilizando un editor de texto de línea de comandos de su elección.

# CP /ETC /REDIS.conf /etc /redis.confusión.Orig # VI /etc /Redis.confusión 

4. A continuación, busque los siguientes parámetros de configuración y edite sus valores como se muestra. El unir El parámetro establece la interfaz del servidor redis escuchará, establecerá su valor en la instancia de LAN IP. Eliminar el 127.0.0.1 Porque nos dimos cuenta de dejarlo allí ralentiza el proceso de creación de clúster, particularmente la etapa de unir el clúster.

unir 10.42.0.247 

Luego establece el modo protegido a No Para permitir conexiones de las otras instancias en el clúster.

Modo protegido NO 

El parámetro del puerto define el puerto en el que el servidor Redis escuchará las conexiones, el valor predeterminado es 6379. Este es el puerto de datos para comunicarse con los clientes.

Puerto 6379 
Establezca la interfaz y el puerto de Redis Listen

5. El siguiente conjunto de parámetros habilitará el modo de clúster y establecerá algunas de sus funciones útiles. El con clúster habilitado parámetro, cuando se establece en , activa el modo de clúster.

clúster 

A continuación, el argumento El parámetro establece el nombre del archivo de configuración del clúster de un nodo de clúster (E.gramo nodos-6379.confusión). El archivo se crea en el directorio de trabajo (el valor predeterminado es /var/lib/redis definido usando el prostituta parámetro) y no es editable del usuario.

Nodos de archivo de clúster-config-6379.confusión 

La siguiente opción de clúster útil es tiempo de nodo de clúster, Se utiliza para establecer la cantidad máxima de tiempo en milisegundos, una instancia no puede estar disponible para que se considere en un estado de falla. Un valor de 15000 es equivalente a 15 segundos.

Tiempo de tiempo de nodo de clúster 15000 
Establecer tiempo de espera del nodo del clúster

6. También necesitamos habilitar la persistencia de Redis en el disco. Podemos usar uno de los modos de persistencia, ese es el Agregar solo archivo (AOF): se registra (en el archivo apendrado.AOF creado en el directorio de trabajo) cada operación de escritura recibida correctamente por el servidor. Los datos se reproducirán durante el inicio del servidor para reconstruir el conjunto de datos original.

Para habilitarlo, configure el apendrado parámetro .

APENDENTY SÍ 
Establecer opciones de persistencia

7. Después de hacer todos los cambios, reinicie el Rehacer servicio en todos los nodos para aplicar los cambios recientes.

# SystemCTL reiniciar Redis 

8. En este punto, cada nodo de clúster ahora debería tener un IDENTIFICACIÓN. Puede verificar esto en el archivo de registro ubicado en /var/log/redis/redis.registro.

# cat/var/log/redis/redis.registro 
Verifique el archivo de registro del nodo del clúster

9. Siguiente, abrir puerto 6397 y 16379 En todas las instancias. La tardia puerto se usa para el bus de clúster (un nodo a nodo Canal de comunicación utilizando un protocolo binario). Este es un requisito básico para las conexiones TCP de Redis Cluster.

# firewall-cmd --zone = public --permanent --add-port = 6379/tcp # firewall-cmd --zone = public --permanent --add-port = 16379/tcp # firewall-cmd 

Paso 3: Creación del clúster Redis

10. Para crear el clúster, use el línea de comandos redis-cli Cliente de la siguiente manera. El --Crear clúster habilita la creación de clúster y --Reglicas de clúster 1 significa crear una réplica por maestro.

Para nuestra configuración que tiene 6 nodos, tendremos 3 maestros y 3 esclavos.

Tenga en cuenta que los primeros 6 nodos serán considerados maestría (METRO) y los próximos tres serán considerados esclavos (S). El primer esclavo que.mi 10.42.0.200: 6379 replica el primer maestro I.mi 10.42.0.247: 6379, El segundo esclavo replica el segundo maestro, en ese orden.

El siguiente comando está formateado de una manera que el resultado represente nuestra configuración lógica anterior.

# Redis-Cli-Cluster Crear 10.42.0.247: 6379 10.42.0.197: 6379 10.42.0.132: 6379 10.42.0.200: 6379 10.42.0.21: 6379 10.42.0.34: 6379-Cluster-Replicas 1 
Crea Redis Cluster

11. Una vez que la creación del clúster sea exitosa, ejecute el siguiente comando en cualquier host (especifique su dirección IP usando el -H bandera) para enumerar todos los nodos de clúster.

# redis -cli -h 10.42.0.247 -P 6379 nodos de clúster 

Debería poder ver todos los nodos de clúster, con los esclavos que indican sus maestros, como se muestra en la siguiente captura de pantalla.

Verifique todos los nodos de clúster en cualquier nodo

Los diferentes campos están en este orden: ID de nodo, dirección IP: puerto, indicadores, último ping enviado, último pong recibido, época de configuración, estado de enlace, ranuras (para maestros).

Paso 4: Prueba de conmutación por error de clúster Redis

12. En esta sección, demostraremos cómo probar una conmutación por error de clúster. Primero, tomemos nota de los maestros.

# redis -cli -h 10.42.0.247 -P 6379 Nodos de clúster | maestro de grep 
Lista de maestros de clúster Redis

Además, tome nota de los esclavos de Redis.

# redis -cli -h 10.42.0.247 -P 6379 Nodos de clúster | esclavo de grep 
Enumere todos los esclavos de Redis Cluster

13. A continuación, detengamos el servicio Redis en uno de los nodos maestros e.gramo 10.42.0.197 y verifique todos los nodos maestros en el clúster.

# SystemCtl Stop Redis # Redis -Cli -H 10.42.0.247 -P 6379 Nodos de clúster | maestro de grep 

De la siguiente captura de pantalla, puede ver que el nodo 10.42.0.197: 6367 está en estado de fallas y su esclavo 10.42.0.21: 6379 ha sido promovido al estado maestro.

Compruebe el estado de conmutación por error de clúster

14. Ahora comencemos el Rehacer servicio una vez más en el nodo fallido y verifique todos los maestros en el clúster.

# SystemCTL Start Redis # Redis -Cli -H 10.42.0.247 -P 6379 Nodos de clúster | maestro de grep 
Verifique todo el estado maestro de clúster redis

Además, verifique los esclavos del clúster para confirmar que el maestro fallido ahora es un esclavo.

# redis -cli -h 10.42.0.247 -P 6379 Nodos de clúster | esclavo de grep 
Verifique todos los esclavos de Redis Cluster

Paso 5: Probar la replicación de datos en el clúster Redis

15. Esta última sección explica cómo verificar la replicación de datos del clúster. Crearemos una clave y un valor en uno de los maestros, luego intentaremos leerla desde todos los nodos del clúster de la siguiente manera. Utilizar el -C Cambie para habilitar el soporte de clúster en la utilidad redis-cli y los datos de acceso en el modo de clúster.

# redis -cli -c -h 10.42.0.247 -P 6379 SET NAME 'TECMINT.com ' # redis -cli -c -h 10.42.0.247 -P 6379 Obtener nombre # Redis -Cli -C -H 10.42.0.21 -P 6379 Get Name # Redis -Cli -C -H 10.42.0.132 -P 6379 Obtener nombre # Redis -Cli -C -H 10.42.0.200 -p 6379 Get Name # Redis -Cli -C -H 10.42.0.197 -p 6379 Get Name # Redis -Cli -C -H 10.42.0.34 -P 6379 Obtener nombre 
Verificar la replicación de datos del clúster Redis

El resultado final es el Racimo de redis ¿Es la forma preferida de obtener fragmentos automáticos, replicación y alta disponibilidad?. Hay muchos otros parámetros de configuración bien documentados en el resto del /etc/redis.confusión Archivo, puede encontrar más información en la documentación oficial: Tutorial de clúster Redis y especificación de clúster Redis.

Esto nos lleva al final de la serie Tutorial Redis de tres partes. El formulario de comentarios a continuación se puede usar para publicar preguntas o comentarios.