Redis Sentinela Modelo integrado com sentinela primavera-boot

modelo Redis Sentinela é uma solução de alta disponibilidade fornecidos pelo funcionário, ea configuração é muito simples.

instalação de cluster Redis

Tal como aqui utilizado, Redis-5.0.5, instalado em Redis / mole / Redis directório, para ser a / redis directório nova / mole / dados

O nó mestre é configurado  
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"

Configuração a partir do nó. 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 a partir do nó de configuração
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

instruções de configuração

# Bind 127.0.0.1 comentou esta configuração, de modo que outras máquinas pode conectar Redis
protegidos de modo a proteger o MODO NO fechada, de modo que outras máquinas pode conectar Redis
daemonize modo de fundo início
versão redis-v5 replicaof substituir as instruções slaveof velhos, imaginando Por replicaof substituir slaveof, você pode olhar para estes artigos de fofoca .

Iniciar este três nós rodando sob / soft diretório / Redis

Redis-servidor config / Redis-6379.conf
redis-servidor config / Redis-6380.conf
redis-servidor config / Redis-6381.conf

Abra o cliente nó mestre para ver se a configuração é bem sucedida

Redis-cli -p 6379
informações replicação

Reconfiguração 3 Sentry, conjunto do monitor

Sentinela nó. 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

Sentinela nó 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

Sentinela nó. 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

instruções de configuração
do monitor mymaster 192.168.4.176 6379 2 
    mymaster é o nome do mestre, 192.168.4.176 é mestre ip host. 2 representa a parte de trás do sentinela que tem dois mestre está em baixo, então a linha principal, recomendado para definir sentinel nodes / 2 +. 1
para baixo depois-milissegundos 
    pedidos de ping para o nó não Redis receber uma resposta dentro do tempo especificado, acredita que o nó deve estar fora da linha de montagem
em paralelo sincroniza   
    na implementação de failover, número máximo de novo servidor primário simultânea para sincronizar a partir do nó.

Iniciar Sentinela

Redis-sentinela config / redis-sentinela-26379.conf
redis-sentinela config / redis-sentinela-26380.conf
redis-sentinela config / redis-sentinela-26381.conf

configuração da mola de arranque

introduzindo POM dependente

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

application.properties adicionar duas linhas de configuração

# 使用哨兵模式不能加以下两行配置,其他配置可以加
# 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));
        }

    }

}

Em seguida, matar o exemplo principal (número de porta de Redis 6379) Processo

ps -ef | Redis grep
kill -9 11110

Observe a saída Editor de código console, depois de um curto período de tempo (cerca de 50), o programa para retomar a operação normal

 

Em 6380 e 6381 realiza nó a replicação informações, descobriram que 6381 tornou-se um nó mestre

 

Sob 6380,6381 Ver perfil

configuração CAT / Redis-6380.conf
replicaof 192.168.4.176 6381
replicaof tornar 192.168.4.176 6381, ao invés do início de configuração quando 192.168.4.176 6379

configuração CAT / Redis-6381.conf 
replicaof configuração foi deletada

 

Reiniciar a 6379 neste exemplo redis

Redis-servidor config / Redis-6379.conf

6379 transformado em 6381 a partir de um nó

 

Ele tem uma relativamente pit coisas pai, RedisTemplate separado ler a realizar e escrever, ler e operações de gravação são o nó mestre. Executar o código acima, em três Redis cliente está executando o Monitor descobriu que get único mestre prazo, comando set, a partir do nó executando apenas o comando set.

 

Publicado 51 artigos originais · ganhou elogios 14 · vê 40000 +

Acho que você gosta

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