Redis Sentinel Modelo integrado con centinela de primavera-arranque

Redis modelo Sentinel es una solución de alta disponibilidad proporcionada por el funcionario, y la configuración es muy simple.

instalación del clúster Redis

Como se usa en el presente documento, REDIS-5.0.5, REDIS instalado en / blando / REDIS directorio, para ser el redis nuevo directorio / suave / / datos

El nodo maestro se configura  
vim config / redis-6379.conf

# bind 127.0.0.1 
port 6379
protected-mode no
daemonize yes
pidfile "/var/run/redis_6379.pid"
dir "/soft/redis/data"
dbfilename "dump-6379.rdb"
logfile "log-6379.log"

Configuración desde el nodo. 1
Vim config / Redis-6380.conf

# bind 127.0.0.1
port 6380
protected-mode no
daemonize yes
pidfile "/var/run/redis_6380.pid"
dir "/soft/redis/data"
dbfilename "dump-6380.rdb"
logfile "log-6380.log"

replicaof 192.168.4.176 6379

2 desde el nodo de configuración
vim config / redis-6381.conf

# bind 127.0.0.1
port 6381
protected-mode no
daemonize yes
pidfile "/var/run/redis_6381.pid"
dir "/soft/redis/data"
dbfilename "dump-6381.rdb"
logfile "log-6381.log"

replicaof 192.168.4.176 6379

Las instrucciones de configuración

# Enlazar 127.0.0.1 comentó esta configuración, de modo que otras máquinas pueden conectarse Redis
para proteger el MODO NO en modo protegido cerradas, de modo que otras máquinas pueden conectarse Redis
daemonize iniciar el modo de fondo
versión Redis-v5 replicaof sustituir las antiguas instrucciones slaveof, preguntándose ¿por replicaof reemplazar slaveof, se puede ver en estos artículos de chismes .

Iniciar este tres nodos se ejecuta bajo / soft / ReDiS directorio

Redis-config server / Redis-6379.conf
Redis-config server / Redis-6380.conf
Redis-config server / Redis-6381.conf

Abra el cliente nodo maestro para ver si la configuración es correcta

Redis-CLI -p 6379
información de replicación

Reconfiguración 3 Sentry, racimo de monitor

Sentinel nodo. 1
Vim config / Redis-Sentinel-26379.conf

port 26379
daemonize yes
pidfile "/var/run/redis-sentinel-26379.pid"
dir /tmp
logfile "log-sentinel-26379.log"
sentinel monitor mymaster 192.168.4.176 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

Sentinel nodo 2
Vim config / Redis-Sentinel-26380.conf

port 26380
daemonize yes
pidfile "/var/run/redis-sentinel-26380.pid"
dir /tmp
logfile "log-sentinel-26380.log"
sentinel monitor mymaster 192.168.4.176 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

Sentinel nodo. 3
Vim config / Redis-Sentinel-26381.conf

port 26381
daemonize yes
pidfile "/var/run/redis-sentinel-26381.pid"
dir /tmp
logfile "log-sentinel-26381.log"
sentinel monitor mymaster 192.168.4.176 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

Las instrucciones de configuración
del monitor mymaster 192.168.4.176 6379 2 
    mymaster es el nombre del maestro, es 192.168.4.176 principal IP del host. 2 representa la parte posterior del centinela que tiene dos principal es hacia abajo, entonces la línea principal, se recomienda a los nodos conjunto sentinel / 2 +. 1
hacia abajo-después de milisegundos 
    solicitudes ping para el nodo no REDIS recibe una respuesta dentro del tiempo especificado, cree que el nodo debe ser la línea de montaje
en paralelo se sincroniza   
    en la aplicación de conmutación por error, número máximo de nuevo servidor primario simultánea para sincronizar desde el nodo.

Inicio Sentinel

redis-centinela config / redis-centinela-26379.conf
redis-centinela config / redis-centinela-26380.conf
redis-centinela config / redis-centinela-26381.conf

configuración del resorte-boot

introducir pom.xml dependiente

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

application.properties añaden dos líneas de configuración

# 使用哨兵模式不能加以下两行配置,其他配置可以加
# spring.redis.host=192.168.4.176
# spring.redis.port=6379

spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=192.168.4.176:26379, 192.168.4.176:26380, 192.168.4.176:26381
写一个测试类运行
@RunWith(SpringRunner.class)
@SpringBootTest
public class Sentinel001 {

    @Autowired
    RedisTemplate redisTemplate;

    @Test
    public void test001() throws Exception{
        while (true){
            String key = "time:" + new Date().getTime();
            redisTemplate.opsForValue().set(key, new Date().getTime());
            TimeUnit.MILLISECONDS.sleep(100L);
            System.out.println(redisTemplate.opsForValue().get(key));
        }

    }

}

Luego matar a la instancia principal (número de puerto 6379 de Redis) Proceso

ps -ef | grep Redis
kill -9 11110

Observe la salida de la consola Editor de código, después de un breve periodo de tiempo (alrededor de 50), el programa para reanudar el funcionamiento normal

 

En 6380 y 6381 realiza la replicación del nodo información, encontró que el 6381 se convirtió en un nodo maestro

 

Bajo 6380,6381 Ver perfil

config CAT / Redis-6380.conf
replicaof 192.168.4.176 6381
replicaof convertido 192.168.4.176 6381, en lugar de comienzo de configuración cuando 192.168.4.176 6379

config CAT / Redis-6381.conf 
replicaof configuración ha sido borrada

 

Restart en 6379 este ejemplo redis

Redis-config server / Redis-6379.conf

6379 se convirtió en 6381 a partir de un nodo

 

Tiene cosas relativamente padre de pozo, RedisTemplate separados de lectura no realizada y escribir, leer y operaciones de escritura son el nodo maestro. Ejecutar el código anterior, en tres Redis cliente está ejecutando Monitor encontró que get única carrera principal, conjunto de comandos, desde el nodo que ejecuta sólo el comando set.

 

Publicado 51 artículos originales · elogios ganado 14 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u010606397/article/details/94445132
Recomendado
Clasificación