Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.
Что случилось с луком-пореем от начала всходов до зелени? считатьIPO
Сумасшедшие предприниматели знают лучше.
Когда я впервые услышал о РПО, я подумал, что это IPO, посвященное нарезке лука-порея, к тому же человек, который это сказал, все время мне подмигивал, так что у меня тряслись руки, и я не мог найти этот технический термин, несмотря ни на что. как я искал.
В конце концов я понял, что он имел в виду RPO, а не IPO, что является термином в сценариях аварийного восстановления.
Блин, опять аббревиатура! Однако после многих лет огласки оно стало стандартом, но полное название мало кто помнит. Например, вы знаете ВИЧ, но не знаете, каково полное английское название ВИЧ.
Но мы должны взглянуть на его полное имя сегодня.
RTO = Recovery Time Objective = 恢复时间目标
RPO = Recovery Point Object = 恢复点目标
Разница в том, что одно — это Время, а другое — Точка. Проще говоря, это время и степень восстановления данных, которые можно восстановить после сбоя службы.
Например, ваша база данных не работает. Если ваш бизнес может работать в течение 30 минут, то показатель RTO равен 30 минутам.
Другой пример: ваша база данных дала сбой и восстановилась через 30 минут. Если ваш бизнес может допустить потерю данных за последние 2 минуты, то ваша RPO составляет 2 минуты.
Примечательно, что любое утверждениеRTO=0
иRPO=0
Все производители хвастаются.
Автономный сервис
Для автономной службы интервал от сбоя до восстановления нормального обслуживания не может быть равен 0. Даже если вы используете такой инструмент, как супервизор, чтобы мгновенно получить его, это не может быть сделано мгновенно. Таким образом, RTO не будет равен 0.
Но RPO может быть близок к 0 потерь. Из-за текущих служб баз данных большинство из них будет вести журнал с упреждающей записью для предотвращения исключений. Например, ES сначала запишет транслог, MySQL сначала запишет журнал повторов, а Postgres запишет журнал wal. Эти журналы последовательно записываются на диск, и хотя небольшая часть данных будет потеряна между сбросами(), большинство из них безвредны.
Но автономный сервис не может обеспечить высокую доступность, поэтому, даже если его показатели выглядят хорошо, для нас это не имеет смысла.
Кластерный сервис
Для кластерных служб необходимо учитывать сложные проблемы в распределенной среде. Например, Kafka использует список ISR, чтобы предотвратить проблемы с доступностью службы после отказа одной машины.
Во-первых, распределенные системы используют механизм копирования для обеспечения избыточности данных. Master-slave, raft и другие методы взаимодействия требуют выбора мастера для получения операций по изменению данных. Когда этот мастер выходит из строя, необходимо выбрать новый мастер из списка.
На примере Kafka время простоя отдельной ноды временно влияет на производство и потребление, а время восстановления после сбоя связано со временем выбора лидера и количеством партиций (около 10 секунд времени обнаружения isr). Использование режима ACK вместе с повтором может гарантировать, что данные не будут потеряны во время сбоя.
Это уже очень хороший эффект.
Но что, если проблема со всем кластером, например, компьютерный зал отключен?
Мультирум
Риск одного компьютерного зала может быть решен только за счет дублирующих компьютерных залов.В настоящее время более популярна архитектура с двумя локациями и тремя центрами. По поводу трех центров в двух местах, вот специальное описание статьи.
«Два места и три центра, как развернуть нечетное количество узлов? 》
Кластеры в компьютерных залах также делятся на области AB. Возьмем в качестве примера службу с 5 узлами: 3 развернуты в компьютерном зале A и 2 развернуты в компьютерном зале B, а минимальное количество узлов, необходимое для кластера, равно 3. Когда возникает проблема в компьютерном зале B, производительность компьютерного зала A не отличается от производительности одиночного компьютерного зала. Но когда возникает проблема в компьютерной комнате A, нам нужно ручное вмешательство, чтобы вручную запустить шестой узел в компьютерной комнате B.
Интервал между обработками отказов является значением RTO.
В этом случае тоже есть риск потери данных. 5 узлов, согласно стратегии NWR, для успеха необходимо написать 3 узла. Однако, если данные записываются на эти три узла в компьютерном зале A, и данные не были полностью синхронизированы с компьютерным залом B, данные в интервале синхронизации будут потеряны. Следовательно, интеллектуальные службы также должны иметь возможность идентифицировать компьютерный зал и зону, чтобы при возникновении проблемы по крайней мере одна часть данных в компьютерном зале B всегда была актуальной.
End
Так что аббревиатуры по-прежнему очень привлекательны. Например, xjjdog можно сократить как xD, хотя вы не можете расшифровать его значение, разве это не интересно?
Об авторе: Miss Sister Taste (xjjdog), общедоступный аккаунт, который не позволяет программистам идти в обход. Сосредоточьтесь на инфраструктуре и Linux. Десять лет архитектуры, десятки миллиардов ежедневного трафика, обсуждение с вами мира высокой параллелизма, дающие вам другой вкус. Мой личный WeChat xjjdog0, добро пожаловать в друзья для дальнейшего общения.