Опрос в системном дизайне

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

Существует три основных метода.

Короткий опрос

Клиент запрашивает обновление через фиксированные интервалы времени. Если данные не готовы, сервер отправляет пустой ответ. Клиент повторяет этот цикл до тех пор, пока данные не поступят. Этот метод создает множество ненужных запросов.

Длинный опрос

Клиент отправляет запрос, а сервер удерживает его открытым. Сервер отвечает только тогда, когда данные готовы. Как только клиент получает ответ, он немедленно отправляет новый запрос. Это создает ощущение работы в режиме, близком к реальному времени. По сравнению с коротким опросом, этот метод сокращает количество пустых ответов.

Поток событий

Клиент и сервер открывают одно соединение. Это соединение остается открытым до тех пор, пока одна из сторон его не закроет. Сервер передает данные клиенту всякий раз, когда происходит событие. Это полноценная коммуникация в реальном времени.

Минусом является использование ресурсов. Соединение занимает определенный порт. Этот порт остается недоступным для других задач до тех пор, пока соединение не будет разорвано.

Ваш выбор зависит от потребностей вашей системы и компромиссов, на которые вы готовы пойти.

Источник: https://dev.to/cibani_joe/polling-in-system-design-ph6