2017-02-03 4 views
0

В настоящее время мое приложение загрузки Spring имеет один сервер redis.Redis Replication и Cluster difference

Теперь, когда я хочу сделать сервер redis высоким доступным, к какому подходу следует следовать?

Например, у меня был бы хозяин, рабы и дозорный, где, если мой хозяин автоматически опустится, новый хозяин получил избранное, а приложение работает нормально. Этот вызов называется репликацией с автоматическим откатом?

С другой стороны как кластер отличается от вышеупомянутого (репликация) установленный. Имеет ли он также поддержку серверов-дознавателей для автоматического переключения при сбое?

И с точки зрения данных, я читаю данные кластеров с разбивкой по нескольким узлам, вместо этого репликация имеет точную копию данных мастера во всех ведомых устройствах. В этом случае , разделяющий данные в нескольких узлах кластера, приведет к устаревшей ситуации с данными, если некоторые узлы упадут на?

ответ

1

Если у вас на компьютере больше данных, чем ОЗУ, используйте redis cluster, чтобы обвести данные на разных машинах. Redis-кластер поддерживает репликацию master-slave и сам отказ и не нуждается в контроле. Если у вас есть сбои с узлом, он будет работать до тех пор, пока большинство основных узлов не сработают.

У меня на компьютере меньше данных, чем ОЗУ, настройте репликацию ведущий/ведомый с дозорным сигналом впереди, чтобы справиться с откатом.

https://redis.io/topics/cluster-tutorial

+0

Но в Redis кластера некоторые мастер-узлы не могут иметь некоторые данные правильно? В этом случае, если запрос запрашивает данные, он выполняет поиск данных во всех мастерах? Если это не приведет к устаревшей ситуации с данными? – Harshana

+1

Когда клиент подключается к узлу кластера и запрашивает данные, узел будет либо отвечать данными, если он есть, либо сообщить клиенту, что другой узел содержит данные. Не должно быть устаревших данных, если что-то не так, см. Https://redis.io/topics/cluster-tutorial#redis-cluster-consistency-guarantees –

+0

Фактически, клиент должен знать, какой узел кластера он попадает. Все клиенты Java делают это так, чтобы клиент выбирал узел, с которым он разговаривает, для чтения или записи определенного ключа. – mp911de

Смежные вопросы