Читайте также:
24

Нас часто просят разрабатывать системы с высокой...

Нас часто просят разрабатывать системы с высокой доступностью, масштабируемостью и пропускной способностью. Что это именно означает?

Ниже приведена шпаргалка по проектированию систем с распространенными решениями.

1. Высокая доступность
Это означает необходимость обеспечения высокого уровня времени работы. Обычно мы описываем целевой уровень дизайна как «3 девятки» или «4 девятки». «4 девятки» (99,99% времени работы) означает, что сервис может быть недоступен только 8,64 секунды в день.

Для достижения высокой доступности необходимо спроектировать систему с избыточностью. Существуют несколько способов сделать это:

- Горячий-горячий: два экземпляра получают один и тот же ввод и отправляют вывод в downstream-сервис. Если одна из сторон недоступна, другая сторона может сразу же взять на себя ее функции. Поскольку обе стороны отправляют вывод в downstream, downstream-система должна выполнять дедупликацию.

- Горячий-теплый: два экземпляра получают один и тот же ввод, но только горячая сторона отправляет вывод в downstream-сервис. Если горячая сторона недоступна, теплая сторона берет на себя функции и начинает отправлять вывод в downstream-сервис.

- Кластер с единственным лидером: один лидер получает данные от upstream-системы и реплицирует их на другие реплики.

- Кластер без лидера: в таком кластере нет лидера. Любая запись будет реплицироваться на другие экземпляры. Пока количество экземпляров для записи плюс количество экземпляров для чтения больше общего числа экземпляров, мы должны получать корректные данные.

2. Высокая пропускная способность
Это означает, что сервис должен обрабатывать большое количество запросов за определенный период времени. Обычно используются метрики QPS (запросов в секунду) или TPS (транзакций в секунду).

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

3. Высокая масштабируемость
Это означает, что система может быстро и легко расширяться, чтобы справляться с большим объемом (горизонтальная масштабируемость) или добавлением новых функциональностей (вертикальная масштабируемость). Обычно мы отслеживаем время отклика, чтобы решить, нужно ли масштабировать систему.

👉 @bookflow

Нас часто просят разрабатывать системы с высокой...
23

Разве можно голосовать, за тех кто уже сейчас портит...

Разве можно голосовать, за тех кто уже сейчас портит наше общедомовое имущество. После выборов этим .... на нас будет вообще... Мы жители города Волхова просим компетентные органы, избирательную комиссию, управляющюю компанию привлечь за данное безобразие по по данному факту.

Разве можно голосовать, за тех кто уже сейчас портит...
Разве можно голосовать, за тех кто уже сейчас портит... Разве можно голосовать, за тех кто уже сейчас портит... Разве можно голосовать, за тех кто уже сейчас портит...
Еще посты

Популярные теги:

Свежие комментарии:

Temur 6 часов назад к записи
Кто-нибудь знает эту девушку? Кто-нибудь знает его имя? Это та девушка? Или это чужое фото? Потому что я видел это фото во многих местах? Есть ли у кого-нибудь информация?
ahdgsajdwedasd 4 дней назад к записи
Link to Tutorial?
Karyna Orlova 1 недель к записи
Доктор Рамунэ
Нини 1 недель к записи
.
tear 2 недель назад к записи
Like