TGViewer
Сохранёнки программиста Сохранёнки программиста @prog_stuff · 6.51K subscribers
Post #3055 129
Как изолировать медленного WebSocket-клиента

При блокирующей отправке клиент, который не успевает читать события, задерживает общий цикл: остальные тоже ждут. Обстоятельный разбор обратного давления показывает, как локализовать перегрузку.

Каждому клиенту выделяют отдельную ограниченную очередь, а события кладут в неё без ожидания. Если очередь заполнена, новое событие отбрасывают только для этого клиента, учитывают потерю и переходят к следующему. В архитектуре NomadCrew буфер вмещает 256 событий.

Отбрасывание оставляет пробел в данных. Поэтому клиенту нужен путь повторной синхронизации: заново запросить текущее состояние. Так он восстановит актуальную картину, но не историю пропущенных событий.

Для WebSocket-хаба проверьте три вещи: очереди ограничены, пропуски видны в метриках, клиент может перечитать текущее состояние после отставания.
More from @prog_stuff
  1. Oct 7, 2026Как подготовить Rails-код к параллельной работе через Ractor Глубокий разбор адаптации Rai…
  2. Oct 6, 2026Почему BPF LPM trie замедляется с ростом таблицы префиксов Обстоятельный разбор сбоя Cloud…
  3. Oct 6, 2026Как Apache Hudi отсекает лишние партиции и файлы Это первая часть обстоятельного разбора и…
  4. Oct 3, 2026Go расширил экспериментальный SIMD без ассемблерных вставок В Go 1.27 разработчики предста…
  5. Oct 3, 2026Отредактировал снимок билета без сброса криптографической даты В стандарте C2PA подпись св…
  6. Oct 3, 2026Как искать баги, которые не воспроизводятся в тестах В обстоятельном разборе трёх расследо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →