Что важно знать
- L4 — по соединениям, L7 — по запросам с маршрутизацией.
- Алгоритмы: round robin, least connections, power of two choices.
- Rate limiting: token bucket, скользящее окно.
- Очереди и утилизация: рядом со 100% задержка растёт нелинейно.
Балансировщики L4 и L7, алгоритмы, проверки здоровья, rate limiting и сброс нагрузки.
Практика. Реализовать распределённый rate limiter на Redis и проверить его под нагрузкой с несколькими экземплярами сервиса.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
Backpressure — механизм, которым медленный потребитель заставляет источник замедлиться, вместо того чтобы копить работу без предела.
Полный разборПри перегрузке лучше быстро отказать части запросов, чем медленно обслуживать все: иначе очереди растут, все запросы опаздывают, клиенты повторяют, и пропускная способность падает до нуля.
Полный разборRound robin — по кругу, хорош при одинаковых серверах и запросах. Least connections / least requests — тому, у кого меньше активных, учитывает медленные запросы и серверы. Power of two choices — взять двух случайных и выбрать менее загруженного: почти как…
Полный разборАктивные проверки — балансировщик сам опрашивает /health; пассивные — следит за ошибками и задержками реальных запросов и выкидывает выбросы (outlier detection).
Полный разборL4 видит только IP и порты и распределяет соединения: быстро, дёшево, не понимает содержимого. L7 разбирает HTTP и распределяет запросы: маршрутизация по пути и заголовкам, TLS, повторы, кэш — но дороже.
Полный разборToken bucket — ведро на B жетонов пополняется со скоростью R; запрос забирает жетон, нет жетона — отказ. Допускает всплески до B, в среднем не больше R.
Полный разборПосле собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.