metaclass: (Default)
[personal profile] metaclass
Периодически на работе сталкиваемся с проблемами вида "TCP-соединение пропало неизвестно куда, клиент ждет ответа сервера, сервер ждет запроса клиента". Лечится это вроде бы модификацией настроек TCP keep-alive.
При этом протоколы с короткими действиями вида "отправили HTTP-запрос, получили ответ" с виду работают лучше чем протоколы с постоянно висящими TCP-коннектами (несмотря на то что, в HTTP вроде есть опция "использовать TCP-соединение повторно", тоже вроде называющаяся keep-alive, чтобы все запутались).

В связи с этим интересно - а вот как к подобной боли с TCP соединениями относятся протоколы типа AMQP или веб-сокетов, которые тоже вроде бы должны висеть постоянно подключенными, т.к. в них сервер дергает клиента событиями?
В amqp есть фреймы типа heartbeat, выполняющие функцию аналогичную keep-alive на уровне TCP протокола, т.е. мало нам параметров сокетов или реестра, еще нужно будет с интервалами посылки этих фреймов разбираться. А что в веб-сокетах?

Date: 2014-05-13 05:42 pm (UTC)
From: [identity profile] lionet.livejournal.com
В вебсокетах есть хартбит, но он браузерами не используется и из JS его не вызовешь. С сервера хартбитить — клиент может пропустить отвал сервера. Поэтому часто используется application level heartbeat.

Date: 2014-05-13 06:13 pm (UTC)
From: [identity profile] tonsky.livejournal.com
Мне кажется это такой заговор и издевательство дизайнеров сетевых протоколов — заставлять всех делать хартбиты на уровне приложения.

Date: 2014-05-13 06:27 pm (UTC)
From: [identity profile] vromanov.livejournal.com
SCTP вроде в этом плане хорош.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 13th, 2025 02:03 am
Powered by Dreamwidth Studios