Основные характеристики системы
Перед началом проектирования важно уточнить нефункциональные требования:
- Доступность
- Масштабируемость
- Надежность
- Поддерживаемость
- Латентность
- Пропускная способность
- Согласованность Эти параметры определяют архитектуру и влияют на все последующие решения.
Теорема CAP
В распределенных системах можно гарантировать только два из трех свойств:
- Согласованность — каждое чтение возвращает последнюю запись
- Доступность — каждый запрос получает ответ
- Устойчивость к разделению сети На практике чаще всего выбирают между CP-системами (банковские транзакции, инвентаризация) и AP-системами (социальные ленты).
Горизонтальное и вертикальное масштабирование
| Тип | Описание |
|---|---|
| Вертикальное | Увеличение мощности сервера |
| Горизонтальное | Добавление новых серверов |
| Горизонтальное масштабирование позволяет справляться с большими нагрузками за счет распределения запросов между несколькими машинами. |
Система доменных имен (DNS)
DNS преобразует читаемые человеком имена сайтов в IP-адреса. Ключевые моменты:
- Рекурсивные резолверы выполняют основную работу
- Время жизни (TTL) контролирует кэширование
- Географический DNS направляет пользователей к ближайшему дата-центру
Балансировка нагрузки
Балансировщики распределяют запросы между серверами. Популярные алгоритмы:
- Круговой обход (Round Robin)
- Минимум соединений (Least Connections)
- По хешу IP-адресов (IP Hash)
- Весовой метод (Weighted)