Оценка масштабируемости серверных WebSocket-библиотек (uWebSockets, ws, Socket.io) в JavaScript при обработке высоконагруженных потоков событий

Антон Андреевич Мандронов

Аннотация


В статье представлен сравнительный анализ производительности и масштабируемости трёх популярных серверных WebSocket-библиотек в экосистеме Node.js: uWebSockets.js, ws и Socket.io. В рамках тестового стенда, развёрнутого в изолированных Docker-контейнерах с ограничением ресурсов, проведены замеры максимального количества одновременных подключений, пропускной способности (msg/sec), задержки (p99 latency) и потребления оперативной памяти при сценариях эхо-запросов и широковещательной рассылки (broadcast). Результаты показывают, что uWebSockets.js обеспечивает абсолютное лидерство по пропускной способности (450 000 msg/sec) и минимальному потреблению памяти благодаря нативной C++ реализации. Библиотека ws демонстрирует сбалансированные показатели, тогда как Socket.io имеет наибольший оверхед из-за протокольных надстроек, что ограничивает его применение в сценариях экстремальной нагрузки. Сформулированы практические рекомендации по выбору инструмента в зависимости от профиля нагрузки.


Полный текст:

PDF

Ссылки

  • На текущий момент ссылки отсутствуют.


ISSN 2414-4487