В настоящее время мое приложение загрузки Spring имеет один сервер redis.Redis Replication и Cluster difference
Теперь, когда я хочу сделать сервер redis высоким доступным, к какому подходу следует следовать?
Например, у меня был бы хозяин, рабы и дозорный, где, если мой хозяин автоматически опустится, новый хозяин получил избранное, а приложение работает нормально. Этот вызов называется репликацией с автоматическим откатом?
С другой стороны как кластер отличается от вышеупомянутого (репликация) установленный. Имеет ли он также поддержку серверов-дознавателей для автоматического переключения при сбое?
И с точки зрения данных, я читаю данные кластеров с разбивкой по нескольким узлам, вместо этого репликация имеет точную копию данных мастера во всех ведомых устройствах. В этом случае , разделяющий данные в нескольких узлах кластера, приведет к устаревшей ситуации с данными, если некоторые узлы упадут на?
Но в Redis кластера некоторые мастер-узлы не могут иметь некоторые данные правильно? В этом случае, если запрос запрашивает данные, он выполняет поиск данных во всех мастерах? Если это не приведет к устаревшей ситуации с данными? – Harshana
Когда клиент подключается к узлу кластера и запрашивает данные, узел будет либо отвечать данными, если он есть, либо сообщить клиенту, что другой узел содержит данные. Не должно быть устаревших данных, если что-то не так, см. Https://redis.io/topics/cluster-tutorial#redis-cluster-consistency-guarantees –
Фактически, клиент должен знать, какой узел кластера он попадает. Все клиенты Java делают это так, чтобы клиент выбирал узел, с которым он разговаривает, для чтения или записи определенного ключа. – mp911de