awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

WebSocket: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту WebSocket: upgrade, framing, выбор транспорта, backpressure, переподключение, потолки масштаба и production-сбои.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Шесть вопросов поперёк всего юнита. Ни один не про заучивание определения — каждый отражает решение, которое senior-инженер принимает, пока real-time-сервис деградирует под нагрузкой.

Цель

Убедись, что связываешь upgrade, формат frame, выбор транспорта, backpressure, переподключение и потолки масштабирования в единую операционную модель — тот синтез, к которому вели отдельные уроки.

Викторина

Коллега предлагает открыть сырой TCP-сокет на отдельном порту, чтобы пропустить HTTP-upgrade и 'сэкономить round-trip'. Почему это неверное рассуждение?

Викторина

Кастомный WebSocket-клиент (вне браузера) шлёт твоему серверу немаскированные frame в стиле server-to-client. Должен ли сервер их принимать и зачем вообще нужен masking?

Викторина

Дашборд пушит ~5 обновлений в минуту 100k пользователям, которые ничего не шлют обратно. Инженер тянется за WebSocket. Что лучше по умолчанию и почему?

Викторина

Память broadcast-сервера стабильно растёт под нагрузкой, пока не срабатывает OOM killer; 100 из 10 000 клиентов на медленных мобильных каналах. Каков механизм и первое надёжное исправление?

Викторина

Ты раскатываешь новый билд; все 10 миллионов подключённых клиентов отваливаются с кодом 1006 и переподключаются. Клиент использует exponential backoff, но без jitter. Почему сервер всё равно с трудом восстанавливается?

Викторина

Два WebSocket-сервера за балансировщиком. User A на Server 1 шлёт сообщение в чат, оно должно дойти до User B на Server 2. Sticky sessions включены. Почему одного sticky-роутинга мало и что закрывает разрыв?

Итог

Сквозная линия юнита — одна операционная модель: upgrade переиспользует существующее соединение, поэтому общая инфраструктура его маршрутизирует; framing и обязательный client masking защищают провод; выбор транспорта (WebSocket против SSE против long-polling) следует за направлением потока данных; backpressure — каноничный сбой, на который отвечает high-water mark; переподключение должно быть с jitter, иначе оно становится thundering herd; а горизонтальный масштаб требует pub/sub для fan-out плюс sticky sessions для per-connection state. Каждый production-инцидент в юните сводится к этим рычагам.

Продолжить восхождение ↑WebSocket: тест на припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.