Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Redis/Jedis brak pojedynczego punktu awarii i automatyczne przełączanie awaryjne

Możesz spróbować Redis Sentinel, aby to osiągnąć:

Redis Sentinel to system zaprojektowany, aby pomóc w zarządzaniu instancjami Redis. Wykonuje następujące trzy zadania:

  • Monitorowanie . Sentinel stale sprawdza, czy instancje master i slave działają zgodnie z oczekiwaniami.

  • Powiadomienie . Sentinel może powiadomić administratora systemu lub inny program komputerowy za pośrednictwem interfejsu API, że coś jest nie tak z jedną z monitorowanych instancji Redis.

  • Automatyczne przełączanie awaryjne . Jeśli urządzenie główne nie działa zgodnie z oczekiwaniami, Sentinel może rozpocząć proces przełączania awaryjnego, w którym urządzenie podrzędne jest promowane do stanu nadrzędnego, pozostałe dodatkowe urządzenia podrzędne są ponownie konfigurowane tak, aby korzystały z nowego urządzenia głównego, a aplikacje korzystające z serwera Redis informują o nowym adresie, który ma być używany podczas łączenia.

... lub użyć zewnętrznego rozwiązania, takiego jak Zookeeper i 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();
    }
});

Zobacz tę prezentację Zookeeper + Redis.

[Aktualizacja] ... lub rozwiązanie w czystej Javie z Jedis + Sentinel to użycie wrappera, który obsługuje zdarzenia Redis Sentinel, zobacz SentinelBasedJedisPoolWrapper.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. HSET, jeśli klucz istnieje

  2. Jak przetestować seler z django na komputerze z systemem Windows

  3. StackExchange TimeoutException podczas próby wstawienia 750 elementów w 2 zestawach w redis

  4. Pracownik python-rq zamyka się automatycznie

  5. Otrzymuję błąd Nie znaleziono klasy „Predis\Client” w Laravel 5.2