Instalación e implementación del modo centinela de Redis

Instalación e implementación del modo centinela de Redis

¿Qué es un centinela?

Sentinel es en realidad un programa de servidor redis. También ejecuta la función serverCron regularmente, pero no es utilizado por otros programas. Utiliza la supervisión de los nodos redis ordinarios y el módulo de conmutación por error.

Cuando se inicializa Sentinel, borrará la tabla de comandos original y escribirá sus propios comandos únicos en ella. Por lo tanto, los comandos de lectura y escritura de datos admitidos por los nodos redis ordinarios no se encuentran para Sentinel porque no inicializa estos comandos en absoluto. actuadores.

Sentinel ejecutará periódicamente el comando de información en el maestro que supervisa para obtener la última relación maestro-esclavo. También enviará periódicamente un comando de detección de latidos de ping a todos los nodos de Redis. Si detecta que un maestro no puede responder, lo enviará a el otro Sentinel envía un mensaje, pensando subjetivamente que el maestro está inactivo. Si el grupo Sentinel está de acuerdo en que el número de maestros fuera de línea alcanza un cierto valor, entonces todos aceptan desconectarse.

Lo que se debe hacer antes de desconectarse es encontrar uno de los clústeres de Sentinel para realizar la operación fuera de línea. Este paso se llama elección de líder. Después de la elección, se seleccionará uno adecuado de todos los nodos esclavos del maestro como el nuevo maestro y deje que los otros esclavos se resincronicen con el nuevo maestro.

De hecho, arriba presentamos brevemente qué es Sentinel y qué hace en esencia. Más adelante, profundizaremos en los detalles de la implementación junto con el código fuente. Aquí miramos nuevamente, cómo configurar e iniciar un monitoreo de Sentinel. (Se recomienda que el entorno de producción configure más de tres

Configuración del modo centinela

  1. Prepare tres máquinas o tres instancias de redis
hadoop001 hadoop002 hadoop3 分别安装 redis

hadoop001:192.168.52.50
hadoop002:192.168.52.52
hadoop003:192.168.52.53

Establezca hadoop001 como nodo maestro, hadoop002 como nodo esclavo y hadoop003 como nodo centinela

  1. Edite el archivo de configuración del nodo maestro: cp redis.conf master.conf
daemonize yes  #设置redis在后台启动
port 16379
slave-read-only no
protected-mode no
  1. Edite el archivo de configuración del nodo esclavo: cp redis.conf slave.conf
daemonize yes  # 设置redis在后台启动)
port 26379
slaveof 192.168.52.50 16379
slave-read-only no
protected-mode no
  1. El archivo de configuración de edición del nodo centinela: sentinel.conf
protected-mode no
daemonize yes  # 设置redis在后台启动)
port 26380
sentinel monitor master1 192.168.52.50 16379 1
sentinel down-after-milliseconds master1 5000
sentinel failover-timeout master1 900000
sentinel parallel-syncs master1 1
  1. Otra información de elementos de configuración puede ser modificada por usted mismo o por el usuario predeterminado.
protected-mode no                                    (关闭保护模式)

port 6379                    
daemonize yes                                        (设置redis在后台启动)

pidfile /var/run/redis_6379.pid              
logfile "/opt/module/redis/6379/logs/redis_6379.log"  (设置日志文件的存放位置) 

dbfilename dump_6379.rdb                       		 (设置dump文件名)
dir "/opt/module/redis/6379"                         (设置dump文件和nodes文件的存放位置)               

masterauth bigdata                                    (设置集群节点间访问密码,跟上面一致)
requirepass bigdata                                   (设置redis访问密码)

Inicie el servicio redis

  1. Iniciar Master
redis-server master.conf
  1. Iniciar esclavo
redis-server slave.conf 
  1. Iniciar Sentineld
redis-sentinel sentinel.conf

4. Conéctese al cliente de redis para ver la información de configuración.

redis-cli -p 16379

[root@redis01 src]# redis-cli -p 16379
127.0.0.1:16379> INFO replication
# Replication
role:master   ---------------------> 角色为master
connected_slaves:1   ---------------------> slave 连接数为1
slave0:ip=172.31.17.229,port=26379,state=online,offset=183125,lag=0
master_replid:a7e8d31a7cca92f659dc1af9d6556e2d039588b8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:183125
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:183125
[root@redis02 redis-sentinel]# redis-cli -p 26379
127.0.0.1:26379> INFO replication
# Replication
role:slave   ---------------------> 角色为slave
master_host:172.31.31.130
master_port:16379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:185981
slave_priority:100
slave_read_only:0
connected_slaves:0
master_replid:a7e8d31a7cca92f659dc1af9d6556e2d039588b8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:185981
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:71
repl_backlog_histlen:185911

Test Redis está disponible

Establezca el valor en el nodo maestro y luego verifique si se puede sincronizar en el nodo esclavo

127.0.0.1:16379[1]> set test6 666

127.0.0.1:16379[1]> keys *
1) "test6"
2) "test5"
3) "test1"
4) "test3"
127.0.0.1:26379[1]> keys *
1) "test1"
2) "test5"
3) "test3"
4) "test6"

127.0.0.1:26379[1]> get test6
"666"

Supongo que te gusta

Origin blog.csdn.net/qq_43081842/article/details/114290215
Recomendado
Clasificación