Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis/Jedis kein Single Point of Failure und automatisiertes Failover

Vielleicht möchten Sie Redis Sentinel ausprobieren, um dies zu erreichen:

Redis Sentinel ist ein System, das zur Verwaltung von Redis-Instanzen entwickelt wurde. Es führt die folgenden drei Aufgaben aus:

  • Überwachung . Sentinel überprüft ständig, ob Ihre Master- und Slave-Instanzen wie erwartet funktionieren.

  • Benachrichtigung . Sentinel kann den Systemadministrator oder ein anderes Computerprogramm über eine API benachrichtigen, dass etwas mit einer der überwachten Redis-Instanzen nicht stimmt.

  • Automatisches Failover . Wenn ein Master nicht wie erwartet funktioniert, kann Sentinel einen Failover-Prozess starten, bei dem ein Slave zum Master hochgestuft wird, die anderen zusätzlichen Slaves neu konfiguriert werden, um den neuen Master zu verwenden, und die Anwendungen, die den Redis-Server verwenden, über die neue Adresse informiert werden, die beim Verbinden verwendet werden soll /P>

... oder um eine externe Lösung wie Zookeeper und Jedis_failover zu verwenden:

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();
    }
});

Siehe diese Präsentation von Zookeeper + Redis.

[Aktualisieren] ... oder eine reine Java-Lösung mit Jedis + Sentinel besteht darin, einen Wrapper zu verwenden, der Redis Sentinel-Ereignisse verarbeitet, siehe SentinelBasedJedisPoolWrapper.