Ограничения и риски
Содержание
В настоящее время поддерживаются только IP-адреса подключенияПредоставленный адрес ссылки исходного экземпляра должен быть высокодоступнымВ настоящее время поддерживается только Redis 6.0, другие версии не поддерживают включение аварийного восстановленияПосле включения аварийного восстановления в экземпляре Redis его нельзя отключитьВключение аварийного восстановления увеличивает нагрузку на хранилище. Рекомендуется использовать локальный SSD в качестве хранилищаДля экземпляров аварийного восстановления рекомендуется использовать шаблон параметров RDBДля построения сети аварийного восстановления экземпляры Redis на обоих концах должны иметь одинаковую архитектуруОдин экземпляр Redis с аварийным восстановлением в роли источника может иметь не более 15 целевых экземпляровСледующие команды записи Redis 6.0 в настоящее время не поддерживают аварийное восстановлениеПосле сбоя источника первым делом необходимо отключиться от источникаВ настоящее время поддерживаются только IP-адреса подключения
При подключении целевого экземпляра поддерживаются только подключения в формате <ip:port>, доменные имена в настоящее время не поддерживаются.
Предоставленный адрес ссылки исходного экземпляра должен быть высокодоступным
Сам адрес Proxy для аварийного восстановления не является высокодоступным. Если вы открываете исходный Proxy через NodePort, разместите его за фронтенд-балансировщиком нагрузки для обеспечения HA; альтернативно, используйте MetalLB для предоставления высокодоступного виртуального IP для Proxy.
В настоящее время поддерживается только Redis 6.0, другие версии не поддерживают включение аварийного восстановления
Функция аварийного восстановления поддерживается только экземплярами Redis 6.0, поддержка Redis 7.2 находится в разработке; после включения аварийного восстановления в Redis 6.0 обновление до Redis 7.2 не поддерживается.
После включения аварийного восстановления в экземпляре Redis его нельзя отключить
После включения модуля аварийного восстановления Redis в файл постоянного хранения RDB будут записаны AUX-информационные записи, такие как соответствующие offset и oplog id; одновременно в синхронизации мастер-слейв Redis будут специальные инструкции синхронизации. Поэтому, чтобы обеспечить надежность данных и доступность кластера, отключение модуля аварийного восстановления Redis после его включения не допускается.
Включение аварийного восстановления увеличивает нагрузку на хранилище. Рекомендуется использовать локальный SSD в качестве хранилища
Экземпляр Redis с аварийным восстановлением будет в реальном времени записывать oplog в хранилище (fsync выполняется раз в секунду); когда oplog достигает ограниченного размера (3 Гб), файл oplog будет разрезан; логика очистки регулярно помечает неиспользуемые файлы срезов oplog и своевременно их очищает. Таким образом, одновременно происходит логика чтения и записи oplog и генерации rdb, что увеличивает нагрузку на хранилище. Рекомендуется использовать локальный SSD в качестве хранилища для обеспечения производительности персистентности.
Для экземпляров аварийного восстановления рекомендуется использовать шаблон параметров RDB
Использование шаблона параметров RDB в сочетании с параметром save позволяет активно запускать снимки и очистку oplog, что обеспечивает быструю синхронизацию снимков при новых подключениях целевых экземпляров. Если используется шаблон параметров AOF, необходимо также установить параметр save для обеспечения регулярной персистентности RDB, чтобы локальные данные были более надежными, однако включение персистентности RDB и AOF предъявляет более высокие требования к производительности хранилища. Пожалуйста, убедитесь, что в качестве хранилища используется локальный SSD.
Для построения сети аварийного восстановления экземпляры Redis на обоих концах должны иметь одинаковую архитектуру
Плагин аварийного восстановления Redis в настоящее время синхронизирует данные на основе oplog. Контекст oplog обладает корреляцией и идемпотентностью, данные oplog нельзя перераспределять и отправлять на разные шарды. Это ограничение требует:
- Целевая сторона в режиме sentinel может быть только в режиме sentinel
- Целевая сторона в режиме кластера может быть только в режиме кластера
- Шарды целевой стороны в режиме кластера должны совпадать с исходными
- Распределение слотов целевой стороны в режиме кластера должно совпадать с исходными
- Режим кластера не поддерживает онлайн-синхронизацию для добавления или удаления шардов
Один экземпляр Redis с аварийным восстановлением в роли источника может иметь не более 15 целевых экземпляров
Из-за ограничения service_id источник аварийного восстановления может иметь не более 15 целевых экземпляров. Однако каскадирование в настоящее время не поддерживается, а также не поддерживается мультиактив (поддерживается только звездообразное распределение, а не древовидные или кольцевые связи).
Следующие команды записи Redis 6.0 в настоящее время не поддерживают аварийное восстановление
migrate, команды, связанные с pubsub, команды, связанные с stream. Для команд pubsub и stream рекомендуется использовать компоненты MQ в качестве альтернативы.
После сбоя источника первым делом необходимо отключиться от источника
После сбоя источника, перед переключением аварийного восстановления, первым делом необходимо разорвать синхронизационную связь между целью и источником, чтобы предотвратить ситуацию, когда источник внезапно восстанавливается, но данные некорректны, что может привести к загрязнению данных на целевой стороне.