sql >> Base de Datos >  >> NoSQL >> Redis

Redis/Jedis sin punto único de falla y conmutación por error automatizada

Es posible que desee probar Redis Sentinel para lograrlo:

Redis Sentinel es un sistema diseñado para ayudar a administrar instancias de Redis. Realiza las siguientes tres tareas:

  • Supervisión . Sentinel verifica constantemente si sus instancias maestra y esclava funcionan como se espera.

  • Notificación . Sentinel puede notificar al administrador del sistema, o a otro programa informático, a través de una API, que algo anda mal con una de las instancias de Redis monitoreadas.

  • Conmutación por error automática . Si un maestro no funciona como se esperaba, Sentinel puede iniciar un proceso de conmutación por error donde un esclavo se convierte en maestro, los otros esclavos adicionales se reconfiguran para usar el nuevo maestro y las aplicaciones que usan el servidor Redis informan sobre la nueva dirección que se usará al conectarse.

... o usar una solución externa como Zookeeper y Jedis_failover:

JedisPool pool = new JedisPoolBuilder()
    .withFailoverConfiguration(
        "localhost:2838", // ZooKeeper cluster URL
        Arrays.asList( // List of redis servers
            new HostConfiguration("localhost", 7000), 
            new HostConfiguration("localhost", 7001))) 
    .build();

pool.withJedis(new JedisFunction() {
    @Override
    public void execute(final JedisActions jedis) throws Exception {
        jedis.ping();
    }
});

Vea esta presentación de Zookeeper + Redis.

[Actualizar] ... o una solución Java pura con Jedis + Sentinel es usar un contenedor que maneje los eventos de Redis Sentinel, consulte SentinelBasedJedisPoolWrapper.