Время простоя восстановления кластера Redis, когда мастер выходит из строя - PullRequest
2 голосов
/ 18 июня 2020

Когда ведущее устройство в кластере Redis выходит из строя, Redis будет ждать тайм-аута узла, чтобы преобразовать ведомое устройство в ведущее. Для повышения ведомого до ведущего может потребоваться дополнительное время. В то время, когда ведущее устройство переходит в подчиненное состояние, которое становится ведущим, операции записи / чтения, особенно записи, не будут выполнены. Как обеспечить нулевое время простоя?

1 Ответ

1 голос
/ 18 июня 2020

Я думаю, что это обычная проблема для большинства баз данных. Допустим, у вас есть набор реплик mon go, и мастер отключается, требуется некоторое время для повышения подчиненного, и вы теряете записи, то же самое с mon go shard или mysql.

Даже если бы redis мог обеспечить мгновенное переключение при отказе (что невозможно), ваши записи не могут быть гарантированы, если вы не используете AOF с записью на диск при каждой операции, но это будет ужасно медленным и уничтожит всю цель redis.

Одним из решений, позволяющих приблизиться к более надежным гарантиям записи, может быть pu sh данных в очереди, например kafka, и асинхронная запись в redis или любое другое хранилище данных. Но затем вы вводите еще один стек, и мы также должны позаботиться о его аварийном переключении.

Итак, я думаю, мы должны попытаться рассматривать redis как кеш, а не как постоянное хранилище данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...